Создание игры "крестики-нолики"

Автор работы: Пользователь скрыл имя, 12 Апреля 2012 в 14:59, курсовая работа

Краткое описание

В данной курсовой работе речь пойдет о создании несложной игровой программы «Крестики-нолики», которая и будет являться объектом исследования. Потребуется создать полноценную правильно-функционирующую программу и самостоятельно изучить некоторые процедуры и функции.

Содержимое работы - 1 файл

Курсовая по Delphiл.doc

— 506.50 Кб (Скачать файл)

     2.1 Постановка задачи

     Разработать игровую программу «Крестики-нолики», которая включает в себя игровую панель, состоящую из девяти клеток (панелей), образующих собой один большой квадрат. Игровая программа рассчитана на одного игрока против компьютера. Игрок ходит первым и играет символом «X», компьютер – «O». Выигрывает тот, кто первым заполнит ряд панелей своим символом: любой из трёх рядов по горизонтали или вертикали, либо любой ряд по диагонали.

     Алгоритм  реализации работы

     Алгоритм  реализации игровой  программы

     Запуск  программы осуществляется следующим  образом: необходимо открыть папку, содержащую данную игру, и найти исполняемый файл krestiki-noliki.exe. На этом файле следует выполнить двойной щелчок левой клавишей манипулятора мышь.

     Проект  программы состоит из файла проекта, содержащего необходимые конструкции для исполнения, и модуля Unit1.

     Модуль  Unit1 является основным модулем проекта, содержащим все необходимые для работы программы процедуры.

     После запуска программы на экран выводится  основная форма Form1 (XO) (рис.2), на которой расположено игровое поле.  

     

     Рис.2 – Вид программы после запуска  

      Игра, т.е. работа программы, начинается сразу же после запуска, ход сначала предоставляется человеку, с символа «X».

  

После этого автоматически идёт ход  компьютера, с символа «O» (рис.3)

 

 

 

Рис3. Поочередные  ходы

  

Таким образом, игроки по очереди ставят на свободные клетки поля 3х3 знаки (человек всегда крестики, компьютер всегда нолики). Первый, выстроивший в ряд 3 своих фигур по вертикали, горизонтали или диагонали, выигрывает. Если в этой ситуации никто не выстраивает в ряд 3 своих фигур, то объявляется ничья. 
 

       
 

 Рис. 4 Ничья в игре

   

 

Рис.5  Победа человека

 

При победе компьютера или человека, счёт игры меняется.

  

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Рис.6  Победа компьютера 
 
 
 
 
 
 

 

  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

ЗАКЛЮЧЕНИЕ

 

В результате выполнения данной курсовой работы мной была разработана игровая программа под названием “Крестики-нолики”. Было проведено исследование компонентов программной среды Borland Delphi 7.0, которые использовались при создании программы, использовалось множество процедур и функций.  

В результате исследования были выявлены следующие  недостатки полученного программного продукта:

-Низкий исскуственный интеллект, т.е. ход компьютера осуществляется случайным образом, что делает маловероятным победу компьютера;

-Работоспособность приложения только в среде Windows;

Однако, помимо недостатков, есть и достоинства  у этого программного продукта:

-Программный продукт малотребователен к системным ресурсам компьютера.  

