Проверка Python, находится ли число в списке, являющемся значением внутри словаря, и если оно регенерируется, пока не станет другим - синтаксическая ошибка - PullRequest
0 голосов
/ 08 сентября 2018

Я пытаюсь сгенерировать уникальные координаты для кораблей в игре линейных кораблей. Я много чего перепробовал, но либо получаю синтаксическую ошибку, либо выход за пределы допустимого диапазона. Я понял, что:

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 и перегенерироваться, пока они не станут уникальными для их списков.

Я новичок, поэтому, если я сделал очевидную ошибку, пожалуйста, не судите. Спасибо

Ответы [ 2 ]

0 голосов
/ 08 сентября 2018
my_dict = {'key' : [1, 2, 3], 'key2' : [4, 5, 6]}
x= 2
print(my_dict['key'][x-1])
#output is 2

В вашем коде

if ships['shiprows'][temp] in ships['shiprows'] and ships['shipcols'[temp] in ships['shipcols']:

синтаксическая ошибка. так что ремонтируй вот так:

if ships['shiprows'][temp] in ships['shiprows'] and ships['shipcols'][temp] in ships['shipcols']:
0 голосов
/ 08 сентября 2018
if ships['shiprows'][temp] in ships['shiprows'] and ships['shipcols'[temp] in ..
                                                                  ^^^^
                                                               unmatched brackets

также ваши переменные vars скрываются переменными из вашего цикла for.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...