Delphi-PRAXiS
Seite 3 von 5     123 45      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz (https://www.delphipraxis.net/162412-tic-tac-toe-mal-wieder-versteh-aufgabestellung-nicht-ganz.html)

biby90 23. Aug 2011 15:12

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
nein. ich dachte ich hätte den Fehler dort entdeckt^^ der Rest ist doch noch da.... ich habs bloß Auskommentiert:angel:

DeddyH 23. Aug 2011 15:21

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
Der Fehler liegt darin, dass Du die Funktion aufrufst, ohne vorher zu prüfen, ob das aktuell angeklickte Label "leer" ist.

biby90 23. Aug 2011 15:26

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
Delphi-Quellcode:
procedure TForm1.Label9Click(Sender: TObject);
var
   Kombination: MyStringArray;
begin
    Kombination[0] := Label7.Caption;
    Kombination[1] := Label8.Caption;
    Kombination[2] := Label9.Caption;
  if IsFieldEmpty(Label9.Caption) then
  begin
    Label9.Caption := WriteToField(GPlayer);
    if CheckForWin(Kombination) then
    begin
      Label9.Caption := '';
      ShowMessage(IntToStr(GPlayer)+' hat gewonnen!');
      GPlayer := 1;
    end else
    begin
      ChangePlayer;
    end;
  end;
end;
:?: sorry, der Server stürzt die ganze Zeit ab.... -.-

DeddyH 23. Aug 2011 15:28

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
Du schreibst ja auch den alten Wert ins Array und änderst dann erst.

biby90 23. Aug 2011 15:36

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
klappt auch nicht so richtig.... er zeigt mir nicht wer gewonnen hat und stoppt das spiel auch nicht....

DeddyH 23. Aug 2011 15:38

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
Dann machst Du wohl was falsch.

biby90 23. Aug 2011 15:39

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
ich probiers noch mal aus.... hab ja gleich feierabend.... ich schau mal was da los ist

mleyen 23. Aug 2011 15:50

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
Was funktioniert denn jetzt genau nicht?

Und worauf man hinweisen wollte war, dass man
Zitat:

Zitat von biby90 (Beitrag 1119024)
(IsFieldEmpty(AIndex[1]) = false)

besser so schreibt:
Delphi-Quellcode:
(not IsFieldEmpty(AIndex[1]))

biby90 24. Aug 2011 12:45

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
Mein Ausbilder hat mir jetzt eine Nachricht geschickt nachdem er gestern kurzen BLick auf mein Programm geworfen hat....
ich soll jetzt ein 2 dimensionales Array machen. Ist ja alles wunderbest.
jetzt soll ich aller´dings auch eine Procedure machen, das Daten aus dem Array in die GUI schreibt.
Über einen kleinen Tipp wäre ich dankbar.

ensaron 24. Aug 2011 13:08

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
In den Beiträgen #4 und #5 gibts nen Vorschlag mit nem 2D-Array.

Zum Schreiben in die GUI:
Wenn ich es richtig mitbekommen hatte, benutzt du für die Anzeige ja 9 Labels, die mit Label1 bis Label9 durchnummeriert sind.
Die Ausgabe würde ich dann wie folgt probieren (sicher nicht die schönste Variante, vielleicht hat ja noch jemand nen besseren Vorschlag):

Delphi-Quellcode:
procedure TForm1.Ausgabe;
var
  lLabel: TLabel;
  i,j: Integer;
  lNummer: Integer;
begin
  for i := 0 to 2 do
  begin
    for j := 0 to 2 to
    begin
      lNummer := (i + 1) + (j * (j + 1));
      lLabel := TLabel(FindComponent('Label'+IntToStr(lNummer)));
      lLabel.Caption := 'IntToStr(lNummer)'; //*
    end;
  end;
end;
*: In diese Zeile kommt dann hin, was immer du den einzelnen Labels zuweisen möchtest. In meinem Beispiel würden die Labels jetzt die Beschriftung 1 bis 9 zugewiesen bekommen.


EDIT: Das hier: "IntToStr((i+1)*(j+1))" haut noch nicht hin, da ja z.B. bei (i = 1 , j = 0) und (i = 0 , j = 1) das selbe Label gefunden wird.
EDIT #2: lNummer hinzugefügt und die Berechnung korrigiert ^^

DeddyH 24. Aug 2011 13:21

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
Wie wäre es denn mit dem irgendwann meinerseits angesprochenen Record?

biby90 24. Aug 2011 13:23

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
davon habe ich ja noch nie was gehört.... also gelesen schon aber ich weiß nicht wozu es da ist?!

Sandy123 24. Aug 2011 13:27

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
hallo,
sry weiß nicht wie ich einen thread erstelle..blick grad nicht nur :S
ehh kann mir mal jmd zu den grenzen der informatik aufklären? welche grenzen gibt es? und dazu ein paar beispiele? :)
danke

