Здравствуйте, данный код создаёт поле игры в сапёр пользовательских размеров и расставляет пользовательское количество бомб (ещё не добавил проверку, если бомб больше, чем размер поля). Но столкнулся с проблемой: например, при вводе: Высота: 10
Ширина: 10
Сколько бомб: 98
Во время расстановки бомб код расставляет не по координатам, точнее вторую координату он соблюдает, и в итоге бомбы расставляются на всех строках поля по координатам y.
Как это исправить?
import random
def create_field(height, width):
return [[[0] * width] * height]
def place_bombs(field, number):
x_y_bombs = []
width = len(field[0])
height = len(field)
if number <= height * width // 2:
while len(x_y_bombs) < number:
x_y_bombs.append([random.randint(0, height - 1), random.randint(0, width - 1)])
temp = x_y_bombs.copy()
del temp[-1]
for item in temp:
if x_y_bombs[-1] == item:
del x_y_bombs[-1]
for coord in x_y_bombs:
field[coord[0]][coord[-1]] = 'x'
else:
number = height * width - number
field = [[['x'] * width] * height][0]
while len(x_y_bombs) < number:
x_y_bombs.append([random.randint(0, height - 1), random.randint(0, width - 1)])
temp = x_y_bombs.copy()
del temp[-1]
for item in temp:
if x_y_bombs[-1] == item:
del x_y_bombs[-1]
for coord in x_y_bombs:
field[coord[0]][coord[-1]] = 0
return field
def main():
field = create_field(int(input('Высота: ')), int(input('Ширина: ')))[0]
field = place_bombs(field, int(input('Сколько бомб: ')))
print(field)
if __name__ == '__main__':
main()
243
269
Ответы на вопрос:
//pascal var x,y: real; begin readln(x); if x< 1 then writeln (5.4*x*x) else writeln ('x > =1'); end.
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
lololo2002109.03.2022 01:42
-
dlimfam04.12.2022 19:28
-
ЯнаКорягина15.01.2021 20:17
-
dashaananasic1822.08.2021 12:27
-
Ерко36523.01.2021 00:08
-
stovhelen09.06.2020 17:19
-
afkds06.06.2021 08:39
-
yvvv24.05.2022 20:05
-
Pomochnik1vsegda17.10.2020 12:45
-
KARINALEMANN22.07.2021 01:45
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.