Abalone umsetzung mittels Boreland C++ Builder 5.0

stas1987b

Newbie
Registriert
März 2008
Beiträge
2
Hallo erstmal.

Wie in dem Titel schon beschrieben versuche ich Abalone in Boreland umzusätzen.

Und zwar in einer Grafischen oberfläche (ich kenne mich nahezu gar nicht mit dem Grafischen Programmieren mittels Boreland aus).
Und zwar wollte ich selbsterstellte Bilder mittels der Image Funktion von boreland einbinden. Nungut das funktionierte auch tatsächlich gut.
Doch als ich diese z.b durch ein Anderes Bild ersetzen wollte war mir nicht wirklich klar wie ich das in Boreland umsetzen sollte.

Den diese sind dann int Tobject datentypen deklariert. So wollte ich jetzt diese beiden Bilder aus testzwecken tauschen pasierte rein gar nichts. Oder wenn ich diese dann mit dem *vornerangeschrieben hatte fehlte ihm etwas. Ich hoffe das ganze wird ein Wenig einsichtiger wenn man sich die Notizen ansieht. Und evtl versteht ihr dann worauf ich hinaus will. Die Boreland hilfe gab nicht alt soviel her.
Ich würde mich freuen wenn mir jemand mit dem Problem helfen könnte.
Ich werde Screenshots posten um das ganze noch einwenig einsichtiger zu machen.

bild1:
http://img126.imageshack.us/img126/6640/bild1wa1.jpg

bild2:
http://img179.imageshack.us/img179/9172/bild2mk6.jpg
zu bild 2: Ich verstehe hieran nur nicht Warum
TImage *Image1;
TImage *Image2;
dieses TImage das *Image1 zu einer eigenständigen Klasse macht versteh ich da was falsch den eig sind es doch nur die Adressen die dort
abgespeichert werden oder nicht?

Weil in meinem alten C-Compiler war es durchaus möglich diese Images in Variablen zu packen und beliebig rumzuschieben.
versuche ich es in Boreland kommt die Fehlermeldung das er den Datentyp TImage nicht in einen anderen Datentyp wie int converten kann.
Was natürlich klar ist nur genau da liegt mein problem.

Ich habe hier meine Notizen angehangen.
Code:
        j k l m n u
      I  O O O O O p
     H  O O O O O O q
    G  · · O O O · · r
   F  · · · · · · · · s
  E  · · · · · · · · · t
   D  · · · · · · · · 9
    C  · · X X X · · 8
     B  X X X X X X 7
      A  X X X X X 6
        v 1 2 3 4 5


 

j k l m n u - - - - -
I O O O O O p - - - - 					- == Wird nie erreicht
H O O O O O O q - - -					. == Lehre Felder
G · · O O O · · r - -					o == Spieler eins
F · · · · · · · · s -					x == spieler zwei
E · · · · · · · · · t					zahlen/Buchstaben == Ausfelder wo spieler punkte kriegen
D · · · · · · · · 9 -
C · · X X X · · 8 - -
B X X X X X X 7 - - -
A X X X X X 6 - - - -
v 1 2 3 4 5 - - - - -



Feld Array = 11x11
int Feld[11+2][11+2];


.1  .2  .3  .4  .5  .6 /7 /8 /9 /10 /11
.12 13 14 15 16 17 .18 /19 /20 /21 /22
.23 24 25 26 27 28 29 .30 /31 /32 /33				Alle unbenutzen felder = // 7, 8, 9, 10, 11, 19
.34 35 36 37 38 39 40 41 .42 /43 /44							    20, 21, 22, 31, 32, 33
.45 46 47 48 49 50 51 52 53 .54 /55							    43, 44, 55, 77, 87, 88
.56 57 58 59 60 61 62 63 64 65 .66							    97, 98, 99, 107, 108
.67 68 69 70 71 72 73 74 75 .76 /77							    109, 110, 117, 118, 119
.78 79 80 81 82 83 84 85 .86 /87 /88							    120, 121
.89 90 91 92 93 94 95 .96 /97 /98 /99
.100 101 102 103 104 105 .106 /107 /108 /109 / 110
.111 .112 .113 .114 .115 .116 /117 /118 /119 /120 /121		Alle Ausfelder = .  1, 2, 3, 4, 5, 6, 12, 18, 23, 30
										    34, 42, 45, 54, 56, 66, 67, 76
										    78, 86, 89, 96, 100, 106, 111,
										    112, 113, 114, 115, 116

								Alle Spielfelder = 13, 14, 15, 16, 17, 24, 25, 26,
   										   27, 28, 29, 35, 36, 37, 38, 39,
										   40, 41, 46, 47, 48, 49, 50, 51,
										   52, 53, 57, 58, 59, 60, 61, 62,
										   63, 64, 65, 68, 69, 70, 72, 73,
										   74, 75, 79, 80, 81, 82, 83, 84,
										   85, 90, 91, 92, 93, 94, 95, 101,
										   102, 103, 104, 105

