Я пытаюсь сгенерировать уникальные координаты для кораблей в игре линейных кораблей. Я много чего перепробовал, но либо получаю синтаксическую ошибку, либо выход за пределы допустимого диапазона. Я понял, что:
my_dict = {key : [1, 2, 3], key2 : [4, 5, 6]}
x = 2
print(mydict['key'][x - 1])
Не даст мне индекс № 1.
Мой фрагмент кода здесь:
РЕДАКТИРОВАТЬ: Добавлены недостающие вещи.
from random import *
board = []
for x in range(0, 10):
board.append(["O"] * 10)
ships = {
'shiprows': [0],
'shipcols' : [0]
}
def random_row1(board):
return randint(0, len(board) - 1)
def random_col1(board):
return randint(0, len(board) - 1)
vars = 0
temp = 0
for vars in range(0, 5):
print(vars)
if len(ships['shiprows']) >= 2 and len(ships['shipcols']) >= 2:
temp = vars - 1
if ships['shiprows'][temp] in ships['shiprows'] and ships['shipcols'[temp] in ships['shipcols']:
print("if loop")
ships['shiprows'].append(random_row1(board))
ships['shipcols'].append(random_col1(board))
else:
ships['shiprows'].append(random_row1(board))
ships['shipcols'].append(random_col1(board))
vars = vars + 1
print(ships)
Код просто находится в состоянии отладки - я пытаюсь заставить числа входить в указанный изящный цикл if и перегенерироваться, пока они не станут уникальными для их списков.
Я новичок, поэтому, если я сделал очевидную ошибку, пожалуйста, не судите.
Спасибо