
17.03.2008, 12:57
|
|
Познающий
Регистрация: 15.02.2008
Сообщений: 98
Провел на форуме: 183980
Репутация:
50
|
|
Меня попросили сделать простинькую игру, а именно крестики нолики игра скомпютером.
Мош кто сможет плиз
или хотябы игру на двоих(на одном компе, по очереди тыкать)эта наверника легче будет
Держи крестики нолики. Игра на двоих, возможны глюки, писал на корую руку.
Если есть желание можешь продумать искуственный интелект сам)))
Код:
unit fmuMain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids;
type
TFormMain = class(TForm)
StringGrid1: TStringGrid;
procedure StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
procedure FormCreate(Sender: TObject);
private
procedure MoveHod;
function Finish: Boolean;
public
{ Public declarations }
end;
var
FormMain: TFormMain;
hod: String;
implementation
{$R *.dfm}
procedure TFormMain.MoveHod;
begin
if hod = 'X' then
hod := 'O' else
if hod = 'O' then
hod := 'X';
end;
procedure TFormMain.StringGrid1SelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
begin
if StringGrid1.Cells[ACol, ARow] = '' then
begin
StringGrid1.Cells[ACol, ARow] := hod;
if Finish then
Application.MessageBox(PChar('Ïîáåäèë '+hod), 'Ïîáåäà íàÕ!!!')
else
MoveHod;
end;
end;
procedure TFormMain.FormCreate(Sender: TObject);
begin
hod := 'X';
end;
function TFormMain.Finish: Boolean;
var
i, j, p: Integer;
function Presence(c, r: Integer): Boolean;
begin
if StringGrid1.Cells[c, r] = hod then
Result := True
else
Result := False;
end;
begin
Result := false;
for i := 0 to 2 do
begin
p := 0;
for j := 0 to 2 do
if Presence(i, j) then
inc(p);
if p = 3 then
Result := true;
p := 0;
for j := 0 to 2 do
if Presence(j, i) then
inc(p);
if p = 3 then
Result := true;
end;
if Presence(1, 1) then
begin
if Presence(0, 0) and Presence(2, 2) then
Result := True;
if Presence(2, 0) and Presence(0, 2) then
Result := True;
end;
end;
end.
|
|
|