marv 0 Denunciar post Postado Março 15, 2008 Pessoal precisa de uma grande ajuda ,tenho um trabalho da facu pra fazer q é o jogo Sudoku será q alguem tem o código disponivel,para me ajudar,valew hein!!!! Compartilhar este post Link para o post Compartilhar em outros sites
marv 0 Denunciar post Postado Março 24, 2008 Pessoal precisa de uma grande ajuda ,tenho um trabalho da facu pra fazer q é o jogo Sudoku será q alguem tem o código disponivel,para me ajudar,valew hein!!!!Já fiz o trabalho vou postar o código inteiro!!!!!! unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, StdCtrls, ExtCtrls, ComCtrls, Buttons; type TForm1 = class(TForm) StringGrid1: TStringGrid; btnverificar: TButton; btniniciar: TButton; Button1: TButton; btnLimpar: TButton; btnSair: TButton; StatusBar1: TStatusBar; Timer1: TTimer; procedure StringGrid1SetEditText(Sender: TObject; ACol, ARow: Integer; const Value: String); procedure btnverificarClick(Sender: TObject); procedure btnsolucaoClick(Sender: TObject); procedure btniniciarClick(Sender: TObject); procedure Button1Click(Sender: TObject); procedure btnLimparClick(Sender: TObject); procedure btnSairClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Timer1Timer(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.StringGrid1SetEditText(Sender: TObject; ACol, ARow: Integer; const Value: String); var i, j, contlin, contcol, contmat:integer; begin contlin:=0; contcol:=0; contmat:=0; with StringGrid1 do begin for i:=0 to 8 do begin if Cells[i,Row]=Cells[Col,Row] then inc(contlin); if Cells[Col,i]=Cells[Col,Row] then inc(contcol); end; if contlin>1 then Cells[Col,Row]:=''; if contcol>1 then Cells[Col,Row]:=''; if col in [0..2] then begin if row in [0..2] then begin for i:=0 to 2 do for j:= 0 to 2 do if Cells[j,i]=Cells[Col,Row] then inc(contmat); end; if row in [3..5] then begin for i:=3 to 5 do for j:= 0 to 2 do if Cells[j,i]=Cells[Col,Row] then inc(contmat); end; if row in [6..8] then begin for i:=6 to 8 do for j:= 0 to 2 do if Cells[j,i]=Cells[Col,Row] then inc(contmat); end; end; if col in [3..5] then begin if row in [0..2] then begin for i:=0 to 2 do for j:= 3 to 5 do if Cells[j,i]=Cells[Col,Row] then inc(contmat); end; if row in [3..5] then begin for i:=3 to 5 do for j:= 3 to 5 do if Cells[j,i]=Cells[Col,Row] then inc(contmat); end; if row in [6..8] then begin for i:=6 to 8 do for j:= 3 to 5 do if Cells[j,i]=Cells[Col,Row] then inc(contmat); end; end; if col in [6..8] then begin if row in [0..2] then begin for i:=0 to 2 do for j:= 6 to 8 do if Cells[j,i]=Cells[Col,Row] then inc(contmat); end; if row in [3..5] then begin for i:=3 to 5 do for j:= 6 to 8 do if Cells[j,i]=Cells[Col,Row] then inc(contmat); end; if row in [6..8] then begin for i:=6 to 8 do for j:= 6 to 8 do if Cells[j,i]=Cells[Col,Row] then inc(contmat); end; end; if contmat>1 then Cells[Col,Row]:=''; end; end; procedure TForm1.btnverificarClick(Sender: TObject); var i,j: integer; flag: boolean; begin flag:=false; for i:=0 to 8 do for j:=0 to 8 do if (StringGrid1.cells[i,j]='') then flag:=true; if flag then showmessage('Jogo Incompleto!!') else showmessage('Você completou o Jogo!!'); // se tiver quadro vazio é pq o sudoku nao foi completado // se nao sudoku completo. end; procedure TForm1.btnsolucaoClick(Sender: TObject); begin // solução completa do sudoku . end; procedure TForm1.btniniciarClick(Sender: TObject); begin StringGrid1.Cells[0,0]:='7'; StringGrid1.Cells[0,4]:='4'; StringGrid1.Cells[0,8]:='3'; StringGrid1.Cells[1,2]:='9'; StringGrid1.Cells[1,6]:='4'; StringGrid1.Cells[2,2]:='8'; StringGrid1.Cells[2,4]:='2'; StringGrid1.Cells[2,6]:='7'; StringGrid1.Cells[2,7]:='5'; StringGrid1.Cells[3,2]:='3'; StringGrid1.Cells[3,6]:='2'; StringGrid1.Cells[4,0]:='6'; StringGrid1.Cells[4,4]:='1'; StringGrid1.Cells[4,8]:='7'; StringGrid1.Cells[5,2]:='7'; StringGrid1.Cells[5,6]:='8'; StringGrid1.Cells[6,1]:='5'; StringGrid1.Cells[6,3]:='9'; StringGrid1.Cells[6,5]:='4'; StringGrid1.Cells[6,7]:='1'; StringGrid1.Cells[7,2]:='2'; StringGrid1.Cells[7,6]:='6'; StringGrid1.Cells[8,0]:='8'; StringGrid1.Cells[8,4]:='7'; StringGrid1.Cells[8,8]:='4'; end; procedure TForm1.Button1Click(Sender: TObject); var matresult: array[0..8,0..8] of char; i, j: integer; begin matresult[0,0]:='7'; for i:=0 to 8 do for j:=0 to 8 do StringGrid1.Cells[j,i]:=matresult[i,j]; StringGrid1.Cells[0,0]:='7'; StringGrid1.Cells[0,1]:='6'; StringGrid1.Cells[0,2]:='5'; StringGrid1.Cells[0,3]:='8'; StringGrid1.Cells[0,4]:='4'; StringGrid1.Cells[0,5]:='9'; StringGrid1.Cells[0,6]:='1'; StringGrid1.Cells[0,7]:='2'; StringGrid1.Cells[0,8]:='3'; StringGrid1.Cells[1,0]:='2'; StringGrid1.Cells[1,1]:='3'; StringGrid1.Cells[1,2]:='9'; StringGrid1.Cells[1,3]:='5'; StringGrid1.Cells[1,4]:='6'; StringGrid1.Cells[1,5]:='1'; StringGrid1.Cells[1,6]:='4'; StringGrid1.Cells[1,7]:='7'; StringGrid1.Cells[1,8]:='8'; StringGrid1.Cells[2,0]:='1'; StringGrid1.Cells[2,1]:='8'; StringGrid1.Cells[2,2]:='4'; StringGrid1.Cells[2,3]:='2'; StringGrid1.Cells[2,4]:='3'; StringGrid1.Cells[2,5]:='7'; StringGrid1.Cells[2,6]:='9'; StringGrid1.Cells[2,7]:='5'; StringGrid1.Cells[2,8]:='6'; StringGrid1.Cells[3,0]:='5'; StringGrid1.Cells[3,1]:='4'; StringGrid1.Cells[3,2]:='3'; StringGrid1.Cells[3,3]:='7'; StringGrid1.Cells[3,4]:='9'; StringGrid1.Cells[3,5]:='8'; StringGrid1.Cells[3,6]:='2'; StringGrid1.Cells[3,7]:='6'; StringGrid1.Cells[3,8]:='1'; StringGrid1.Cells[4,0]:='6'; StringGrid1.Cells[4,1]:='2'; StringGrid1.Cells[4,2]:='8'; StringGrid1.Cells[4,3]:='4'; StringGrid1.Cells[4,4]:='1'; StringGrid1.Cells[4,5]:='5'; StringGrid1.Cells[4,6]:='3'; StringGrid1.Cells[4,7]:='9'; StringGrid1.Cells[4,8]:='7'; StringGrid1.Cells[5,0]:='9'; StringGrid1.Cells[5,1]:='1'; StringGrid1.Cells[5,2]:='7'; StringGrid1.Cells[5,3]:='3'; StringGrid1.Cells[5,4]:='2'; StringGrid1.Cells[5,5]:='6'; StringGrid1.Cells[5,6]:='8'; StringGrid1.Cells[5,7]:='4'; StringGrid1.Cells[5,8]:='5'; StringGrid1.Cells[6,0]:='3'; StringGrid1.Cells[6,1]:='5'; StringGrid1.Cells[6,2]:='6'; StringGrid1.Cells[6,3]:='9'; StringGrid1.Cells[6,4]:='8'; StringGrid1.Cells[6,5]:='4'; StringGrid1.Cells[6,6]:='7'; StringGrid1.Cells[6,7]:='1'; StringGrid1.Cells[6,8]:='2'; StringGrid1.Cells[7,0]:='4'; StringGrid1.Cells[7,1]:='7'; StringGrid1.Cells[7,2]:='2'; StringGrid1.Cells[7,3]:='1'; StringGrid1.Cells[7,4]:='5'; StringGrid1.Cells[7,5]:='3'; StringGrid1.Cells[7,6]:='6'; StringGrid1.Cells[7,7]:='8'; StringGrid1.Cells[7,8]:='9'; StringGrid1.Cells[8,0]:='8'; StringGrid1.Cells[8,1]:='9'; StringGrid1.Cells[8,2]:='1'; StringGrid1.Cells[8,3]:='6'; StringGrid1.Cells[8,4]:='7'; StringGrid1.Cells[8,5]:='2'; StringGrid1.Cells[8,6]:='5'; StringGrid1.Cells[8,7]:='3'; StringGrid1.Cells[8,8]:='4'; end; procedure TForm1.btnLimparClick(Sender: TObject); var i,j:integer; begin with StringGrid1 do for i:=0 to ColCount -1 do for j:=0 to RowCount -1 do Cells[i,j] :=''; end; procedure TForm1.btnSairClick(Sender: TObject); begin close; end; procedure TForm1.FormCreate(Sender: TObject); begin StatusBar1.Panels[1].Text := DateToStr(date); StatusBar1.Panels[2].Text := TimeToStr(time); end; procedure TForm1.Timer1Timer(Sender: TObject); begin StatusBar1.Panels[1].Text := DateToStr(date); StatusBar1.Panels[2].Text := TimeToStr(time); end; end. Compartilhar este post Link para o post Compartilhar em outros sites