Feld auf Gegner überprüfen
Übersicht

![]() |
maboxBetreff: Feld auf Gegner überprüfen |
![]() Antworten mit Zitat ![]() |
---|---|---|
hallo, ich mach grad nen kleines Spiel in welchem es beliebig viele Spieler geben soll. Jeder Speler hat eine bestimmte Anzahl von Einheiten, die er auf Felder setzen kann.
Mein Problem ist jetzt, dass ich nicht weis wie ich überprüfen soll ob schon eine gegnerische Einheit auf dem Feld ist wo man jetzt seine eigene plazieren will. (Auf ein Feld dürfen mehrere Einheiten eines Spielers. Aber keine Einheiten von verschiedenen Spielern.) Ich habe die Position einer Einheit in Arrays gespeichert:Code: [AUSKLAPPEN] feld(x20,y10,spieler) x20 gibt die x-koordinate des Feldes an, y10 gibt die y-Koordinate des Feldes und spieler gibt an wer an der Reihe ist (Spieler 1,2,3....)
Der Wert des gesamten (also: feld(x20,y10,spieler) gibt die Anzahl der Einheiten auf diesem Feld an. Wie kann ich jetzt überprüfen ob schon ein anderer Spieler auf dem Feld ist? |
||
Fujitsu-Siemens Laptop, 2Ghz Intel Core2Duo Prozessor, 2GB Ram, 120GB Festplatte, ATI Mobility Radeon X1400, Windows Vista Ultimate
www.mausoft.de.tl Dönerfresser Homepage |
![]() |
Jo0oker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich weiß nicht ob ich dich richtig verstanden habe, aber warum vergleichst du nicht alle mit einer foreach schleife?
lg Jo0oker |
||
MadMental |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi,
Ich würde dein Problem mit einem 2 Dimensionalen Dim-Feld lösen. Wenn Dieses Feld nun dir gehört, also nur deine Einheiten können das Feld betreten, dann hat feld(x,y) = 1 oder so. Wenn jetzt nur der Gegner dieses Feld betreten darf, hat das Feld den Wert 2.. usw. Wenn du mehrere Spieler hast, würde ich jedem eine Nummer zuweisen und dann immer die Nummer des jeweiligen Spielers abfragen MM |
||
![]() |
mabox |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Jo0oker, weil Ich keine Types benutze
@MadMental, dann fehlt mit die Anzahl der Einheiten auf einem Feld. Die war ja vorher darin gespeichert. |
||
Fujitsu-Siemens Laptop, 2Ghz Intel Core2Duo Prozessor, 2GB Ram, 120GB Festplatte, ATI Mobility Radeon X1400, Windows Vista Ultimate
www.mausoft.de.tl Dönerfresser Homepage |
MadMental |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hast du nur eine Einheit? o_O ^^
Dann füge dem Dim-Feld einfach eine weitere Dimension hinzu: Dim Feld(x,y,Einheiten_Anzahl), oder? MM |
||
![]() |
The Shark |
![]() Antworten mit Zitat ![]() |
---|---|---|
Geh die letzte dimension, also spieler durch und schau, ob bei einem anderem spieler, der nciht am zug ist der wert über 0 ist.
Code: [AUSKLAPPEN] for spielernr=0 to maxspieler-1 if feld(x20,y10,spielernr)>0 and spielernr<>aktueller_spieler besetzt=1 exit endif next if besetzt=0 then Print "Feld frei von gegnerischen einheiten" bzw als function: Code: [AUSKLAPPEN] if feldfrei(x,y,spieler) then feld(x,y,spieler)=feld(x,y,spieler)+1 function feldfrei(x,y,spieler) for spielernr=0 to maxspieler-1 if feld(x20,y10,spielernr)>0 and spielernr<>spieler return 0 endif next return 1 end function |
||
![]() |
mabox |
![]() Antworten mit Zitat ![]() |
---|---|---|
Vielen Dank! es geht. | ||
Fujitsu-Siemens Laptop, 2Ghz Intel Core2Duo Prozessor, 2GB Ram, 120GB Festplatte, ATI Mobility Radeon X1400, Windows Vista Ultimate
www.mausoft.de.tl Dönerfresser Homepage |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group