benötigt :
- die zurückgelegte Anzahl der Felder bei der Bewegung.
Hier hast du wiederum Recht, dass kann noch etwas tricky werden.
Das Problem wird aber aber später verschoben, da ich mich um den
Inhalt der Felder, Eigenschaften und auch ob besetzt später
noch kümmern werde
Auch mir ist beim Programmieren aufgefallen, dass dies vorerst
sogar überflüssig ist, da ich die Anzahl der zurückglegten Felder
auch bei der Bewegung des Panzers z#hlen kann.
Dies wird dann auch so bei der Programmierung der Klasse Panzer
noch integrriert werden.
Zwei Gründe sprechen aber dafür :
- später muss ja auch noch die Entfernung zum Ziel ermitelt werden.
Bei der Schussphase
- ich hatte das begonnen und bin auf haufenweise Probleme
gestossen. Und somit war es einfach eine gut Übung.
Anbei aber schon einmal meine Klasse Panzer.
Hier habe ich wieder ein Problem.
Es soll nach Beendigung der Bewegung gefragt werden, ob
der spieler den Zug auch durchführen möchte.
Für den JA Fall ist auch alles OK.
Bein nein, sollen die Attribute Position und Ausrichtung wieder
auf den Zustand vor Beginn der Bewegung gesetzt werden und
wieder von vorne die Bewegungphase begonnen werden.
Aber egal wie ich es anstelle. Er fängt nicht von vorne an.
Code: Alles auswählen
from funktionen import nachbardic
class Panzer (object) :
def __init__ (self,name, gehen, laufen, position, ausrichtung) :
self.name = name
self.gehen = gehen
self.laufen = laufen
self.position = position
self.ausrichtung = ausrichtung
position = (1,1)
ausrichtung = 1
print name, gehen, laufen
def eigene_bewegung (self) :
""" Aktion 1 = Drehung nach links
Aktion 2 = Drehung nach rechts
Aktion 3 = Feld vor """
abschlusswunsch = 0
aktion = 0
zwsp_aus = self.ausrichtung
zwsp_pos = self.position
while True :
while aktion != 100 :
aktion = input()
if aktion == 1 :
self.ausrichtung -= 1
if self.ausrichtung < 0 : self.ausrichtung = 5
elif aktion == 2 :
self.ausrichtung += 1
if self.ausrichtung > 5 : self.ausrichtung = 0
elif aktion == 3 :
zwischenspeicher = self.position
self.position = nachbardic[self.position][self.ausrichtung]
x = self.position[0]
y = self.position[1]
if x == 0 or y == 0 :
print "ungueltig"
self.position = zwischenspeicher
else :
if aktion == 100 :
break
else :
print "ungueltig"
continue
print self.position, self.ausrichtung
abschlusswunsch = input("zufrieden ? : ")
if abschlusswunsch == 1 : return self.position, self.ausrichtung
else :
print "sie waren nicht zufrieden, bitte ziehen Sie erneut"
self.positon = zwsp_pos
self.ausrichtug = zwsp_aus
break