Программа КлонРефераты >> Программирование и компьютеры >> Программа Клон
3. Данное диалоговое окно активизируется, когда все поле заполнено, и некуда ходить, то выводится счет красных и синих фишек
4. Окно активизируется при нажатии на кнопку [?] – о программе
3. Список использованной литературы.
1. Архангельский А. Я. Delphi 5: “Справочное пособие”;
2. Фаронов В. В. “Delphi 5: учебный курс” М: Издательство ”Нолидж”, 1999;
3. В.В. Фаронов «Delphi 6»;
4. Н. Культин «Программирование в Turbo Pascal 7.0 и Delphi »;
5. Н. Культин «Delphi. Программирование на Object Pascal» - издательство ”БВХ-Петербург”, 2001.
Заключение.
Во время создания игры “Клон” мы познали дополнительные возможности Delphi. Несмотря на наши сомнения, программа получилась оригинальной, с хорошим пользовательским интерфейсом. Конечно, она может дорабатываться и улучшаться. Эта игра в будущем может быть очень популярна. Мы подумываем над сетевыми возможностями этой игры, в которую смогут играть в обеденный перерыв бухгалтеры разных фирм.
Таким образом, программирование с использованием среды Delphi, позволило нам составить игру “Клон” довольно просто и быстро. Игра получилась достаточно компактной, не требовательная к ресурсам машины, очень проста в обращении и развивающая умственные способности человека.
Среда программирования Delphi – это сложный механизм, обеспечивающий высокоэффективную работу программиста.
Приложение.
4.1 Схема алгоритма.
4.2 Текст программы.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Grids, ExtCtrls, Buttons, Menus, StdCtrls;
type
TForm1 = class(TForm)
Image1: TImage;
image3: TImage;
Image2: TImage;
Button1: TButton;
Image4: TImage;
Image5: TImage;
Button2: TButton;
Button3: TButton;
procedure formmouseup(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
a: array [0 9,0 9] of byte;
b: array [0 9,0 9] of trect;
vi,vj,v2i,v2j:byte;
red,blue:integer;
hod:boolean;
implementation
uses Unit2, Unit3, Unit4, Unit5;
{$R *.DFM}
procedure TForm1.formmouseup(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
i,j:byte;
ai,aj,a2i,a2j:integer;
kol,m,n:integer;
begin
blue:=0;
red:=0;
kol:=0;
i:=x div (image1.height);
j:=y div (image1.height);
//-------------------------------------------------------------------------------
//При нажатии активная синяя фишка (левой клавишей)
if hod=true then
BEGIN
if (a[i,j]=1) then
begin
if button=mbLeft then
begin
image2.Canvas.StretchDraw(b[i,j],image4.picture.bitmap);
Vi:=i;
Vj:=j;
end
else
begin
image2.Canvas.StretchDraw(b[i,j],image1.picture.bitmap);
end;
end;
//-----------------------------------------------------------------------------
//Возвращение рисунка для синих фишек
if (a[i,j]=0) then
if button=mbLeft then
begin
if (abs(i-vi)<3) and (abs(j-vj)<3) then
begin
if (abs(i-vi)=2) or (abs(j-vj)=2) then
begin
a[vi,vj]:=0;
image2.Canvas.StretchDraw(b[vi,vj],image5.picture.bitmap);
image2.Canvas.StretchDraw(b[i,j],image1.picture.bitmap);
a[i,j]:=1; vi:=255;vj:=255;
end
else
begin
image2.Canvas.StretchDraw(b[i,j],image1.picture.bitmap);
if (vi<>255)and (vj<>255) then
begin
image2.Canvas.StretchDraw(b[vi,vj],image1.picture.bitmap);
vi:=255; vj:=255;
end;
a[i,j]:=1;
end;
for ai:=i-1 to i+1 do //проверка близлежащих фишек КРАСНЫХ
for aj:=j-1 to j+1 do
if (ai>=0) and (aj>=0)and (ai<=9) and(aj<=9) then
if a[ai,aj]=2 then
begin
a[ai,aj]:=1;
image2.Canvas.StretchDraw(b[ai,aj],image1.picture.bitmap);
beep;
for m:=i-9 to i+9 do //проверка всего поля
for n:=j-9 to j+9 do
if (m>=0)and(n>=0)and(m<=9)and(n<=9) then
begin
if (a[m,n]=1)or(a[m,n]=0)then
kol:=kol+1;
end;
if kol=100 then
form4.show;
m:=0;n:=0;kol:=0;
end;hod:=false;//теперь красные
end;
end;
END;
//-------------------------------------------------------------------------------
//При нажатии активна красная (правая клавиша)
if hod=false then
BEGIN
if a[i,j]=2 then
begin
if button=mbright then
begin
image2.Canvas.StretchDraw(b[i,j],image4.picture.bitmap);
V2i:=i;
v2j:=j;
end
else
begin
image2.Canvas.StretchDraw(b[v2i,v2j],image3.picture.bitmap);
end;
end;
//-----------------------------------------------------------------------------
//Возвращение рисунка для красных фишек
if (a[i,j]=0) then
if button=mbright then
begin
if (abs(i-v2i)<3) and (abs(j-v2j)<3) then
begin
if(abs(i-v2i)=2) or (abs(j-v2j)=2) then
begin
a[v2i,v2j]:=0;
image2.Canvas.StretchDraw(b[v2i,v2j],image5.picture.bitmap);
image2.Canvas.StretchDraw(b[i,j],image3.picture.bitmap);
a[i,j]:=2; v2i:=255; v2j:=255;
end
else
begin
image2.Canvas.StretchDraw(b[i,j],image3.picture.bitmap);
if (v2i<>255)and(v2j<>255) then
begin
image2.Canvas.StretchDraw(b[v2i,v2j],image3.picture.bitmap);
v2i:=255; v2j:=255;
end;
end;
a[i,j]:=2;
for a2i:=i-1 to i+1 do //проверка близлежащих фишек СИНИХ
for a2j:=j-1 to j+1 do
if (a2i>=0)and(a2j>=0)and(a2i<=9)and(a2j<=9) then
if a[a2i,a2j]=1 then
begin
a[a2i,a2j]:=2;
image2.Canvas.StretchDraw(b[a2i,a2j],image3.picture.bitmap);
beep;
end;
for m:=i-9 to i+9 do //проверка всего поля
for n:=j-9 to j+9 do
if (m>=0)and(n>=0)and(m<=9)and(n<=9) then
begin
if (a[m,n]=2)or(a[m,n]=0)then
kol:=kol+1;
end;
if kol=100 then
form3.show;
hod:=true;//теперь синие
end;
end;
END;
m:=0;n:=0;kol:=0;
//-----------------------------------------------------------------------------
//Прверка поля на наличие свободного места
for m:=i-9 to i+9 do //проверка всего поля
for n:=j-9 to j+9 do
if (m>=0)and(n>=0)and(m<=9)and(n<=9) then
begin
if (a[m,n]=1) then blue:=blue+1; //счет синих
if (a[m,n]=2) then red:=red+1; //счет красных
kol:=red+blue;
end;
if kol=100 then
form5.show;
m:=0;n:=0;kol:=0;
end;
//-----------------------------------------------------------------------------