В результате учета всех сделанных выше замечаний  возможно улучшение созданного программного продукта, на которое потребуется минимум изменений исходного кода программы.

 

          Список использованной литературы

 

  1. Фаронов В.В. Турбо Паскаль 7.0. Начальный курс. Учебное пособие. –М.:Нолидж, 1997. -616с.
  2. Фаронов В.В. Delphi 4. Учебный курс. –М.: Нолидж, 1999. -447с. 
  3. Михаил Фленов «Библия Delphi» - М.:БХВ-Петербург,  2004г. 880с. 
  4. Михаил Голованов, Евгений Веселов «Создание компонентов в среде Delphi», - М.:БХВ-Петербург, 2004г.,  545с.
  5. Иван Хладни «Внутренний мир Borland Delphi 2007», -М.: Вильямс, 2007г. 892с.

 

      Приложение 1

     unit Unit1;

     interface

     uses

       Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

       StdCtrls, ExtCtrls;

     type

       TForm1 = class(TForm)

         Panel1: TPanel;

         Panel2: TPanel;

         Panel3: TPanel;

         Panel4: TPanel;

         Panel5: TPanel;

         Panel6: TPanel;

         Panel7: TPanel;

         Panel8: TPanel;

         Panel9: TPanel;

         Button1: TButton;

         Button2: TButton;

         Button3: TButton;

         Label1: TLabel;

         Label2: TLabel;

         procedure Button2Click(Sender: TObject);

         procedure Panel1Click(Sender: TObject);

         procedure Panel2Click(Sender: TObject);

         procedure Panel3Click(Sender: TObject);

         procedure Panel4Click(Sender: TObject);

         procedure Panel5Click(Sender: TObject);

         procedure Panel6Click(Sender: TObject);

         procedure Panel7Click(Sender: TObject);

         procedure Panel8Click(Sender: TObject);

         procedure Panel9Click(Sender: TObject);

         procedure Button1Click(Sender: TObject);

         procedure Button3Click(Sender: TObject);

         procedure FormCreate(Sender: TObject);

       private

         { Private declarations }

       public

         { Public declarations }

       end; 

     var i,a,c,b:integer;

       Form1: TForm1; 

     implementation 

     {$R *.DFM} 

     procedure TForm1.Button2Click(Sender: TObject);

     begin

     Close;

     end; 

     procedure TForm1.Panel1Click(Sender: TObject);

     begin

     if panel1.Caption='' then begin

     panel1.Caption:='X';

     button1.Click;

     i:=0;

     end;

     end; 

     procedure TForm1.Panel2Click(Sender: TObject);

     begin

     if panel2.Caption='' then begin

     panel2.Caption:='X';

     button1.Click;

     i:=0;

     end;

     end; 

     procedure TForm1.Panel3Click(Sender: TObject);

     begin

     if panel3.Caption='' then begin

     panel3.Caption:='X';

     button1.Click;

     i:=0;

     end;

     end; 

     procedure TForm1.Panel4Click(Sender: TObject);

     begin

     if panel4.Caption='' then begin

     panel4.Caption:='X';

     button1.Click;

     i:=0;

     end;

     end; 

     procedure TForm1.Panel5Click(Sender: TObject);

     begin

     if panel5.Caption='' then begin

     panel5.Caption:='X';

     button1.Click;

     i:=0;

     end;

     end; 

     procedure TForm1.Panel6Click(Sender: TObject);

     begin

     if panel6.Caption='' then begin

     panel6.Caption:='X';

     button1.Click;

     i:=0;

     end;

     end; 

     procedure TForm1.Panel7Click(Sender: TObject);

     begin

     if panel7.Caption='' then begin

     panel7.Caption:='X';

     button1.Click;

     i:=0;

     end;

     end; 

     procedure TForm1.Panel8Click(Sender: TObject);

     begin

     if panel8.Caption='' then begin

     panel8.Caption:='X';

     button1.Click;

     i:=0;

     end;

     end; 

     procedure TForm1.Panel9Click(Sender: TObject);

     begin

     if panel9.Caption='' then begin

     panel9.Caption:='X';

     button1.Click;

     i:=0;

     end;

     end; 

     procedure TForm1.Button1Click(Sender: TObject);

     begin

     if i=0 then

     repeat

     ///////////////////////////////////Блок определения выигрыша

     if panel1.Caption='X' then

     if panel2.Caption='X' then

     if panel3.Caption='X' then begin

     showmessage('Win');

     b:=b+1;

     button3.Click;

     I:=1;

     end;

     if panel4.Caption='X' then

     if panel5.Caption='X' then

     if panel6.Caption='X' then begin

     showmessage('Win');

     b:=b+1;

     button3.Click;

     I:=1;

     end;

     if panel7.Caption='X' then

     if panel8.Caption='X' then

     if panel9.Caption='X' then begin

     showmessage('Win');

     b:=b+1;

     button3.Click;

     I:=1;

     end;

     if panel1.Caption='X' then

     if panel5.Caption='X' then

     if panel9.Caption='X' then begin

     showmessage('Win');

     b:=b+1;

     button3.Click;

     I:=1;

     end;

     if panel3.Caption='X' then

     if panel5.Caption='X' then

     if panel7.Caption='X' then begin

     showmessage('Win');

     b:=b+1;

     button3.Click;

     I:=1;

     end;

     if panel1.Caption='X' then

     if panel4.Caption='X' then

     if panel7.Caption='X' then begin

     showmessage('Win');

     b:=b+1;

     button3.Click;

     I:=1;

     end;

     if panel2.Caption='X' then

     if panel5.Caption='X' then

     if panel8.Caption='X' then begin

     showmessage('Win');

     b:=b+1;

     button3.Click;

Информация о работе Создание игры "крестики-нолики"