Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi BigProblem bei XXO(TicTACToe)Zufallssetzung *Bitte helfen* (https://www.delphipraxis.net/23240-bigproblem-bei-xxo-tictactoe-zufallssetzung-%2Abitte-helfen%2A.html)

M4ST3R86 31. Mai 2004 13:14


BigProblem bei XXO(TicTACToe)Zufallssetzung *Bitte helfen*
 
Das soll eine zufallsetzung der PCS werden, Das heißt ich setze das O und der PC danach zufällig irgentwohin ein X, nur ich habe dauert abstürze es geht einfach nicht, dabei müsste es laufen. Bitte helft mir ich bin echt am ende.



Habe das noch unter private
Code:
MovePlayerX : boolean;
    bMovePlayerX : boolean;
    GameBoard : array[ 0..2,0..2 ] of TFieldType;
Und im TFieldType steht folgendes

Code:
 TFieldType = ( ftNone, ftX, ftO,ftH );



Code:
 

procedure TForm1.Stufe11Click (Sender: TObject);
var
  i : integer;
  senderImage : TImage;
  PX : Integer;
  PY : Integer;
  TMP : string;
begin
  for i := 0 to 8 do begin
  TImage (FindComponent ('ImageK' + IntToStr (i))).Visible := True ;
  tmp := IntToStr( senderImage.Tag );
  if ( GameBoard[ pX, pY ] = ftNone ) then
    begin
      if ( bMovePlayerX ) then
      begin
        senderImage.Picture := ImageX.Picture;
        GameBoard[random(2),random(2)]:= ftX ;
      end
      else
      begin
      senderImage.Picture := ImageO.Picture;
      GameBoard[ pX, pY ] := ftO;
      end;
    end;
end;
end;

iaby 31. Mai 2004 13:37

Re: BigProblem bei XXO(TicTACToe)Zufallssetzung *Bitte helfe
 
hmmm, danach hast du eigentlich nicht gefragt, aber mir ist noch was anderes aufgefallen:
du benutzt random(2), was dir entweder eine 0 oder eine 1 zurückliefert. dein array geht aber von 0 bis 2. benutze also random(3)!


gruss,
iaby

Ratte 31. Mai 2004 13:57

Re: BigProblem bei XXO(TicTACToe)Zufallssetzung *Bitte helfe
 
Hi,

ein paar Sachen hab' ich gefunden:

Delphi-Quellcode:
procedure TForm1.Stufe11Click (Sender: TObject);
var
  i : integer;
  senderImage : TImage;
  PX : Integer;
  PY : Integer;
  TMP : string;
begin
  for i := 0 to 8 do begin
  (FindComponent ('ImageK' + IntToStr (i)) as TImage).Visible := True ; //ist so besser
  tmp := IntToStr( senderImage.Tag );//senderimage hat keinen definierten wert, wenn du das Image das meinst, das Sender ist, musst du (Sender as TImage) schreiben; wozu ist tmp?
  if ( GameBoard[ pX, pY ] = ftNone ) then       //px, py haben keinen wert
    begin
      if ( bMovePlayerX ) then
      begin
        senderImage.Picture := ImageX.Picture;        
        GameBoard[random(2),random(2)]:= ftX ;
      end
      else
      begin
      senderImage.Picture := ImageO.Picture;
      GameBoard[ pX, pY ] := ftO;            // wie oben
      end;
    end;
end;
end;
Ratte

M4ST3R86 31. Mai 2004 18:38

Re: BigProblem bei XXO(TicTACToe)Zufallssetzung *Bitte helfe
 
mmh ich habe trotzdem wenn ich es starte und dann es spielen will derbe fehler im Projekt1 kommt er nicht weiter!

Bei aplication run steht nach dem Fehlerfenster wenn ich das programm starten will so nen Pfeil? Wieso?

Code:
program Project1;

uses
  Forms,
  SysUtils,
  Unit1 in 'Unit1.pas' {Form1},
  Unit2 in 'Unit2.pas' {Form2},
  Unit3 in 'Unit3.pas' {Form3};

{$R *.res}

begin
  try
    Application.Initialize;

    Form2 := TForm2.Create( nil );
    Form2.Show;
    Form2.Repaint;

    Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TForm3, Form3);
  Application.Run;
  finally
    if ( Form2 <> nil ) then
      FreeAndNil( Form2 )
  end
end.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:23 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz