Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 12.04.2012, 17:23
Nemfoman Nemfoman вне форума
Прохожий
 
Регистрация: 11.04.2012
Сообщения: 5
Репутация: 10
По умолчанию Крестики нолики 19х19 через Stringgrid

Крестики не вводятся не знаю почему. Если можете посоветова проверку на выйграшь какую нить более лучшую ??
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, StdCtrls;

type
  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    procedure StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
      var CanSelect: Boolean);
    procedure FormCreate(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;
 var
   Form1: TForm1;
   xo:bool;   //
implementation

{$R *.dfm}


procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
var
 i,j:integer;
 summvert,summhorz,summdiag1,summdiag2:string;
begin
   with stringgrid1 do
  begin
    defaultDrawing:=True;// если этот параметр выставить в false, то никакие 
    //введённые символы отрисовываться не будут
    // в фиксированных ячейках нельзя ничего писать, поэтому уберём их
    FixedCols:=0;
    FixedRows:=0;

    Options:=Options-[goEditing];// защита от ввода символов с клавиатуры
  end;
 begin
  if (stringgrid1.Cells[ACol,ARow]<>'') then exit;

  if xo then stringgrid1.Cells[ACol,ARow]:='X'
 else stringgrid1.Cells[ACol,ARow]:='O'; // -, -
xo:=not xo; // 
for i:=0 to 19 do       //
 for j:=0 to 19 do
 begin
  summvert:=stringgrid1.cells[i,j]+stringgrid1.cells[i+1,j]+stringgrid1.cells[i+2,j]+stringgrid1.cells[i+3,j]+stringgrid1.cells[i+4,j];
  summhorz:=stringgrid1.cells[i,j]+stringgrid1.cells[i,j+1]+stringgrid1.cells[i,j+2]+stringgrid1.cells[i,j+3]+stringgrid1.cells[i,j+4];
  summdiag1:=stringgrid1.cells[i,j]+stringgrid1.cells[i+1,j+1]+stringgrid1.cells[i+2,j+2]+stringgrid1.cells[i+3,j+3]+stringgrid1.cells[i+4,j+4];
  summdiag2:=stringgrid1.cells[i,j+4]+stringgrid1.cells[i+1,j+3]+stringgrid1.cells[i+2,j+2]+stringgrid1.cells[i+3,j+1]+stringgrid1.cells[i+4,j];
  if (summvert='XXXXX') or (summhorz='XXXXX') or (summdiag1='XXXXX') or(summdiag2='XXXXX') then MessageDlg('X-win', mtInformation,[mbOk], 0);
  if (summvert='OOOOO') or (summhorz='OOOOO') or (summdiag1='OOOOO') or(summdiag2='OOOOO') then MessageDlg('O-win', mtInformation,[mbOk], 0);
 end;
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
xo:=true;    // -, -   
end;
end.
Админ: Используем теги по назначению!

Последний раз редактировалось Admin, 12.04.2012 в 21:43.
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 06:56.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025