Forum: Sonstige Fragen zu Delphi
Delphi
by dizzy,
29. Jun 2004
function CheckDiagonal: Boolean;
var
i, k, c, r: Integer;
begin
c := -2;
for i := 0 to 6 do
begin
cnt := 0;
c := i-2;
r := 0;
Forum: Sonstige Fragen zu Delphi
Delphi
by dizzy,
29. Jun 2004
Nimm meins - das hab ich in deinem Projekt gebaut und getestet :zwinker:
Forum: Sonstige Fragen zu Delphi
Delphi
by dizzy,
29. Jun 2004
SO! Jetzt aber. Das Problem war, dass die Schleife immer bis zum Ende durchlief. Daher fand sie auch NUR Siegbedingungen im letzten Durchgang. Lösung: Ein nicht so schönes, aber wirkungsvoll angebrachtes "exit".
function CheckRows: Boolean;
var
c, r: Integer;
begin
for r := 0 to ROWS-1 do
begin
cnt := 0;
Forum: Sonstige Fragen zu Delphi
Delphi
by dizzy,
29. Jun 2004
Ein Problem sehe ich: Eine Zeile/Spalte der Form: 0 1 1 0 0 1 1 würde zu cnt=4 = true führen, obwohl das ja kein Sieg wäre. Es müssen ja nicht nur 4 Steine in einer Zeile/Spalte/Diag. sein, sondern die müssen auch noch lückenlos sein.
function CheckRows: Boolean;
var
c, r: Integer;
begin
cnt := 0;
for c := 0 to COLUMNS-1 do
begin
Forum: Sonstige Fragen zu Delphi
Delphi
by dizzy,
28. Jun 2004
Hmmm mathematisch... Hab grad ein wenig meinen Kopf um Vektoren und Matrizen schwirren lassen... aber das einzige was mir einfiel ist gleich der Spielsteinzählung, bzw. noch einiges aufwändiger. (Hatte gedacht: Jede Zeile/Spalte als Vektor betrachten und seine Länge berechnen. Ist die = 2 ... aber halt... ne ist auch Quatsch. Dann würde auch 010111 gewinnen... neee neee.)
Hab auch im Netz...
Forum: Sonstige Fragen zu Delphi
Delphi
by dizzy,
28. Jun 2004
Ein Schnellschuss: Die Aktuelle Reihe in einen String konvertieren, und nach den Substrings '1111' oder '2222' mit Pos suchen. Das für je alle möglichen Reihen (bei diagonal fallen ja ein paar weg, wo nicht 4 in eine Reihe passen ;))
Weiss nicht wie gut das ist; war die Idee die mir grad spontan kam.
gruss,
dizzy