русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Игра «Крестики-нолики»


Дата добавления: 2014-11-27; просмотров: 717; Нарушение авторских прав


Играют два игрока, имена которых вводятся в специальные строки (Edit). Игра ведется на 9 кнопках (BitBtn1-BitBtn9). Переименуйте их в B1-B9. В момент хода крестика доступна (выделена) кнопка с крестиком (BitBtn10-B10) и недоступна кнопка с ноликом (BitBtn11-B11) и наоборот. Через пункт главного меню «Игра» можно начать новую игру, выбрать первый ход (крестик или нолик), а также выйти из игры. С помощью пункта «?» можно получить сведения о программе (для этого понадобится подключить к проекту еще одну форму AboutBox), а также прочесть справку по пользованию данной программой (также нужно подключить новуюформу). По окончании игры выдается соответствующее сообщение (выиграл крестик, нолик или ничья).

Алгоритм выигрыша:

Для каждой кнопки есть определенное количество выигрышных ситуаций, например для B1

B1 B2 B3
B4 B5 B6
B7 B8 B9

Соответственно для каждой кнопки нужно проверить каждую из ситуаций.

Ввод имени первого игрока

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);

Begin

if key=chr(13) then

begin

showmessage (edit1.text+’, вы играете Х’);

edit2.setfocus;

end;

Ввод имени второго игрока

procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);

Begin

if key=chr(13) then

showmessage (edit2.text+’. вы играете О’);

end;

 

При щелчке по кнопке В1 ставится «Х» или «O» в зависимости от доступности кнопок B10 или B11. После этого кнопка B1 становится не доступной для предотвращения повторного нажатия.

procedure TForm1.b1Click(Sender: TObject);

Begin

if b10.enabled=true then

Begin

b1.caption:='x';

b1.enabled:=false;

b10.enabled:=false;

b11.enabled:=true;

End

else

if b11.enabled=true then

Begin

b1.caption:='o';



b1.enabled:=false

b11.enabled:=false;

b10.enabled:=true;

end;

{проверяем возможный выигрыш}

if (b1.caption='x') and (b2.caption='x') and (b3.caption='x') or (b1.caption='x') and (b5.caption='x') and b9.caption='x') or (b1.caption='x') and (b4.caption='x') and (b7.caption='x') then

showmessage (edit1.text+', вы выйграли');

if (b1.caption='o') and (b2.caption='o') and (b3.caption='o') or (b1.caption='o') and (b5.caption='o') and (b9.caption='o') or (b1.caption='o') and (b4.caption='o') and (b7.caption='o') then

showmessage (edit2.text +', вы выйграли')

else

if (b1.caption<>'') and (b2.caption<>'') and (b3.caption<>'') and (b4.caption<>'') and (b5.caption<>'') and (b6.caption<>'') and (b7.caption<>'') and (b8.caption<>'') and (b9.caption<>'')

then

showmessage ('Ничья');

end;

Обработайте ходы остальными кнопками

Новая игра

procedure TForm1.N3Click(Sender: TObject);

Begin

b1.caption:='';

b2.caption:='';

b3.caption:='';

b4.caption:='';

b5.caption:='';

b6.caption:='';

b7.caption:='';

b8.caption:='';

b9.caption:='';

end;

Определяем первый ход:

Событие OnClick на пункт меню Игра/Первый ход/Крестик

procedure TForm1.N4Click(Sender: TObject);

Begin

n4.checked:=true;

n5.Checked:=false;

b10.enabled:=true;

b11.enabled:=false;

end;

Событие OnClick на пункт меню Игра/Первый ход/Нолик

procedure TForm1.N5Click(Sender: TObject);

Begin

n4.checked:=false;

n5.Checked:=true;

b10.enabled:=false;

b11.enabled:=true;

end;

Пункты «О программе» и «Справка» опишите самостоятельно;

 



<== предыдущая лекция | следующая лекция ==>
Основные свойства объектов | Объект CheckBox


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.449 сек.