zug rechtsoben = +10;
zug rechts     = +11;
zug rechtsunten= +12;
zug einsnrunter= +1;
zug einshoch   = -1,
zug linksoben  = -12;
zug links      = -11;
zug linksunten = -10;//daraus ergibt sich das ich passende spielfeld zahlen nehme. Also lösche ich alle 
unbenutzen Felder
Heraus. Und ortne die Felder Diagonal.


.1 .12 .23 .34 .45 .56 /67 /78 /89 /100 /111
.2  13  24  35  46  57 .68 /79 /90 /101 /112
.3  14  25  36  47  58  69 .80 /91 /102	/113			
.4  15  26  37  48  59  70  81 .92 /103	/114						    
.5  16  27  38  49  60  71  82  93 .104 /115							   
.6  17  28  39  50  61  72  83  94  105 .116							    
.7  18  29  40  51  62  73  84  95 .106 /117							    
.8  19  30  41  52  63  74  85 .96 /107	/118						    
.9  20  31  42  53  64  75 .86 /97 /108 /119
.10 21  32  43  54  65 .76 /87 /98 /109 /120
.11.22 .33 .44 .55 .66 /77 /88 /99 /110	/121

Einige nichtgenutze Felder / müsten meiner meinung nach als ausfelder deklariert werden für (rechtsoben, 
rechtsunten)
da z.b die 105 von der linken seite aus immer attackiert werden kann und dann in nicht genutze felder geht.

.1 .12 .23 .34 .45 .56 .67 /78 /89 /100 /111
.2  13  24  35  46  57 .68 .79 /90 /101 /112
.3  14  25  36  47  58  69 .80 .91 /102	/113			
.4  15  26  37  48  59  70  81 .92 .103	/114						    
.5  16  27  38  49  60  71  82  93 .104 .115							   
.6  17  28  39  50  61  72  83  94  105 .116							    
.7  18  29  40  51  62  73  84  95 .106 .117							    
.8  19  30  41  52  63  74  85 .96 .107	/118						    
.9  20  31  42  53  64  75 .86 .97 /108 /119
.10 21  32  43  54  65 .76 .87 /98 /109 /120
.11.22 .33 .44 .55 .66 .77 /88 /99 /110	/121

Bewegungstabelle
---------------------
zug rechtsoben = +10;|
zug rechts     = +11;|
zug rechtsunten= +12;|
zug einsnrunter= +1; | das prinzip hat sich bestätigt wenn man sich das ganze in einer Tabelle anschaut.
zug einshoch   = -1, |
zug linksoben  = -12;|
zug links      = -11;|
zug linksunten = -10;|
---------------------
Algorythmus Zug :
Schleife
Bedingung: Bis der Zug abgeschlossen ist.
1.Abfrage der Kugel die gewählt werden soll.

2.Test ob Kugel auf dem Feld vorhanden ist.
Wenn ja:

3.Abfrage der Richtung in welche die Kugel bewegt werden soll.

4.Test ob eine Andere Kugel (egal von welchen spieler) auf dem Feld liegt.
	Wenn ja:
	5.Die Auf dem Feld liegende Kugel in die Selbe Richtung schieben wie die ausgewählte Kugel.
	wenn nein:
	6.Ausgewählte Kugel auf dem Feld Plazieren.

wenn nein:
7.erneute abfrage.

9.Sollte eine Kugel die Grenze des Spielfeldes Pasieren bekommt der Spieler der die Kugel verliert ein Punkt abzug.
Ende der Schleife.


Algorythmus Spieldauer:
Schleife
Bedingung: Solange Spieler eins || Spieler zwei keine 6 Kugeln Verliert.
1.Spiel vortführen.
Ende der Schleife.
 
Zuletzt bearbeitet:
Ich habs jetzt rausgefunden im meinem Falle:

void __fastcall TForm1::Image1Click(TObject *Sender)
{
Image1->Picture->LoadFromFile("c:\\Kugelweiß.jpg");
}
 
Zurück
Oben