Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/25: Рейтинг темы: голосов - 25, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 13.11.2019
Сообщений: 8

Игра Сапер

13.11.2019, 19:41. Показов 5174. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Вот все не могу добить.... надо было написать код для поля игры Сапер. Вроде есть, но еще требовалось что бы поле было не менее 10х10 и не менее 10 бомб. Это вроде тоже одолела. Но так же необходимо что бы координаты мин были корректны, т.е нельзя вводить ноль и отрицательные числа в координаты. Ну допустим привертела. Но у меня не получается сделать так что нельзя вводить значения координат превышающие размер поля. Подскажите, пожалуйста.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
while True:
  try:
    N, M = map(int, input('Размер поля:').split())
    if N < 10 or M < 10:
      raise Exception
    break
  except Exception:
    print("Размер поля должен быть не менее 10х10 ")
 
while True:
  try:
    K = int(input('Количество мин:'))
    if K < 10:
      raise Exception
    break
  except Exception:
    print("Количество мин должно быть не менее 10 ")
 
mines = []
while len(mines) != K:
  coords = input('Координаты мины:').split()
  if len(coords) == 2 and all(map(str.isdigit, coords)):
        coords = tuple(map(int, coords))
        if all(map(lambda x: x > 0, coords)):
            mines.append(coords)
              
        else:
          print('Нельзя вводить 0')
  else:
    print("Нельзя вводить отрицательные числа")
    
 
def Pole(a, b):
  for i in range(a-1, a+2):
    for j in range(b-1, b+2):
      if i > -1 and j > -1:
        yield i, j
  
def Mines(a, b):
  return sum((i, j) in mines for i, j in Pole(a, b))
  
for i in range(N):
  for j in range(M):
    if (i, j) not in mines:
      print(Mines(i, j), end=' ')
    else:
      print('b', end=' ')
  print()
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.11.2019, 19:41
Ответы с готовыми решениями:

Игра сапер
Поле для игры сапёр представляет собой сетку размером n×m. В ячейке сетки может находиться или отсутствовать мина. Напишите...

Сапёр
Сапёр — известная игра-головоломка для одного игрока на прямоугольном поле. В некоторых точках поля расположены мины. Цель игрока — открыть...

Сапер
https://repl.it/@panacealove/DesertedColdCommand#main.py в чем ошибка я не понмаю

2
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
14.11.2019, 05:45
Лучший ответ Сообщение было отмечено FkA как решение

Решение

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
while True:
    N, M = map(int, input('Размер поля [11 12]:').split(' '))
    if N < 10 or M < 10:
        print("Размер поля должен быть не менее 10х10")
        continue
    break
 
while True:
    K = int(input('Количество мин [11]:'))
    if K < 10:
        print("Количество мин должно быть не менее 10 ")
        continue
    break
 
mines = []
for i in range(K):
    while True:
        x, y = input('Координаты мины #{} [10 9]:'.format(i + 1)).split(' ')
        if x <= 0 or y <= 0:
            print('error 0<=')
            continue
        if x > N or x > M:
            print('error >max')
            continue
        break
    mines.append((x, y))
1
0 / 0 / 0
Регистрация: 13.11.2019
Сообщений: 8
14.11.2019, 16:09  [ТС]
Благодарю Вас! Очень помогли!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.11.2019, 16:09
Помогаю со студенческими работами здесь

Сапёр на python
помогите сделать обычный сапер на питоне, где можно выбирать координаты и выбирать что сделать с этой точкой (обезвредить, открыть) поле...

Написать генератор карт для игры «сапёр».
Написать генератор карт для игры «сапёр». Карта размером NxM. Формат ввода Каждая строка содержит два натуральных числа разделённых...

Оптимизация алгоритма по выводу поля игры сапёр
Всем хай! Написал код для решения следующей задачи. Текст задачи: Вам дан размер прямоугольного поля и координаты всех мин,...

Сапер. Нужно сделать чтобы рандом не ставил бомбу на одно и тоже место
from tkinter import* from random import randint def player_win(): for y in range(len(w)): for x in range(len(w)): ...

Сапёр
Здравствуйте. Помогите, пожалуйста, решить задачу: На поле для игры в сапер клеточки с минами обозначаются символом “*”, а в каждой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru