eobeom 发表于 2020-5-19 16:30:14

小白求助 如何用python做地雷游戏

创建一个10x10游戏板,并隐藏地雷。 不是地雷的地方标记为。,而地雷则标记为#。
地雷的可能性是通过产生随机数来确定的。 如果要使总数的30%成为地雷,如果生成的随机数少于0.3,则将当前空间确定为地雷。

Twilight6 发表于 2020-5-19 16:31:24

本帖最后由 Twilight6 于 2020-5-19 17:48 编辑

{:10_266:} 看看百度多好用?以下是百度的结果
import random


def minesweeper(m, n, p):
    # m行 n列 p为概率
    matrix = [ for row in range(m + 2)]
    for row in range(1, m + 1):
      for col in range(1, n + 1):
            ran = random.random()
            if ran > p:
                matrix = 0# 如果ran大于p,说明不是地雷。因为这里的p表示的是地雷的概率。
            else:
                matrix = "*"

    for row in range(1, m + 1):
      for col in range(1, n + 1):
            if matrix == "*":# 如果这个地方是地雷,就在它周围一圈里的非地雷方格都加1
                for i in range(row - 1, row + 1 + 1):
                  for j in range(col - 1, col + 1 + 1):
                        if matrix != "*":# 只有在该方格不是地雷的时候才会+1
                            matrix += 1
    # 打印
    for i in range(1, m + 1):
      for j in range(1, n + 1):
            print("*", end=" ") if matrix == "*" else print(".", end=" ")
      print()

    print()

    for i in range(1, m + 1):
      for j in range(1, n + 1):
            print(matrix, end=" ")
      print()
minesweeper(10,10,0.3) # 10行10列,每个格子为地雷的概率为0.3

qiuyouzhi 发表于 2020-5-19 16:38:30

百度

青出于蓝 发表于 2020-5-19 16:42:36

我去,改代码可以,做的话很不妥

青出于蓝 发表于 2020-5-19 16:43:08

不过改代码也是那些大佬的事情(😊)

Twilight6 发表于 2020-5-19 18:08:06

{:10_266:} 看看百度多好用嘿嘿?以下是百度的结果
import random


def minesweeper(m, n, p):
    # m行 n列 p为概率
    matrix = [ for row in range(m + 2)]
    for row in range(1, m + 1):
      for col in range(1, n + 1):
            ran = random.random()
            if ran > p:
                matrix = 0# 如果ran大于p,说明不是地雷。因为这里的p表示的是地雷的概率。
            else:
                matrix = "*"

    for row in range(1, m + 1):
      for col in range(1, n + 1):
            if matrix == "*":# 如果这个地方是地雷,就在它周围一圈里的非地雷方格都加1
                for i in range(row - 1, row + 1 + 1):
                  for j in range(col - 1, col + 1 + 1):
                        if matrix != "*":# 只有在该方格不是地雷的时候才会+1
                            matrix += 1
    # 打印
    for i in range(1, m + 1):
      for j in range(1, n + 1):
            print("*", end=" ") if matrix == "*" else print(".", end=" ")
      print()

    print()

    for i in range(1, m + 1):
      for j in range(1, n + 1):
            print(matrix, end=" ")
      print()
minesweeper(10,10,0.3) # 10行10列,每个格子为地雷的概率为0.3

Twilight6 发表于 2020-5-19 18:31:36

{:10_266:} 以下是百度的结果


import random


def minesweeper(m, n, p):
    # m行 n列 p为概率
    matrix = [ for row in range(m + 2)]
    for row in range(1, m + 1):
      for col in range(1, n + 1):
            ran = random.random()
            if ran > p:
                matrix = 0# 如果ran大于p,说明不是地雷。因为这里的p表示的是地雷的概率。
            else:
                matrix = "#"

    for row in range(1, m + 1):
      for col in range(1, n + 1):
            if matrix == "#":# 如果这个地方是地雷,就在它周围一圈里的非地雷方格都加1
                for i in range(row - 1, row + 1 + 1):
                  for j in range(col - 1, col + 1 + 1):
                        if matrix != "#":# 只有在该方格不是地雷的时候才会+1
                            matrix += 1
    # 打印
    for i in range(1, m + 1):
      for j in range(1, n + 1):
            print("#", end=" ") if matrix == "#" else print(".", end=" ")
      print()

    print()

    for i in range(1, m + 1):
      for j in range(1, n + 1):
            print(matrix, end=" ")
      print()
minesweeper(10,10,0.3) # 10行10列,每个格子为地雷的概率为0.3


虽然是百度的,但是还是想要个最佳哈哈~{:10_287:}
页: [1]
查看完整版本: 小白求助 如何用python做地雷游戏