DeddyH 24. Aug 2011 13:29

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
Du kannst damit vereinfacht gesagt Daten in einer Struktur zusammenhalten.
Delphi-Quellcode:
type
  TTestRec = record
    IntVal: integer;
    StringVal: string;
  end;

var
  Rec: TTestRec;
begin
  Rec.IntVal := 42;
  Rec.StringVal := 'Männer und Frauen passen einfach nicht zusammen.';
end;
Somit hast Du in diesem Beispiel eine Integer und einen String in einer Struktur (einem Record) vom Typ TTestRec zusammengefasst. Auf die enthaltenen Felder kannst Du wie bei Klassen mit der Punkt-Notation zugreifen.

biby90 24. Aug 2011 13:29

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
Passt hier ja nicht so wirklich rein:)
@Deddyh ich werds mal ausprobieren

biby90 24. Aug 2011 13:36

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
noch mal eben was kleines zum Verständnis...
das mehrdimensionale Array wird einmal von oben nach unten und von links nach recht gelesen oder? muss ihm ja sagen bei welchen Kombis er ein Gewinn haben soll^^

DeddyH 24. Aug 2011 13:38

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
Eine Schleife über die 1. Dimension, eine weitere über die 2. und zusätzlich noch die beiden Diagonalen (hier ist dann keine Schleife nötig).

biby90 24. Aug 2011 13:39

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
ja ich mein ja nur das jetzt... das Array würde so gelesen werden


0
1
2
# 0 1 2

oder nicht?

mleyen 24. Aug 2011 13:40

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
Das kannst du machen wie du lustig bist, denn egal wie man das Spielfeld dreht, es sind immer die gleichen Gewinnmöglichkeiten.
Aber "von oben[0] nach unten[2] und von links[0] nach rechts[2]" wäre wohl das passendste.

DeddyH 24. Aug 2011 13:41

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
Du musst mindestens die aktuelle Zeile und Spalte auswerten.

biby90 24. Aug 2011 13:46

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

"von oben[0] nach unten[2] und von links[0] nach rechts[2]" wäre wohl das passendste.
so meinte ich es ja auch:)

biby90 25. Aug 2011 09:14

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
Hi Leute,
ich habe gestern eines der Labels neu machen müssen, da ich irgendetwas eingestellt hatte und es nicht wieder weg ging.... das Label funktionert jetzt aber nicht wie vorher. Die CheckForWin funktion hat inzwischen(oder tut es immer noch) die Felder von oben nach unten verglichen... jetzt aber nicht mehr das ausgetauschte Label!
woran kann das liegen?
Weiß gerade echt nicht weiter....
und wenn ich schon dabei bin... kann mir jemand sagen, wieso meine Funktion nur die Zeilen von oben nach unten vergleicht?

DeddyH 25. Aug 2011 09:18

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
:glaskugel: Welche Funktion, welches Label, wie heißt das neue....? Gedanken lesen können wir noch nicht.

biby90 25. Aug 2011 09:23

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
das neue Label heißt jetzt genauso wie das alte.... Habe die Prozedur von dem alten auch schon komplett gelöscht und neu geschrieben aber er will einfach die CheckForWin Funkion nicht ausführen....

