boah nee sind die codes lang, machts doch so:
Delphi-Quellcode:
function check4gewinnt(x, y{, spieler}:Byte):boolean //Koordinaten
var
i, j, anzahl:Byte;
gewonnen:boolean;
begin
//reihen
i:=x-4;
anzahl:=0;
while (i<x+5) and (anzahl<4) do begin
anzahl:=anzahl+1;
i:=i+1;
if feld[i,y]<>feld[x,y] then anzahl:=0;
end;
if anzahl=4 then gewonnen:=true
//spalten
i:=y-4;
anzahl:=0;
while (i<y+5) and (anzahl<4) do begin
anzahl:=anzahl+1;
i:=i+1;
if feld[x,i]<>feld[x,y] then anzahl:=0;
end;
if anzahl=4 then gewonnen:=true
//diagonalen
i:=x-4; j:=y-4;
anzahl:=0;
while (i<x+5) and (j<y+5) and (anzahl<4) do begin
anzahl1:=anzahl1+1;
i:=i+1;
j:=j+1;
if feld[i,j]<>feld[x,y] then anzahl:=0;
end;
if anzahl=4 then gewonnen:=true;
i:=x-4; j:=y+4;
anzahl:=0;
while (i<x+5) and (j<y+5) and (anzahl<4) do begin
anzahl1:=anzahl1+1;
i:=i+1;
j:=j-1;
if feld[i,j]<>feld[x,y] then anzahl:=0;
end;
if anzahl=4 then gewonnen:=true;
return:=gewonnen;
end;
das is doch wesentlich kürzer, oder???
und es müsste funzen...
also feld ist das feld halt
zweidimensionales array, das mit bytes gefüllt ist...
x und y sind die "koordinaten" des aktuell gesetzten feldes...
mir fällt grad ma so auf dasses so viel kürzer gar nit ist, oder?
und die variable spieler brauch ich gar nit...