Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Поддавки на perl + Tk

48K
28 февраля 2010 года
pincher2012
16 / / 04.12.2009
Необходимо написать поддавки на перле. Запрещается использовать готовые модули.

Тему создаю для себя, чтобы задавать себе вопросы и самому на них отвечать. Буду рад критике и советам. Имею небольшое представление о Tk, но думаю моих знаний не достаточно.

Итак, вопрос №1: С чего начать?
Ответ: Думаю что для начала надо разбить задачу на более простые подзадачи, составить декомпозицию.

Вот модули на которые я разбил задачу.
1) GUI - думаю начать стоит именно с него.
а) Как расчертить доску
б) Как разместить на ней фигуры
в) Как перемещать фигуры
г) Задать правила перемещения фигур
д) Меню
е) Забиндить горячие клавиши (напр. Ctrl+Z возврат хода)

2) ИИ - ну тут ничего сложного придумывать не надо, достаточно чтобы компьютер делал ходы не противоречащие правилам

3) Сохранение и загрузка игры

4) Сетевая игра

5)...
48K
28 февраля 2010 года
pincher2012
16 / / 04.12.2009
Ну вот пока все что есть но такому коду место на http://www.govnokod.ru
Я пока не имею представления о том как расчертить доску и разместить на ней фигуры.
Код:
use strict;
use Tk;

my ($mainwindow,$f);

$mainwindow = MainWindow->new(-title => 'Checkers');
$mainwindow ->resizable(0,0);
my ($column,$row);

$column=$row=0;

my $desk_frame = $mainwindow->Frame->grid();



 my $image_white = $mainwindow ->Photo(-file => 'light.bmp');
 my $image_dark  = $mainwindow ->Photo(-file => 'dark.bmp');

 my @desk;

for my $i(0..3){
    for(0..3){
     $desk[$i*2][$_*2]         = $desk_frame->Label(-image =>$image_white)->grid(-row => $row,-column => $column++);
     $desk[$i*2][($_+1)*2]     = $desk_frame->Label(-image =>$image_dark) ->grid(-row => $row,-column => $column++);
    }
    $row++;
    $column = 0;
    for(0..3){
     $desk[$i*2+1][$_*2]     = $desk_frame->Label(-image =>$image_dark) ->grid(-row => $row,-column => $column++);
     $desk[$i*2+1][($_+1)*2] = $desk_frame->Label(-image =>$image_white)->grid(-row => $row,-column => $column++);
    }
    $row++;
    $column = 0;
}
MainLoop;


Как расположить изображение шашки над изображением клетки?
Как надожить маску на файл?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог