Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Tic Tac Toe Brauche ein paar einstiegshifen. (bitte helfen) (https://www.delphipraxis.net/45743-tic-tac-toe-brauche-ein-paar-einstiegshifen-bitte-helfen.html)

TribleXXX 11. Mai 2005 17:48


Tic Tac Toe Brauche ein paar einstiegshifen. (bitte helfen)
 
hallo, ich möchte gerne Tic Tac Toe in Delphi programmieren.

So möchte ich es machen:
- 1 Image wo das Spielfeld drin ist also die 9 Kästchen.
- Mit Ki die Backtracking kann.
- 2d Array

So jetzt habe ich schonmal ein paar Fragen.
- Kann ich in 1 Image 9 verschiedene Kleine Images laden geht das, wenn wie realisier ich das?
- Wie stelle ich das am besten in Delphi mit dem Backtracking an ist das Realisierbar?

ICh möchte das Programm so schreiben und nix mit Delphi x etc machen rein in delphi. Verbesserungsvorschläge nehme ich aber gerne an. :-D

toms 11. Mai 2005 18:00

Re: Tic Tac Toe Brauche ein paar einstiegshifen. (bitte helf
 
Hallo!


Hier findest du Background & Techniques
dazu. (in English)

TribleXXX 11. Mai 2005 18:51

Re: Tic Tac Toe Brauche ein paar einstiegshifen. (bitte helf
 
thx. Ist es denn möglich in 1 Image mehrere kleine Images zu legen?

Nikolas 11. Mai 2005 18:55

Re: Tic Tac Toe Brauche ein paar einstiegshifen. (bitte helf
 
Zitat:

thx. Ist es denn möglich in 1 Image mehrere kleine Images zu legen?
Ja, das ist es.

Du könntest per Delphi-Referenz durchsuchencopyrect ein kleines Bild mehrmals auf das große Image zeichnen.

Khabarakh 11. Mai 2005 19:00

Re: Tic Tac Toe Brauche ein paar einstiegshifen. (bitte helf
 
  • Du erstellst zur Laufzeit zwei Delphi-Referenz durchsuchenTBitmaps, in die du das jeweilige Spieler-Symbol aus einer Datei lädst.
  • Im OnPaint des Images (eine Paintbox wäre besser) kopierst du je nach den Wert im Array eines der Bitmaps mit Delphi-Referenz durchsuchenTImage.Canvas.Draw in das Feld.
  • Wenn das Programm beendet wird, nicht vergessen, die Bitmaps wieder freizugeben :wink: .

Jarmen_Kell 11. Mai 2005 19:04

Re: Tic Tac Toe Brauche ein paar einstiegshifen. (bitte helf
 
Wäre es nicht auch praktisch, das ganze mit einem TDrawGrid zu machen?

Wenn man die Border auf 0 setzt etc siehts doch auch ganz fein aus. Und man hat immer gleich das aktuelle Feld beim MouseDown etc.

TribleXXX 11. Mai 2005 19:08

Re: Tic Tac Toe Brauche ein paar einstiegshifen. (bitte helf
 
ähm mal nen anderes Prob habe gerade in mein Image lauter Rechtecke gezeichnet um es übersichtlich zu machen wie mache ich das jetzt mit der Unterteilung das ich weiß wenn ich oben in ein Kästchen klicke das der da auch das Image hinmachen soll? Kann mir da einer sagen wie ich das mache?

Khabarakh 11. Mai 2005 19:09

Re: Tic Tac Toe Brauche ein paar einstiegshifen. (bitte helf
 
Zitat:

Zitat von Jarmen_Kell
Wäre es nicht auch praktisch, das ganze mit einem TDrawGrid zu machen?

Wenn man die Border auf 0 setzt etc siehts doch auch ganz fein aus. Und man hat immer gleich das aktuelle Feld beim MouseDown etc.

Ich würde sagen, beides kommt auf ziemlich genau das gleiche raus (vielleicht ein paar Codezeilen mehr...).
Mit Offscreenbitmaps hat er allerdings schon eine gute Übung für weitere Grafikprojekte :) .

TribleXXX 22. Mai 2005 14:36

Re: Tic Tac Toe Brauche ein paar einstiegshifen. (bitte helf
 
hi, also habe mir jetzt mal in Delphi das mit den Offscreen-Bitmaps durchgelsen. Aber so richtig ahnung oder verstehen tue ich das nicht.
Hier der Code wie man eins erstellt:

Delphi-Quellcode:
type

 TFancyControl = class(TGraphicControl)
 protected
  procedure Paint; override; { Methode Paint überschreiben }
 end;
procedure TFancyControl.Paint;
var
 Bitmap: TBitmap; { Temporäre Variable für das Offscreen-Bitmap }
begin
 Bitmap := TBitmap.Create; { Bitmap-Objekt erzeugen }
 try
  { in Bitmap zeichnen }
  { Ergebnis in Zeichenfläche des Steuerelements kopieren }
 finally
  Bitmap.Free; { Bitmap-Objekt freigeben }

 end;
end;
Will ein Kreuz zeichnen mit Füllinhalt. Nur irgentwie versteh ich das nicht was der da machen soll.Und muss man dann bei jedem spiel da ein Kreuz zeichnen oder wird das für immer gespeichert? (der Code ist aus der Delphi hilfe)

Möchte in 1 Image 5X und 4 O immer setzen (nur nochmal worum es mir ging)
Bitte helft mir.

Airblader 22. Mai 2005 17:04

Re: Tic Tac Toe Brauche ein paar einstiegshifen. (bitte helf
 
Ein kleiner Tipp:

Beschäftige dich doch erstmal mit grundlegenderen Sachen, da du scheinbar das jetzige noch nicht verstehst.

Trotzdem zur Erklärung:

Das Prinzip der OffScreen-Bitmap ist so:
Man erstellt eine temporäre Bitmap und zeichnet in diese alles, was man will.
Am Schluss wird die OffScreen-Bitmap einfach in das richtige Image kopiert (evtl. an die richtige Position).

air

TribleXXX 22. Mai 2005 20:44

Re: Tic Tac Toe Brauche ein paar einstiegshifen. (bitte helf
 
mhh den rest raff ich es hängt nur an diesem Zeichen kack die KI ist fast fertig

ich bräuchte mal nen Beispielquelltext der Aussagekräftig ist. In der Delphi Hilfe der bringt voll nix.

Also versteh ich das richtig ich kann ne Bitmap erstellen in Paint oder so die kann ich dann immer aufrufen mit der OffScreen-Bitmap? Dann hätte ich falls einer ein paar minuten hat dafür mal nen beispielquelltext. ICh will nicht nen kompletten Code sondern nur nen beispiel wie mans machen kann, muss ja nicht auf das TicTacToe bezogen sein. :wink:

TribleXXX 23. Mai 2005 18:38

Re: Tic Tac Toe Brauche ein paar einstiegshifen. (bitte helf
 
so habe das jetzt endlich mal hinbekommen. Und habe jetzt nur noch ein letztes Problem.

Wie kann ich das Im On Mouse Down ereigenis so machen das das Bild im entsprechenden Feld es Image landet wenn ich drauf klicke. ICh habe da ja nen X und nen Y die die Mouseposition anzeigen als feste Vaiable.

Wie sage ich dem Offscreenbitmap die genauen Position? mache ich das mit dem Array? [0..2,0..2] ?


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:54 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