Und ich meinte eben auch die CheckForWin Funktion...

@ Deddyh
Mein Ausbilder sagte ich soll die Alte davon nehmen weil der Vorschlag von dir zu Kompliziert für mich ist meinte er.

DeddyH 25. Aug 2011 09:25

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
Du meinst jetzt beim Klick auf das Label, oder? Hast Du die alte Methode denn auch dem neuen Label im Objektinspektor zugewiesen?

biby90 25. Aug 2011 09:28

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
jop hab ich ja alles gemacht.... ich geb dir mal den quelltext.... also den kopletten^^ vielleicht findest du ja auch den Fehler weshalb die funktion nur die Zeilen von oben nach unten vergleicht^^
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    CloseButton: TButton;
    NewGameButton: TButton;
    Label10: TLabel;
    Label7: TLabel;
    procedure MakeArray;
    procedure ChangePlayer;
    function IsFieldEmpty(AIndex:string): Boolean;
    function CheckForWin(AIndex:array of string): Boolean;
    function WriteToField(GPlayer:Integer):String;
    procedure Label1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Label2Click(Sender: TObject);
    procedure Label9Click(Sender: TObject);
    procedure Label8Click(Sender: TObject);
    procedure Label3Click(Sender: TObject);
    procedure Label4Click(Sender: TObject);
    procedure Label5Click(Sender: TObject);
    procedure Label6Click(Sender: TObject);
    procedure NewGameButtonClick(Sender: TObject);
    procedure CloseButtonClick(Sender: TObject);
    procedure Label7Click(Sender: TObject);

  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;


var
  Form1: TForm1;
  GPlayer: Integer;
  GBuffer: array[1..9] of string;

implementation

{$R *.dfm}

procedure TForm1.ChangePlayer;
begin
  if GPlayer = 1 then
  begin
    GPlayer := 2;
  end else
    GPlayer := 1;
end;

function TForm1.CheckForWin(AIndex: array of string): Boolean;
begin
  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;

procedure TForm1.CloseButtonClick(Sender: TObject);
begin
  Application.Terminate;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  GPlayer:=1;
end;

function TForm1.IsFieldEmpty(AIndex:string): Boolean;
begin
  result := false;

  if AIndex = '' then
  begin
    result := true;
  end;
end;


procedure TForm1.Label1Click(Sender: TObject);
begin
 if IsFieldEmpty(Label1.Caption) then
  begin
    Label1.Caption := WriteToField(GPlayer);
    MakeArray;
    if CheckForWin(GBuffer) then
    begin
      Label1.Caption := '';
      ShowMessage('Spieler ' + IntToStr(GPlayer)+' hat gewonnen!');
      GPlayer := 1;
    end else
    begin
      ChangePlayer;
    end;
  end;
end;

procedure TForm1.Label2Click(Sender: TObject);
begin
 if IsFieldEmpty(Label2.Caption) then
  begin
    Label2.Caption := WriteToField(GPlayer);
    MakeArray;
    if CheckForWin(GBuffer) then
    begin
      Label2.Caption := '';
      ShowMessage('Spieler ' + IntToStr(GPlayer)+' hat gewonnen!');
      GPlayer := 1;
    end else
    begin
      ChangePlayer;
    end;
  end;
end;

procedure TForm1.Label3Click(Sender: TObject);
begin
  if IsFieldEmpty(Label3.Caption) then
  begin
    Label3.Caption := WriteToField(GPlayer);
    MakeArray;
    if CheckForWin(GBuffer) then
    begin
      Label3.Caption := '';
      ShowMessage('Spieler ' + IntToStr(GPlayer)+' hat gewonnen!');
      GPlayer := 1;
    end else
    begin
      ChangePlayer;
    end;
  end;
end;

procedure TForm1.Label4Click(Sender: TObject);
begin
 if IsFieldEmpty(Label4.Caption) then
  begin
    Label4.Caption := WriteToField(GPlayer);
    MakeArray;
    if CheckForWin(GBuffer) then
    begin
      Label4.Caption := '';
      ShowMessage('Spieler ' + IntToStr(GPlayer)+' hat gewonnen!');
      GPlayer := 1;
    end else
    begin
      ChangePlayer;
    end;
  end;
end;

procedure TForm1.Label5Click(Sender: TObject);
begin
  if IsFieldEmpty(Label5.Caption) then
  begin
    Label5.Caption := WriteToField(GPlayer);
    MakeArray;
    if CheckForWin(GBuffer) then
    begin
      Label5.Caption := '';
      ShowMessage('Spieler ' + IntToStr(GPlayer)+' hat gewonnen!');
      GPlayer := 1;
    end else
    begin
      ChangePlayer;
    end;
  end;
end;

procedure TForm1.Label6Click(Sender: TObject);
begin
  if IsFieldEmpty(Label6.Caption) then
  begin
    Label6.Caption := WriteToField(GPlayer);
    MakeArray;
    if CheckForWin(GBuffer) then
    begin
      Label6.Caption := '';
      ShowMessage('Spieler ' + IntToStr(GPlayer)+' hat gewonnen!');
      GPlayer := 1;
    end else
    begin
      ChangePlayer;
    end;
  end;
end;

procedure TForm1.Label7Click(Sender: TObject);
begin
  if IsFieldEmpty(Label7.Caption) then
  begin
    Label7.Caption := WriteToField(GPlayer);
    MakeArray;
    if CheckForWin(GBuffer) then
    begin
      Label7.Caption := '';
      ShowMessage('Spieler ' + IntToStr(GPlayer)+' hat gewonnen!');
      GPlayer := 1;
    end else
    begin
      ChangePlayer;
    end;
  end;
end;

procedure TForm1.Label8Click(Sender: TObject);
begin
  if IsFieldEmpty(Label8.Caption) then
  begin
    Label8.Caption := WriteToField(GPlayer);
    MakeArray;
    if CheckForWin(GBuffer) then
    begin
      Label8.Caption := '';
      ShowMessage('Spieler ' + IntToStr(GPlayer)+' hat gewonnen!');
      GPlayer := 1;
    end else
    begin
      ChangePlayer;
    end;
  end;
end;

procedure TForm1.Label9Click(Sender: TObject);
begin
  if IsFieldEmpty(Label9.Caption) then
  begin
    Label9.Caption := WriteToField(GPlayer);
    MakeArray;
    if CheckForWin(GBuffer) then
    begin
      Label9.Caption := '';
      ShowMessage('Spieler ' + IntToStr(GPlayer)+' hat gewonnen!');
      GPlayer := 1;
    end else
    begin
      ChangePlayer;
    end;
  end;
end;

procedure TForm1.MakeArray;
begin
 GBuffer[1] := Label1.Caption;
 GBuffer[2] := Label2.Caption;
 GBuffer[3] := Label3.Caption;
 GBuffer[4] := Label4.Caption;
 GBuffer[5] := Label5.Caption;
 GBuffer[6] := Label6.Caption;
 GBuffer[7] := Label7.Caption;
 GBuffer[8] := Label8.Caption;
 GBuffer[9] := Label9.Caption;
end;

procedure TForm1.NewGameButtonClick(Sender: TObject);
begin
  Label1.Caption := '';
  Label2.Caption := '';
  Label3.Caption := '';
  Label3.Caption := '';
  Label4.Caption := '';
  Label5.Caption := '';
  Label6.Caption := '';
  Label7.Caption := '';
  Label8.Caption := '';
  Label9.Caption := '';
  GPlayer := 1;
end;

function TForm1.WriteToField(GPlayer: Integer): String;
begin
  if GPlayer = 1 then
  begin
    result := 'X';
  end else
  begin
    result := 'O';
  end;
end;

end.
Ich hoffe dass Du da dzrchsteigst^^

DeddyH 25. Aug 2011 09:37

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
Nö, das sehe ich leider auf Anhieb nicht. Setz doch mal einen Haltepunkt und geh schrittweise durch, ob wirklich alle Möglichkeiten durchlaufen werden (ich wüsste aber nicht, wieso nicht).

Neutral General 25. Aug 2011 09:38

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
Ich denke bzgl. der Events wäre auch die DFM mal ganz nützlich um zu sehen, ob allen Labels tatsächlich das richtige Event zugeordnet wurde.

biby90 25. Aug 2011 09:43

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
wie kann ich euch das denn zeigen? es sind ja alle genau da wo sie sein sollen den fehler hab ich gestern auch schon entdeckt...
aber wieso das "neue" Label nicht fuktioniert weiß ich auch immer noch nicht -.-

Neutral General 25. Aug 2011 09:44

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
Wenn du im Formular-Editor bist drück mal Alt+F12, den Code brauchen wir/ich.
(Mit Alt+F12 kommst du wieder zurück in die normale Ansicht)

DeddyH 25. Aug 2011 09:47

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
Oder rechte Maustaste aufs Fomular -> Ansicht als Text/Ansicht als Formular ;)

mleyen 25. Aug 2011 09:50

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

Zitat von biby90 (Beitrag 1119493)
Delphi-Quellcode:
function TForm1.CheckForWin(AIndex: array of string): Boolean;

Hier liegt das Problem. Bei normalen Arrays fängt der Index bei 0 an.
Mach das so:
Delphi-Quellcode:
//...
  TMyArr = array[1..9] of string;
  TForm1 = class(TForm)
//...
     function CheckForWin(AIndex:TMyArr): Boolean;
//...
   GBuffer: TMyArr;
//...
function TForm1.CheckForWin(AIndex: TMyArr): Boolean;

biby90 25. Aug 2011 09:58

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
Delphi-Quellcode:
object Form1: TForm1
  Left = 0
  Top = 0
  Caption = 'TicTacToe'
  ClientHeight = 455
  ClientWidth = 582
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  OnCreate = FormCreate
  PixelsPerInch = 96
  TextHeight = 13
  object Label1: TLabel
    Left = 8
    Top = 8
    Width = 137
    Height = 129
    Alignment = taCenter
    AutoSize = False
    Color = clWhite
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clWindowText
    Font.Height = -107
    Font.Name = 'Tahoma'
    Font.Style = []
    ParentColor = False
    ParentFont = False
    OnClick = Label1Click
  end
  object Label2: TLabel
    Left = 151
    Top = 8
    Width = 137
    Height = 129
    Alignment = taCenter
    AutoSize = False
    Color = clWhite
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clWindowText
    Font.Height = -107
    Font.Name = 'Tahoma'
    Font.Style = []
    ParentColor = False
    ParentFont = False
    OnClick = Label2Click
  end
  object Label3: TLabel
    Left = 294
    Top = 8
    Width = 137
    Height = 129
    Alignment = taCenter
    AutoSize = False
    Color = clWhite
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clWindowText
    Font.Height = -107
    Font.Name = 'Tahoma'
    Font.Style = []
    ParentColor = False
    ParentFont = False
    OnClick = Label3Click
  end
  object Label4: TLabel
    Left = 8
    Top = 143
    Width = 137
    Height = 129
    Alignment = taCenter
    AutoSize = False
    Color = clWhite
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clWindowText
    Font.Height = -107
    Font.Name = 'Tahoma'
    Font.Style = []
    ParentColor = False
    ParentFont = False
    OnClick = Label4Click
  end
  object Label5: TLabel
    Left = 151
    Top = 143
    Width = 137
    Height = 129
    Alignment = taCenter
    AutoSize = False
    Color = clWhite
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clWindowText
    Font.Height = -107
    Font.Name = 'Tahoma'
    Font.Style = []
    ParentColor = False
    ParentFont = False
    OnClick = Label5Click
  end
  object Label6: TLabel
    Left = 294
    Top = 143
    Width = 137
    Height = 129
    Alignment = taCenter
    AutoSize = False
    Color = clWhite
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clWindowText
    Font.Height = -107
    Font.Name = 'Tahoma'
    Font.Style = []
    ParentColor = False
    ParentFont = False
    OnClick = Label6Click
  end
  object Label8: TLabel
    Left = 151
    Top = 278
    Width = 137
    Height = 129
    Alignment = taCenter
    AutoSize = False
    Color = clWhite
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clWindowText
    Font.Height = -107
    Font.Name = 'Tahoma'
    Font.Style = []
    ParentColor = False
    ParentFont = False
    OnClick = Label8Click
  end
  object Label9: TLabel
    Left = 294
    Top = 278
    Width = 137
    Height = 129
    Alignment = taCenter
    AutoSize = False
    Color = clWhite
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clWindowText
    Font.Height = -107
    Font.Name = 'Tahoma'
    Font.Style = []
    ParentColor = False
    ParentFont = False
    OnClick = Label9Click
  end
  object Label10: TLabel
    Left = 437
    Top = 8
    Width = 221
    Height = 33
    AutoSize = False
  end
  object Label7: TLabel
    Left = 8
    Top = 278
    Width = 137
    Height = 129
    Alignment = taCenter
    AutoSize = False
    Color = clBtnHighlight
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clWindowText
    Font.Height = -107
    Font.Name = 'Tahoma'
    Font.Style = []
    ParentColor = False
    ParentFont = False
    OnClick = Label7Click
  end
  object CloseButton: TButton
    Left = 437
    Top = 342
    Width = 137
    Height = 65
    Caption = 'Schlie'#223'en'
    TabOrder = 0
    OnClick = CloseButtonClick
  end
  object NewGameButton: TButton
    Left = 437
    Top = 271
    Width = 137
    Height = 65
    Caption = 'Neues Spiel'
    TabOrder = 1
    OnClick = NewGameButtonClick
  end
