主题:请教 这个五子棋的代码判断斜方向时哪里错了
/------左上->右下------//算法错了哦。 //Biger();
if TheCount < 5 then
begin
TheCount := 1;
tmp_X := a_X;
tmp_Y := a_Y;
for i := Smaller(a_X, a_Y) - 1 downto 0 do
begin
tmp_X := tmp_X - 1;
tmp_Y := tmp_Y - 1;
if g_Chessboard[tmp_X, tmp_Y] = a_Who then
TheCount := TheCount + 1
else
break;
end;
tmp_X := a_X;
tmp_Y := a_Y;
for i := Biger(a_X, a_Y) + 1 to g_TableCount do
begin
tmp_X := tmp_X + 1;
tmp_Y := tmp_Y + 1;
if g_Chessboard[tmp_X, tmp_Y] = a_Who then
TheCount := TheCount + 1
else
break;
end;
end;
//-----------------------------
//------左下->右上------//
if TheCount < 5 then
begin
TheCount := 1;
tmp_X := a_X;
tmp_Y := a_Y;
for i := Smaller(a_X, a_Y) - 1 downto 0 do
begin
tmp_X := tmp_X - 1;
tmp_Y := tmp_Y + 1;
if g_Chessboard[tmp_X, tmp_Y] = a_Who then
TheCount := TheCount + 1
else
break;
end;
tmp_X := a_X;
tmp_Y := a_Y;
for i := Biger(a_X, a_Y) + 1 to g_TableCount do
begin
tmp_X := tmp_X + 1;
tmp_Y := tmp_Y - 1;
if g_Chessboard[tmp_X, tmp_Y] = a_Who then
TheCount := TheCount + 1
else
break;
end;
end;
if TheCount < 5 then
begin
TheCount := 1;
tmp_X := a_X;
tmp_Y := a_Y;
for i := Smaller(a_X, a_Y) - 1 downto 0 do
begin
tmp_X := tmp_X - 1;
tmp_Y := tmp_Y - 1;
if g_Chessboard[tmp_X, tmp_Y] = a_Who then
TheCount := TheCount + 1
else
break;
end;
tmp_X := a_X;
tmp_Y := a_Y;
for i := Biger(a_X, a_Y) + 1 to g_TableCount do
begin
tmp_X := tmp_X + 1;
tmp_Y := tmp_Y + 1;
if g_Chessboard[tmp_X, tmp_Y] = a_Who then
TheCount := TheCount + 1
else
break;
end;
end;
//-----------------------------
//------左下->右上------//
if TheCount < 5 then
begin
TheCount := 1;
tmp_X := a_X;
tmp_Y := a_Y;
for i := Smaller(a_X, a_Y) - 1 downto 0 do
begin
tmp_X := tmp_X - 1;
tmp_Y := tmp_Y + 1;
if g_Chessboard[tmp_X, tmp_Y] = a_Who then
TheCount := TheCount + 1
else
break;
end;
tmp_X := a_X;
tmp_Y := a_Y;
for i := Biger(a_X, a_Y) + 1 to g_TableCount do
begin
tmp_X := tmp_X + 1;
tmp_Y := tmp_Y - 1;
if g_Chessboard[tmp_X, tmp_Y] = a_Who then
TheCount := TheCount + 1
else
break;
end;
end;