- 14 Tháng năm 2017
- 3,974
- 7,627
- 744
- 22
- Phú Yên
- Trường THPT Lương Văn Chánh


Ăn được quân Vua là thắng nha
không cần phải chiếu hết.

Code đây nhá (Phải có thư viện Graph và phải dùng TP mới được):
@ka1412

Code đây nhá (Phải có thư viện Graph và phải dùng TP mới được):
Mã:
Program Co_Vua;
uses crt,graph,dos;
const _KT = 50;
Q_Vua = 0;
Q_Hau = 1;
Q_Tuong = 2;
Q_Ma = 3;
Q_Xe = 4;
Q_Tot = 5;
Q_Khong = 6;
T_Trong = 0;
T_Vao = 1;
T_ChuanBi = 2;
T_QuanCo = 3;
T_Chon = 4;
type TOCo = record
QuanCo: integer;
TuThe: integer;
MauO,MauCo: Word;
X,Y: integer;
end;
var gd,gm: integer;
MX,MY: integer;
OCo: array[-2..7,-2..7] of TOCo;
LaOCo,OChon : TOCo;
DangChon,EndGame: Boolean;
Luot: integer;
function mousex:word;assembler;asm
mov ax,3; int 33h; mov ax,cx end;
function mousey:word;assembler;asm
mov ax,3; int 33h; mov ax,dx end;
function leftclick:boolean;assembler;asm
mov ax,3; int 33h; and bx,1; mov ax,bx end;
function MouseArea(x1,y1,x2,y2:word):boolean;
begin
if (LeftClick)
and (mousex >=x1)
and (mousex <=x2)
and (mousey >=y1)
and (mousey <=y2)
then mousearea:=true
else mousearea:=false;
end;
Function InitMouse : boolean;
var r: registers;
Begin
r.ax:=$00;intr($33,r);
if r.ax<>0 then InitMouse:=true
else InitMouse:=false;
End;
Procedure ShowMouse;
Var r: registers;
begin
r.ax:=$01;intr($33,r);
End;
Procedure HideMouse;
Var r:registers;
Begin
r.ax:=$002;
intr($33,r);
End;
Procedure VeQuanVua(X,Y,Mau: integer);
Begin
Line(X,Y+48,X+30,Y+48);
Line(X,Y+48,X+7,Y+24);
Line(X+30,Y+48,X+23,Y+24);
Line(X+7,Y+24,X,Y+24);
Line(X+23,Y+24,X+30,Y+24);
Line(X,Y+24,X,Y+21);
Line(X+30,Y+24,X+30,Y+21);
Line(X,Y+21,X+7,Y+21);
Line(X+30,Y+21,X+23,Y+21);
Line(X+7,Y+21,X,Y+16);
Line(X+23,Y+21,X+30,Y+16);
Line(X,Y+16,X+12,Y+16);
Line(X+30,Y+16,X+18,Y+16);
Line(X+12,Y+16,X+12,Y+10);
Line(X+18,Y+16,X+18,Y+10);
Line(X+12,Y+10,X+8,Y+10);
Line(X+18,Y+10,X+22,Y+10);
Line(X+8,Y+10,X+8,Y+6);
Line(X+22,Y+10,X+22,Y+6);
Line(X+8,Y+6,X+12,Y+6);
Line(X+22,Y+6,X+18,Y+6);
Line(X+12,Y+6,X+12,Y+3);
Line(X+18,Y+6,X+18,Y+3);
Line(X+12,Y+3,X+18,Y+3);
CirCle(X+15,Y+22,3);
FloodFill(X+15,Y+28,Mau);
End;
Procedure VeQuanHau(X,Y,Mau: integer);
Begin
Line(X,Y+48,X+30,Y+48);
Line(X,Y+48,X+7,Y+24);
Line(X+30,Y+48,X+23,Y+24);
Line(X+7,Y+24,X,Y+24);
Line(X+23,Y+24,X+30,Y+24);
Line(X,Y+24,X,Y+21);
Line(X+30,Y+24,X+30,Y+21);
Line(X,Y+21,X+7,Y+21);
Line(X+30,Y+21,X+23,Y+21);
Line(X+7,Y+21,X,Y+16);
Line(X+23,Y+21,X+30,Y+16);
Line(X,Y+16,X+15,Y+10);
Line(X+30,Y+16,X+15,Y+10);
Line(X+15,Y+10,X+15,Y+3);
FloodFill(X+15,Y+28,Mau);
End;
Procedure VeQuanTuong(X,Y,Mau: integer);
Begin
Line(X,Y+48,X+30,Y+48);
Line(X,Y+48,X+7,Y+35);
Line(X+30,Y+48,X+23,Y+35);
Line(X+7,Y+35,X+7,Y+16);
Line(X+23,Y+35,X+23,Y+16);
Line(X+7,Y+16,X+15,Y+6);
Line(X+23,Y+16,X+15,Y+6);
FillEllipse(X+15,Y+4,2,2);
Line(X+7,Y+21,X+17,Y+9);
FloodFill(X+15,Y+28,Mau);
End;
Procedure VeQuanXe(X,Y,Mau: integer);
Begin
Line(X,Y+48,X+30,Y+48);
Line(X,Y+48,X+7,Y+35);
Line(X+30,Y+48,X+23,Y+35);
Line(X+7,Y+35,X+7,Y+16);
Line(X+23,Y+35,X+23,Y+16);
Line(X+7,Y+16,X,Y+16);
Line(X+23,Y+16,X+30,Y+16);
Line(X,Y+16,X,Y+6);
Line(X+30,Y+16,X+30,Y+6);
Line(X,Y+6,X+6,Y+6);
Line(X+30,Y+6,X+24,Y+6);
Line(X+6,Y+6,X+6,Y+10);
Line(X+24,Y+6,X+24,Y+10);
Line(X+6,Y+10,X+12,Y+10);
Line(X+24,Y+10,X+18,Y+10);
Line(X+12,Y+10,X+12,Y+6);
Line(X+18,Y+10,X+18,Y+6);
Line(X+12,Y+6,X+18,Y+6);
FloodFill(X+15,Y+28,Mau);
End;
Procedure VeQuanMa(X,Y,Mau: integer);
Begin
Line(X,Y+48,X+30,Y+48);
Line(X,Y+48,X+7,Y+35);
Line(X+30,Y+48,X+23,Y+35);
Line(X+7,Y+35,X+13,Y+25);
Line(X+13,Y+25,X+7,Y+17);
Line(X+7,Y+17,X,Y+23);
Line(X,Y+23,X-3,Y+20);
Line(X-3,Y+20,X+2,Y+8);
Line(X+2,Y+8,X+13,Y+5);
Line(X+13,Y+5,X+23,Y+10);
Line(X+23,Y+10,X+25,Y+30);
Line(X+25,Y+30,X+23,Y+35);
Circle(X+11,Y+12,2);
FloodFill(X+15,Y+28,Mau);
End;
Procedure VeQuanTot(X,Y,Mau: integer);
Begin
Line(X,Y+48,X+30,Y+48);
Line(X,Y+48,X+7,Y+35);
Line(X+30,Y+48,X+23,Y+35);
Line(X+7,Y+35,X+10,Y+20);
Line(X+10,Y+20,X+7,Y+13);
Line(X+23,Y+35,X+20,Y+20);
Line(X+20,Y+20,X+23,Y+13);
Line(X+7,Y+13,X+23,Y+13);
FillEllipse(X+15,Y+7,6,6);
FloodFill(X+15,Y+25,Mau);
End;
Procedure InQuanCo(X,Y,Quanco,Mau: integer);
Begin
SetColor(Mau);
SetFillStyle(1,Mau);
HiDeMouse;
case QuanCo of
Q_Vua:
VeQuanVua(X+10,Y,Mau);
Q_Hau:
VeQuanHau(X+10,Y,Mau);
Q_Tuong:
VeQuanTuong(X+10,Y,Mau);
Q_Xe:
VeQuanXe(X+10,Y,Mau);
Q_Ma:
VeQuanMa(X+10,Y,Mau);
Q_Tot:
VeQuanTot(X+10,Y,Mau);
end;
ShowMouse;
End;
Procedure ChuanBiTot(X,Y,Mau: integer);
Begin
if Mau = Red then
begin
if X < 7 then
begin
if OCo[X+1,Y].TuThe = T_Trong then OCo[X+1,Y].TuThe := T_ChuanBi;
if Y > 0 then
if (OCo[X+1,Y-1].TuThe <> T_Trong) and (OCo[X+1,Y-1].MauCo = Black)
then OCo[X+1,Y-1].TuThe := T_ChuanBi;
if (OCo[X+1,Y+1].TuThe <> T_Trong) and (OCo[X+1,Y+1].MauCo = Black)
then OCo[X+1,Y+1].TuThe := T_ChuanBi;
end;
if (X = 1) and (OCo[3,Y].TuThe = T_Trong) then
OCo[3,Y].TuThe := T_ChuanBi;
end
else
begin
if X > 0 then
begin
if OCo[X-1,Y].TuThe = T_Trong then OCo[X-1,Y].TuThe := T_ChuanBi;
if Y > 0 then
if (OCo[X-1,Y-1].TuThe <> T_Trong) and (OCo[X-1,Y-1].MauCo = Red)
then OCo[X-1,Y-1].TuThe := T_ChuanBi;
if (OCo[X-1,Y+1].TuThe <> T_Trong) and (OCo[X-1,Y+1].MauCo = Red)
then OCo[X-1,Y+1].TuThe := T_ChuanBi;
if (X = 6) and (OCo[4,Y].TuThe = T_Trong) then
OCo[4,Y].TuThe := T_ChuanBi;
end;
end;
End;
Procedure ChuanBiXe(X,Y,Mau: integer);
var i: integer;
Begin
for i := X+1 to 7 do
begin
if OCo[i,Y].Tuthe = T_Trong then
OCo[i,Y].TuThe := T_ChuanBi
else if OCo[i,Y].MauCo <> Mau then
begin
OCo[i,Y].TuThe := T_ChuanBi;
break;
end
else break;
end;
for i := X-1 downto 0 do
begin
if OCo[i,Y].Tuthe = T_Trong then
OCo[i,Y].TuThe := T_ChuanBi
else if OCo[i,Y].MauCo <> Mau then
begin
OCo[i,Y].TuThe := T_ChuanBi;
break;
end
else break;
end;
for i := Y+1 to 7 do
begin
if OCo[X,i].Tuthe = T_Trong then
OCo[X,i].TuThe := T_ChuanBi
else if OCo[X,i].MauCo <> Mau then
begin
OCo[X,i].TuThe := T_ChuanBi;
break;
end
else break;
end;
for i := Y-1 downto 0 do
begin
if OCo[X,i].Tuthe = T_Trong then
OCo[X,i].TuThe := T_ChuanBi
else if OCo[X,i].MauCo <> Mau then
begin
OCo[X,i].TuThe := T_ChuanBi;
break;
end
else break;
end;
End;
Procedure ChuanBiMa(X,Y,Mau: integer);
Begin
if (OCo[X+2,Y-1].TuThe = T_Trong) or
((OCo[X+2,Y-1].TuThe <> T_Trong) and (OCo[X+2,Y-1].MauCo <> Mau)) then
OCo[X+2,Y-1].TuThe := T_ChuanBi;
if (OCo[X-2,Y-1].TuThe = T_Trong) or
((OCo[X-2,Y-1].TuThe <> T_Trong) and (OCo[X-2,Y-1].MauCo <> Mau)) then
OCo[X-2,Y-1].TuThe := T_ChuanBi;
if (OCo[X+2,Y+1].TuThe = T_Trong) or
((OCo[X+2,Y+1].TuThe <> T_Trong) and (OCo[X+2,Y+1].MauCo <> Mau)) then
OCo[X+2,Y+1].TuThe := T_ChuanBi;
if (OCo[X-2,Y+1].TuThe = T_Trong) or
((OCo[X-2,Y+1].TuThe <> T_Trong) and (OCo[X-2,Y+1].MauCo <> Mau)) then
OCo[X-2,Y+1].TuThe := T_ChuanBi;
if (OCo[X+1,Y-2].TuThe = T_Trong) or
((OCo[X+1,Y-2].TuThe <> T_Trong) and (OCo[X+1,Y-2].MauCo <> Mau)) then
OCo[X+1,Y-2].TuThe := T_ChuanBi;
if (OCo[X+1,Y+2].TuThe = T_Trong) or
((OCo[X+1,Y+2].TuThe <> T_Trong) and (OCo[X+1,Y+2].MauCo <> Mau)) then
OCo[X+1,Y+2].TuThe := T_ChuanBi;
if (OCo[X-1,Y-2].TuThe = T_Trong) or
((OCo[X-1,Y-2].TuThe <> T_Trong) and (OCo[X-1,Y-2].MauCo <> Mau)) then
OCo[X-1,Y-2].TuThe := T_ChuanBi;
if (OCo[X-1,Y+2].TuThe = T_Trong) or
((OCo[X-1,Y+2].TuThe <> T_Trong) and (OCo[X-1,Y+2].MauCo <> Mau)) then
OCo[X-1,Y+2].TuThe := T_ChuanBi;
End;
Procedure ChuanBiTuong(X,Y,Mau: integer);
var i: integer;
Begin
for i := 1 to 7 do
begin
if (X - i >= 0) and (Y - i >= 0) then
begin
if (OCo[X-i,Y-i].TuThe = T_Trong) then
OCo[X-i,Y-i].TuThe := T_ChuanBi
else if (OCo[X-i,Y-i].MauCo <> Mau) then
begin
OCo[X-i,Y-i].TuThe := T_ChuanBi;
break;
end;
end
else break;
end;
for i := 1 to 7 do
begin
if (X + i <= 7) and (Y + i <= 7) then
begin
if (OCo[X+i,Y+i].TuThe = T_Trong) then
OCo[X+i,Y+i].TuThe := T_ChuanBi
else if (OCo[X+i,Y+i].MauCo <> Mau) then
begin
OCo[X+i,Y+i].TuThe := T_ChuanBi;
break;
end;
end
else break;
end;
for i := 1 to 7 do
begin
if (X - i >= 0) and (Y + i <= 7) then
begin
if (OCo[X-i,Y+i].TuThe = T_Trong) then
OCo[X-i,Y+i].TuThe := T_ChuanBi
else if (OCo[X-i,Y+i].MauCo <> Mau) then
begin
OCo[X-i,Y+i].TuThe := T_ChuanBi;
break;
end;
end
else break;
end;
for i := 1 to 7 do
begin
if (X + i <= 7) and (Y - i >= 0) then
begin
if (OCo[X+i,Y-i].TuThe = T_Trong) then
OCo[X+i,Y-i].TuThe := T_ChuanBi
else if (OCo[X+i,Y-i].MauCo <> Mau) then
begin
OCo[X+i,Y-i].TuThe := T_ChuanBi;
break;
end;
end
else break;
end;
End;
Procedure ChuanBiHau(X,Y,Mau: integer);
Begin
ChuanBiXe(X,Y,Mau);
ChuanBiTuong(X,Y,Mau);
End;
Procedure ChuanBiVua(X,Y,Mau: integer);
var i,j : integer;
Begin
for i := X-1 to X+1 do
for j := Y-1 to Y+1 do
begin
if (i <> X) or (j <> Y) then
if (OCo[i,j].TuThe = T_Trong) or ((OCo[i,j].TuThe = T_QuanCo)
and (OCo[i,j].MauCo <> Mau)) then
OCo[i,j].TuThe := T_ChuanBi;
end;
End;
Procedure ChuanBiQuanCo(X,Y,QuanCo,Mau: integer);
Begin
case QuanCo of
Q_Tot: ChuanBiTot(X,Y,Mau);
Q_Xe: ChuanBiXe(X,Y,Mau);
Q_Ma: ChuanBiMa(X,Y,Mau);
Q_Tuong: ChuanBiTuong(X,Y,Mau);
Q_Hau: ChuanBiHau(X,Y,Mau);
Q_Vua: ChuanBiVua(X,Y,Mau);
end;
End;
Procedure HuyChuanBi;
var i,j: integer;
Begin
for i := 0 to 7 do
for j := 0 to 7 do
begin
if OCo[i,j].TuThe = T_ChuanBi then
begin
if OCo[i,j].QuanCo = Q_Khong then OCo[i,j].TuThe := T_Trong
else OCo[i,j].TuThe := T_QuanCo;
end;
end;
End;
Procedure TaoBanCo;
var i,j,k: integer;
Begin
for i := 0 to 7 do
begin
if k = Green then k := White
else k := Green;
for j := 0 to 7 do
begin
SetFillStyle(1,k);
Bar(i*_KT,j*_KT,(i+1)*_KT,(j+1)*_KT);
OCo[i,j].Tuthe := T_Trong;
OCo[i,j].MauO := k;
OCo[i,j].X := i;
OCo[i,j].Y := j;
OCo[i,j].QuanCo := Q_Khong;
if k = Green then k := White
else k := Green;
end;
end;
{ In Chu }
SetColor(Red);
SetTextStyle(DefaultFont, HorizDir,4);
OutTextXy(8*_KT+10,20,'GAME');
SetColor(LightGreen);
OutTextXY(8*_KT+70,60,'CHESS');
InQuanCo(8*_KT+10,120,Q_Vua,White);
InQuanCo(8*_KT+80,120,Q_Hau,White);
InQuanCo(8*_KT+160,120,Q_Xe,White);
InQuanCo(8*_KT+10,230,Q_Ma,White);
InQuanCo(8*_KT+80,230,Q_Tuong,White);
InQuanCo(8*_KT+160,230,Q_Tot,White);
SetFillStyle(7,Brown);
Bar(8*_KT+30,320,8*_KT+200,400);
SetColor(Cyan);
OutTextXy(8*_KT+60,345,'EXIT');
End;
Procedure KhoiTaoGame;
var i,j: integer;
Begin
OCo[0,0].QuanCo := Q_Xe;
OCo[0,1].QuanCo := Q_Ma;
OCo[0,2].QuanCo := Q_Tuong;
OCo[0,3].QuanCo := Q_Hau;
OCo[0,4].QuanCo := Q_Vua;
OCo[0,5].QuanCo := Q_Tuong;
OCo[0,6].QuanCo := Q_Ma;
OCo[0,7].QuanCo := Q_Xe;
OCo[7,0].QuanCo := Q_Xe;
OCo[7,1].QuanCo := Q_Ma;
OCo[7,2].QuanCo := Q_Tuong;
OCo[7,3].QuanCo := Q_Hau;
OCo[7,4].QuanCo := Q_Vua;
OCo[7,5].QuanCo := Q_Tuong;
OCo[7,6].QuanCo := Q_Ma;
OCo[7,7].QuanCo := Q_Xe;
for i := 0 to 7 do
begin
Oco[1,i].QuanCo := Q_Tot;
OCo[6,i].QuanCo := Q_Tot;
end;
for i := 0 to 1 do
for j := 0 to 7 do
begin
OCo[i,j].MauCo := Red;
OCo[i,j].Tuthe := T_QuanCo;
InQuanCo(i*_KT,j*_KT,OCo[i,j].QuanCo,OCo[i,j].MauCo);
OCo[7-i,j].MauCo := Black;
OCo[7-i,j].TuThe := T_QuanCo;
InQuanCo((7-i)*_KT,j*_KT,OCo[7-i,j].QuanCo,OCo[7-i,j].MauCo);
end;
End;
Procedure MouseEnter;
var X,Y: integer;
St: string;
Begin
X := mousex div _KT;
Y := mousey div _KT;
if (X < 8) and (Y < 8) and LeftClick then
begin
if not DangChon and (OCo[X,Y].MauCo = Luot) and
(LaOCo.X = X) and (LaOCo.Y = Y) and (LaOCo.tuThe = T_QuanCo) then
begin
HideMouse;
SetFillStyle(1,LaOCo.MauO);
Bar(LaOCo.X*_KT,LaOCo.Y*_KT,(LaOCo.X + 1)*_KT,(LaOCo.Y + 1)*_KT);
OCo[LaOCo.X,LaOCo.Y].Tuthe := LaOCo.TuThe;
SetFillStyle(1,Yellow);
Bar(X*_KT,Y*_KT,(X+1)*_KT,(Y+1)*_KT);
InQuanCo(LaOCo.X*_KT,LaOCo.Y*_KT,LaOCo.quanCo,LaOCo.MauCo);
OChon := OCo[X,Y];
OCo[X,Y].TuThe := T_Chon;
LaOCo := OCo[X,Y];
ShowMouse;
Dangchon := True;
ChuanBiQuanCo(X,Y,OCo[X,Y].QuanCo,OCo[X,Y].MauCo);
end
else
if (OCo[X,Y].TuThe = T_Chon) then
begin
HideMouse;
SetFillStyle(1,LaOCo.MauO);
Bar(LaOCo.X*_KT,LaOCo.Y*_KT,(LaOCo.X + 1)*_KT,(LaOCo.Y + 1)*_KT);
OCo[LaOCo.X,LaOCo.Y].Tuthe := LaOCo.TuThe;
SetFillStyle(1,Yellow);
Bar(X*_KT,Y*_KT,(X+1)*_KT,(Y+1)*_KT);
if LaOCo.TuThe <> T_Trong then
InQuanCo(LaOCo.X*_KT,LaOCo.Y*_KT,LaOCo.quanCo,LaOCo.MauCo);
OCo[X,Y].TuThe := T_QuanCo;
LaOCo := OCo[X,Y];
ShowMouse;
DangChon := False;
HuyChuanBi;
end
else
if (LaOCo.X = X) and (LaOCo.Y = Y) and (LaOCo.TuThe = T_ChuanBi) then
begin
HuyChuanBi;
HideMouse;
if OCo[X,Y].QuanCo = Q_Vua then
begin
SetColor(Blue);
SetTextStyle(DefaultFont, HorizDir, 2);
if OCo[X,Y].MauCo = Red then
OutTextXY(2*_KT,4*_KT,'Ben Do Thua Roi!')
else
OutTextXY(2*_KT,4*_KT,'Ben Den Thua Roi!');
EndGame := True;
end;
OCo[X,Y].QuanCo := OChon.QuanCo;
OCo[X,Y].MauCo := OChon.MauCo;
SetFillStyle(1,OCo[X,Y].MauO);
Bar(X*_KT,Y*_KT,(X+1)*_KT,(Y+1)*_KT);
SetFillStyle(1,OChon.MauO);
Bar(OChon.X*_KT,OChon.Y*_KT,(OChon.X+1)*_KT,(Ochon.Y+1)*_KT);
InQuanCo(X*_KT,Y*_KT,OChon.QuanCo,OChon.MauCo);
OCo[OChon.X,OChon.Y].TuThe := T_Trong;
OCo[Ochon.X,OChon.Y].QuanCo := Q_Khong;
OCo[X,Y].TuThe := T_QuanCo;
LaOCo := OCo[OChon.X,Ochon.Y];
ShowMouse;
DangChon := False;
if Luot = Red then Luot := Black
else Luot := Red;
end;
end
else
if (X < 8) and (Y < 8) then
begin
case OCo[X,Y].TuThe of
T_Trong:
begin
HideMouse;
SetFillStyle(1,LaOCo.MauO);
if LaOCo.TuThe <> T_Chon then
begin
Bar(LaOCo.X*_KT,LaOCo.Y*_KT,(LaOCo.X + 1)*_KT,(LaOCo.Y + 1)*_KT);
OCo[LaOCo.X,LaOCo.Y].Tuthe := LaOCo.TuThe;
end;
if LaOco.TuThe <> T_Trong then
InQuanCo(LaOCo.X*_KT,LaOCo.Y*_KT,LaOCo.quanCo,LaOCo.MauCo);
SetFillStyle(1,Cyan);
Bar(X*_KT,Y*_KT,(X+1)*_KT,(Y+1)*_KT);
LaOCo := OCo[X,Y];
OCo[X,Y].TuThe := T_Vao;
ShowMouse;
end;
T_QuanCo:
begin
HideMouse;
SetFillStyle(1,LaOCo.MauO);
if LaOCo.TuThe <> T_Chon then
begin
Bar(LaOCo.X*_KT,LaOCo.Y*_KT,(LaOCo.X + 1)*_KT,(LaOCo.Y + 1)*_KT);
OCo[LaOCo.X,LaOCo.Y].Tuthe := LaOCo.TuThe;
end;
if LaOco.TuThe <> T_Trong then
InQuanCo(LaOCo.X*_KT,LaOCo.Y*_KT,LaOCo.quanCo,LaOCo.MauCo);
SetFillStyle(1,Blue);
Bar(X*_KT,Y*_KT,(X+1)*_KT,(Y+1)*_KT);
InQuanCo(X*_KT,Y*_KT,OCo[X,Y].QuanCo,OCo[X,Y].MauCo);
LaOCo := OCo[X,Y];
OCo[X,Y].TuThe := T_Vao;
ShowMouse;
end;
T_ChuanBi:
begin
HideMouse;
SetFillStyle(1,LaOCo.MauO);
if LaOCo.TuThe <> T_Chon then
begin
Bar(LaOCo.X*_KT,LaOCo.Y*_KT,(LaOCo.X + 1)*_KT,(LaOCo.Y + 1)*_KT);
OCo[LaOCo.X,LaOCo.Y].Tuthe := LaOCo.TuThe;
end;
if LaOco.TuThe <> T_Trong then
InQuanCo(LaOCo.X*_KT,LaOCo.Y*_KT,LaOCo.quanCo,LaOCo.MauCo);
SetFillStyle(1,Brown);
Bar(X*_KT,Y*_KT,(X+1)*_KT,(Y+1)*_KT);
InQuanCo(X*_KT,Y*_KT,OCo[X,Y].QuanCo,OCo[X,Y].MauCo);
LaOCo := OCo[X,Y];
OCo[X,Y].TuThe := T_Vao;
ShowMouse;
end;
end;
end;
End;
BEGIN
InitGraph(gd,gm,'');
MX := GetMaxX;
MY := GetMaxY;
InitMouse;
Luot := Red;
TaoBanCo;
KhoiTaoGame;
LaOCo := OCo[0,0];
DangChon := False;
EndGame := False;
ShowMouse;
repeat
MouseEnter;
until MouseAreA(8*_KT+30,320,8*_KT+200,400) or EndGame;
if EndGame then readln;
CloseGraph;
END.