end

ach du liebe Zeit... was ist denn das?!:shock:

Neutral General 25. Aug 2011 10:00

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

Das ist der Code der hinter deinem Formular steckt :mrgreen:
Aber scheinbar liegts daran nicht. Du solltest den Hinweis von mleyen besser weiterverfolgen.

DeddyH 25. Aug 2011 10:04

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
Tja, wenn man typisiert, kann einem so etwas nicht so schnell passieren.
Delphi-Quellcode:
type
  TBuffer = array[1..9] of string;

var
  GBuffer: TBuffer;

function CheckForWin(Buffer: TBuffer): Boolean;
[edit]:oops: Das hatte mleyen ja bereits geschrieben [/edit]

biby90 25. Aug 2011 10:04

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

Das ist der Code der hinter deinem Formular steckt
joa, hab ich mir gedacht.... wusste garnicht, dass es das gibt

biby90 25. Aug 2011 10:08

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
Delphi-Quellcode:
procedure TForm1.MakeArray;
begin
 GBuffer[1] := Label1.Caption;
 GBuffer[2] := Label2.Caption;
 GBuffer[3] := Label3.Caption;
 GBuffer[4] := Label4.Caption;
 GBuffer[5] := Label5.Caption;
 GBuffer[6] := Label6.Caption;
 GBuffer[7] := Label7.Caption;
 GBuffer[8] := Label8.Caption;
 GBuffer[9] := Label9.Caption;
end;
Das kann so bleiben, ja?
Ich starte mal...

biby90 25. Aug 2011 10:10

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
:dancer2:
Es Fukntioniert!!!!!!!
Jetzt noch mal was ganz kleines dass seit ihr mich los^^

wenn ich das dritte Feld Klicke um zu gewinnen, dann sagt er schon gewonnen obwohl da noch kein x oder O drin steht...!?

Neutral General 25. Aug 2011 10:12

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

Dann schreib mal in den OnClicks:

Delphi-Quellcode:
 if IsFieldEmpty(Label2.Caption) then
 begin
    Label2.Caption := WriteToField(GPlayer);
    Label2.Repaint; // oder: Application.ProcessMessages
    MakeArray;
    // Weiterer Code

biby90 25. Aug 2011 10:13

AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
 
Wofür steht das Repaint?


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:57 Uhr.
Seite 3 von 5     123 45      

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