class Area():
def __init__(self, pos, desc):
self.pos = pos
self.desc = desc
area1 = Area([0,0], "desc")
area2 = Area([0,1], "desc")
area3 = Area([0,2], "desc")
area4 = Area([1,1], "desc")
area5 = Area([2,1], "desc")
area6 = Area([3,1], "desc")
area7 = Area([3,2], "desc")
map_coordinates = [area1.pos, area2.pos, area3.pos, area4.pos, area5.pos, area6.pos, area7.pos]
player_pos = area1.pos
print type(map_coordinates)
print type(map_coordinates[2])
print type(player_pos)
def command(x):
print "\n" #Just for readability
global player_pos
old_pos = player_pos
if x == "north":
player_pos[1] += 1
if player_pos not in map_coordinates:
player_pos = old_pos
print "Can't go that way"
else:
print "You go north"
while True:
x = raw_input("type 'north' ")
command (x)
print player_pos
私がここでやろうとしていることは、座標がmap_coordinatesにある場合に人を北にして、境界から外れている場合にそれらを停止させることです。しかし、代わりに何が起こるかは、プレーヤーが永遠に北に行くことができ、「その通りに行くことはできません」ということは決して印刷されません。私の推測では、 'in'キーワードはうまくいきませんが、すべてのタイプはリストです。Python:リストが協力したくない場合
を 'map_coordinates'は' list'sの 'list'です。 –