0
SHIPS = (('AirCraftCarrier', 5), ('Battleship', 4),
('Submarine', 3), ('Destroyer', 3), ('PatrolBoat', 2))
position = ('v', 'h')
def setShip(self, board, graphics):
maxval = board.getSize() - 1
coords = []
sizes = [(v) for k, v in SHIPS]
for i in sizes:
legal = False
while not legal:
pos = choice(position)
if pos == 'v':
x = randint(0, maxval-1)
y = some kind of code to change y while keeping x same
if pos == 'h':
x = some kind of code to change x while keeping y same
y = randint(0, maxval-1)
if not board.isOccupied(x, y):
legal = True
coords.append((pos, x, y))
#return grid.displayShip(x, y)
return coords
現在,如果選擇v=vertical
選擇了Ÿ而X值保持不變值必須改變。這將導致我的船垂直放置。我不知道有什麼辦法可以做到這一點。我需要隨機選擇第一個值,然後是剛剛進入船長的值,但最後一個值不能大於9,因爲我的網格只能達到9.如何創建一個只有一個變量變化但其他變量保持不變的(x,y)列表?
你只有改變的Y值不隨x做任何事情,是不是你需要什麼?所以就像`如果pos =='v':y = newy`,沒有提及x。 – yosukesabai 2011-12-16 03:30:28