арипов1
15.03.2020 20:11

Здравствуйте, данный код создаёт поле игры в сапёр пользовательских размеров и расставляет пользовательское количество бомб (ещё не добавил проверку, если бомб больше, чем размер поля). Но столкнулся с проблемой: например, при вводе: Высота: 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()

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
ОTВЕT
03.04.2023 08:12
Разрядность процессора – это величина, которая определяет размер машинного слова, то есть количество информации, которой процессор обменивается информацией с оперативной памятью.

В наши дни первым фактором можно приниберечь, т.к. все современные процессоры одинаково работать, как в 32-х, так и в 64-х битном режиме.

Ещё раз подчёркиваю, что никакой разницы нет.

Что касается оперативной памяти, то в этом и заключается вся суть.

Дело в том, что каждая ячейка (8 бит = 1 байт) ОЗУ имеет адрес и в 32-х битной системе он записывается в виде двоичного кода длиной в 32 символа.
Из простых математических преобразований получаем 2^32=4294967296 байт = 4 ГБ.
То есть, в 32-битной системе, ячейки памяти условно расположенные за пределом 4ГБ просто не получат адреса и не будут использоваться.
Если использовать 64-х битную систему, то размер адресуемой памяти 2^64= 18446744073709551616. Разница, как говорится, видна не вооружённым взглядом.

Из этого всего следует вывод, что ключевым фактором является размер ОЗУ: меньше 4 ГБ стоит выбрать 32-разрядную, больше 4 ГБ – 64-разрядную.

Соответственно, максимальная разрядность 64-разрядная
0,0(0 оценок)
Ответ:
roman2016volko
03.04.2023 08:12
Разрядность процессора – это величина, которая определяет размер машинного слова, то есть количество информации, которой процессор обменивается информацией с оперативной памятью.

В наши дни первым фактором можно приниберечь, т.к. все современные процессоры одинаково работать, как в 32-х, так и в 64-х битном режиме.

Ещё раз подчёркиваю, что никакой разницы нет.

Что касается оперативной памяти, то в этом и заключается вся суть.

Дело в том, что каждая ячейка (8 бит = 1 байт) ОЗУ имеет адрес и в 32-х битной системе он записывается в виде двоичного кода длиной в 32 символа.
Из простых математических преобразований получаем 2^32=4294967296 байт = 4 ГБ.
То есть, в 32-битной системе, ячейки памяти условно расположенные за пределом 4ГБ просто не получат адреса и не будут использоваться.
Если использовать 64-х битную систему, то размер адресуемой памяти 2^64= 18446744073709551616. Разница, как говорится, видна не вооружённым взглядом.

Из этого всего следует вывод, что ключевым фактором является размер ОЗУ: меньше 4 ГБ стоит выбрать 32-разрядную, больше 4 ГБ – 64-разрядную.

Соответственно, максимальная разрядность 64-разрядная
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота