Разработка программы, моделирующую игру «Кости»

Автор работы: Пользователь скрыл имя, 14 Сентября 2010 в 08:02, Не определен

Описание работы

Курсовой проект

Файлы: 1 файл

Программирование на языке высокого уровня.doc

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

         N1: TMenuItem;

         N2: TMenuItem;

         N3: TMenuItem;

         Image1: TImage;

         Image2: TImage;

         Label1: TLabel;

         Label2: TLabel;

         Label3: TLabel;

         Label4: TLabel;

         ComboBox1: TComboBox;

         Label5: TLabel;

         Label6: TLabel;

         ComboBox2: TComboBox;

         Label7: TLabel;

         BitBtn1: TBitBtn;

         N4: TMenuItem;

         N5: TMenuItem;

         Image3: TImage;

         procedure N3Click(Sender: TObject);

         procedure N2Click(Sender: TObject);

         procedure FormCreate(Sender: TObject);

         procedure invisible_all(Sender: TObject);

         procedure visible_all(Sender: TObject);

         procedure Label6Click(Sender: TObject);

         procedure BitBtn1Click(Sender: TObject);

         procedure N5Click(Sender: TObject);

       private

         { Private declarations }

       public

         { Public declarations }

       end; 

     var

       Form1: TForm1;

       Ochki: longint;//переменная, отвечающая за очки игрока 

     implementation 

     {$R *.dfm} 

     procedure TForm1.N3Click(Sender: TObject);//кнопка выход

     begin 

      application.Terminate;//закрываем приложение 

      end; 

     procedure TForm1.N2Click(Sender: TObject);//новая игра

     var i:integer;

     begin

        image3.Visible:=false;

       ochki:=100;//присваиваем переменной "ochki" количество начальных очков, по условию = 100

      label2.Caption:='00';//задаём сумму выпавших  кубиков = 0

      label4.Caption:='100'; //задаём видимое количество  очков

      image1.Picture.LoadFromFile('p0.bmp');//задаём начальное изображение кубиков(пустое)

      image2.Picture.LoadFromFile('p0.bmp');//задаём начальное  изображение кубиков(пустое)

      combobox1.Items.Clear;//очищаем список ставок

       for i:=1 to 100 do

      begin

       combobox1.Items.Add(inttostr(i));//заполняем список ставок от 1 до 100

       end;

      combobox1.ItemIndex:=0;//задаём начальное положение  элемента списка 

      combobox2.Items.Clear;//очищаем список вариантов  кубиков

       for i:=2 to 12 do

      begin

       combobox2.Items.Add(inttostr(i));//заполняем список ставок от 2 до 12

       end;

      combobox2.ItemIndex:=0;//задаём начальное положение  элемента списка 

      visible_all(sender);//делаем видимыми все  объекты на форме

      bitbtn1.Enabled:=false;//ставим положение кнопки  броска на выключено

     end; 

     procedure tform1.invisible_all(Sender: TObject);//делаем невидимыми все объекты на форме

     begin

      label1.Visible:=false;

      label2.Visible:=false;

      label3.Visible:=false;

      label4.Visible:=false;

      label5.Visible:=false;

      label6.Visible:=false;

      label7.Visible:=false;

      image1.Visible:=false;

      image2.Visible:=false;

      combobox1.Visible:=false;

      combobox2.Visible:=false;

      bitbtn1.Visible:=false;

     end; 

     procedure tform1.visible_all(Sender: TObject);//делаем видимыми все объекты на форме

     begin

      label1.Visible:=true;

      label2.Visible:=true;

      label3.Visible:=true;

      label4.Visible:=true;

      label5.Visible:=true;

      label6.Visible:=true;

      label7.Visible:=true;

      image1.Visible:=true;

      image2.Visible:=true;

      combobox1.Visible:=true;

      combobox2.Visible:=true;

      bitbtn1.Visible:=true;

     end; 

     procedure TForm1.FormCreate(Sender: TObject);//при создании формы 

     begin

        image3.Visible:=true;

      image3.picture.loadfromfile('l4.bmp'); 

       invisible_all(Sender);//делаем невидимыми все объекты на форме, при загрузке игры

     end; 

     procedure TForm1.Label6Click(Sender: TObject);//нажатие на надпись поставить

     begin

      bitbtn1.Enabled:=true;//делаем активной кнопку броска

       label2.Caption:='00';//сумма броска кубиков сбрасывается на 0

      image1.Picture.LoadFromFile('p0.bmp');//загружаем пустые  картинки для кубика

      image2.Picture.LoadFromFile('p0.bmp');//загружаем пустые картинки для кубика

     end; 

     procedure TForm1.BitBtn1Click(Sender: TObject);//процедура на нажатие кнопки броска

     var i,i1,i2:integer;

     begin 

      randomize;//включаем генератор случайных  чисел

      i1:=randomrange(1,6);//переменной i1 присваиваем  значение от 1 до шести случайным образом

      i2:=randomrange(1,6);//переменной i2 присваиваем  значение от 1 до шести случайным  образом

      image1.Picture.LoadFromFile('p'+inttostr(i1)+'.bmp');//в зависимости  от выпавшего числа загружаемс  картинку для 1-го кубика

      image2.Picture.LoadFromFile('p'+inttostr(i2)+'.bmp');//в зависимости от выпавшего числа загружаемс картинку для 2-го кубика

      label2.Caption:=inttostr(i1+i2);//выводим на экран  сумму выпавших кубиков 

      if     ( (i1+i2<7) and (strtoint(combobox2.Items.Strings[combobox2.ItemIndex])<7) )//проверка на соответствие основному условию

         or  ( (i1+i2>7) and (strtoint(combobox2.Items.Strings[combobox2.ItemIndex])>7) )

         and ( i1+i2<>strtoint(combobox2.Items.Strings[combobox2.ItemIndex]) )

      then

      begin

       ochki:=ochki+strtoint(combobox1.Items.Strings[combobox1.ItemIndex]);//прибавляем к очкам выигранную ставку

       showmessage('Вы выиграли ставку!')//выводим сообщение о выйгрыше

       end else

      begin

       if i1+i2=strtoint(combobox2.Items.Strings[combobox2.ItemIndex]) then//если выбранное число совпадает с выпавшим

       begin

        ochki:=ochki+strtoint(combobox1.Items.Strings[combobox1.ItemIndex])*4;//прибавляем к очкам выигранную ставку в 4-х кратном размере

        showmessage('Вы выиграли 4-х кратную ставку!')//выводим сообщение о выйгрыше

       end else

       begin

        ochki:=ochki-strtoint(combobox1.Items.Strings[combobox1.ItemIndex]);//условие пройгрыша

        showmessage('Вы проиграли ставку!')//выводим сообщение о пройгрыше

       end;

      end; 

       if ochki<=0 then //условие окончания игры

       begin

       invisible_all(sender);//скрываем все объекты на форме

       showmessage('Вы проиграли!');//выводим сообщение  о конце игры

      end else

      begin

       label4.Caption:=inttostr(ochki);//выводим на экран  количество очков

       combobox1.Items.Clear;//очищаем список возможных  ставок

       for i:=1 to ochki do

       begin

        combobox1.Items.Add(inttostr(i)); //заполняем список возможных ставок от 1 до количества очков

       end;

       combobox1.ItemIndex:=0;//задаём начальное положение  элемента списка

      end;

     { label2.Caption:='00';                   //сброс значения кубиков и суммы кубиков

       image1.Picture.LoadFromFile('p0.bmp');

      image2.Picture.LoadFromFile('p0.bmp');}

       bitbtn1.Enabled:=false;//ставим положение кнопки броска на выключено

     end; 

     procedure TForm1.N5Click(Sender: TObject);

     begin 

      showmessage('Автор курсовой работы Важенин Антон Александрович);// Справка

       

      end; 

     end. 

     2.4 Описание программы 

     Общие сведения:

     Программа  «Form» написана на языке  Object Pascal2 в визуальной оболочке программирования Delphi 7. Для полноценного функционирования программы необходимо  наличие операционной системы Windows, либо компиляторы Delphi 7.

     Функциональные  назначения:

     Программа была разработана для проведения досуга программиста.

     Описание  логической структуры:

     Логическая  структура программы построена  следующим образом: Играющий называет любое число в диапазоне от 2 до 12 и ставку, которую он делает в этот ход. Программа с помощью датчика случайных чисел дважды выбирает числа от 1 до 6 (“бросает кубик”, на гранях которого цифры от 1 до 6). Если сумма выпавших цифр меньше 7 и играющий задумал число меньшее 7, он выигрывает сделанную ставку. Если сумма выпавших цифр больше 7 и играющий задумал число большее 7, он также выигрывает сделанную ставку. Если играющий угадал сумму цифр, он получает в четыре раза больше очков, чем сделанная ставка. Ставка проиграна, если не имеет место ни одна из описанных ситуаций. В начальный момент у играющего 100 очков.

     Используемые  технические средства:

     Данная  программа может нормально функционировать  на компьютерах от 486DX до Pentium IV  . Размещения модуля программы на жёстком диске около 1,5 Mb.  

Информация о работе Разработка программы, моделирующую игру «Кости»