AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
Thema durchsuchen
Ansicht
Themen-Optionen

tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz

Ein Thema von biby90 · begonnen am 22. Aug 2011 · letzter Beitrag vom 31. Aug 2011
Thema geschlossen
Seite 5 von 18   « Erste     345 6715     Letzte »    
biby90
(Gast)

n/a Beiträge
 
#41

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz

  Alt 23. Aug 2011, 12:40
Delphi-Quellcode:
procedure TForm1.Label8Click(Sender: TObject);
begin
  if IsFieldEmpty(Label8.Caption) then
  begin
    Label8.Caption := WriteToField(GPlayer);
    if CheckForWin(GBuffer) then //kann wegen optimierung nicht zugegriffen werden?
    begin
      Label8.Caption := '';
      ShowMessage(IntToStr(GPlayer)+' hat gewonnen!');
      GPlayer := 1;
    end else
    begin
      ChangePlayer;
    end;
  end;
end;
also naja ich gebe euch nochal die Funktion dazu.....
Delphi-Quellcode:
function TForm1.CheckForWin(AIndex: array of string): Boolean;
begin
  AIndex[1]:= Label1.Caption;
  AIndex[2]:= Label1.Caption;
  AIndex[3]:= Label1.Caption;
  AIndex[4]:= Label1.Caption;
  AIndex[5]:= Label1.Caption;
  AIndex[6]:= Label1.Caption;
  AIndex[7]:= Label1.Caption;
  AIndex[8]:= Label1.Caption;
  AIndex[9]:= Label1.Caption;

  result := false;
  begin
    if (AIndex[1] = AIndex[2]) and (AIndex[2] = AIndex[3]) and
      (IsFieldEmpty(AIndex[1]) = false) then
    begin
      result := true;
    end;
    if (AIndex[4] = AIndex[5]) and (AIndex[5] = AIndex[6]) and
      (IsFieldEmpty(AIndex[4]) = false) then
    begin
      result := true;
    end;
    if (AIndex[7] = AIndex[8]) and (AIndex[8] = AIndex[9]) and
      (IsFieldEmpty(AIndex[7]) = false) then
    begin
      result := true;
    end;
    if (AIndex[1] = AIndex[4]) and (AIndex[4] = AIndex[7]) and
      (IsFieldEmpty(AIndex[1]) = false) then
    begin
      result := true;
    end;
    if (AIndex[2] = AIndex[5]) and (AIndex[5] = AIndex[8]) and
      (IsFieldEmpty(AIndex[2]) = false) then
    begin
      result := true;
    end;
    if (AIndex[3] = AIndex[6]) and (AIndex[6] = AIndex[9]) and
      (IsFieldEmpty(AIndex[3]) = false) then
    begin
      result := true;
    end;
    if (AIndex[1] = AIndex[5]) and (AIndex[5] = AIndex[9]) and
      (IsFieldEmpty(AIndex[1]) = false) then
    begin
      result := true;
    end;
    if (AIndex[3] = AIndex[5]) and (AIndex[5] = AIndex[7]) and
      (IsFieldEmpty(AIndex[3]) = false) then
    begin
      result := true;
    end;
  end;
end;
also als ich es gerade durchgesteppt habe stand an der Seite
Zitat:
//kann wegen optimierung nicht zugegriffen werden

bin eben Mittag essen also.... ich seh ja was ihr schreibt^^
 
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#42

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz

  Alt 23. Aug 2011, 13:10
So macht der Parameter aber gar keinen Sinn, Du solltest ihn schon zum Datenaustausch nutzen. Aber mir leuchtet der Sinn des Array of String sowieso nicht ein (wieso ein Array, und dann auch noch Strings?). Übrigens setzt Du alle Elemente Deines Arrays auf denselben Wert, damit kannst Du Dir die Vergleiche eigentlich sparen
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
 
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.800 Beiträge
 
Delphi 12 Athens
 
#43

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz

  Alt 23. Aug 2011, 13:27
