Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

marv

Jogo Sudoku em Delphi

Recommended Posts

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.