also muss ich die alle umschreiben und auf false prüfen?
NEIN!

Das Ergebnis der Funktionen ist ja bereits ein Wahrheitswert (Boolean). Deshalb musst Du nur zB
if CheckForWin(a) then schreiben. Das reicht völlig, und erspart dir das eine oder andere Problem.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
 
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#44

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz

  Alt 23. Aug 2011, 13:30
Hatte ich das nicht druntergeschrieben?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
 
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.800 Beiträge
 
Delphi 12 Athens
 
#45

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz

  Alt 23. Aug 2011, 13:32
Ich wollte nur sicher gehen. Denn in Post 32 war ihr das noch nciht bewusst geworden, und danach stand nichts mehr dazu da - zugegeben: hab den Rest nur überflogen.

Aber das kann man ja nicht oft genug sagen

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
 
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#46

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz

  Alt 23. Aug 2011, 13:34
aber das kann man ja nicht oft genug sagen
full ack
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
 
biby90
(Gast)

n/a Beiträge
 
#47

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz

  Alt 23. Aug 2011, 13:53
Zitat:
Übrigens setzt Du alle Elemente Deines Arrays auf denselben Wert
das Array soll ja eigentlich die Werte aus dem Label vergleichen. Sprich wenn Reihen 1,2 und 3 ein X haben dann hat Spieler X gewonnen...

Zitat:
if CheckForWin(a) then
habe ich docj... oder nicht?
 
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#48

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz

  Alt 23. Aug 2011, 13:57
Das if ... = true then -Problem:

Wie jeder bestimmt zu Wissen glaube, kennt ein Boolean zwei Zustände ... True oder False ... niwa?

Falsch.
Siehe folgenden Test:

Gegeben ist eine Funktion, welche einen booleanischen Wert zurückliefert.
Und zusätzlich sind mehrere Varianten gegeben, diesen Boolean auszuwerten.
Delphi-Quellcode:
function Test: Boolean;
asm
  mov al, 8
end;

...

if Test = true then
  ShowMessage('Test = true')
else if Test = false then
  ShowMessage('Test = false')
else
  ShowMessage('Test = weder true noch false?');

...

if Test = true then
  ShowMessage('Test = true : ja (richtig)')
else
  ShowMessage('Test = true : nicht ja (falsch)');

if Test = false then
  ShowMessage('Test = false : nein (richtig)')
else
  ShowMessage('Test = false : nicht nein (falsch)');

if Test then
  ShowMessage('Test : ja (richtig)')
else
  ShowMessage('Test : nein (falsch)');

if not Test then
  ShowMessage('not Test : nein (richtig)')
else
  ShowMessage('not Test : ja (falsch)');
Also.
Prüfe niemals auf True und False.

Einzige Außnahme, wenn man wirklich "genau" den internen/binären Wert prüfen muß, was aber meistens nicht der Fall ist, da man ja nur den "logischen" Wert ala "Ja oder Nein" prüfen möchte.
$2B or not $2B
 
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#49

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz

  Alt 23. Aug 2011, 14:02
Zitat:
Delphi-Quellcode:
AIndex[1]:= Label1.Caption;
  AIndex[2]:= Label1.Caption;
  AIndex[3]:= Label1.Caption;
  AIndex[4]:= Label1.Caption;
  AIndex[5]:= Label1.Caption;
  AIndex[6]:= Label1.Caption;
  AIndex[7]:= Label1.Caption;
  AIndex[8]:= Label1.Caption;
  AIndex[9]:= Label1.Caption;
Was steht dann wohl in den einzelnen Elementen drin?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
 
biby90
(Gast)

n/a Beiträge
 
#50

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz

  Alt 23. Aug 2011, 14:05
hmm... hast ja recht.... Wie bekommt er denn sonst die Werte aus den Labels?
ist ja blöde menno
 
Thema geschlossen
Seite 5 von 18   « Erste     345 6715     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:29 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz