鱼C论坛

 找回密码
 立即注册
查看: 1203|回复: 6

[已解决]小白求助 如何用python做地雷游戏

[复制链接]
发表于 2020-5-19 16:30:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
创建一个10x10游戏板,并隐藏地雷。 不是地雷的地方标记为。,而地雷则标记为#。
地雷的可能性是通过产生随机数来确定的。 如果要使总数的30%成为地雷,如果生成的随机数少于0.3,则将当前空间确定为地雷。
最佳答案
2020-5-19 18:31:36
以下是百度的结果



  1. import random


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

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

  24.     print()

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

复制代码


虽然是百度的,但是还是想要个最佳哈哈~
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-19 16:31:24 | 显示全部楼层
本帖最后由 Twilight6 于 2020-5-19 17:48 编辑

看看百度多好用?以下是百度的结果
  1. import random


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

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

  24.     print()

  25.     for i in range(1, m + 1):
  26.         for j in range(1, n + 1):
  27.             print(matrix[i][j], end=" ")
  28.         print()
  29. minesweeper(10,10,0.3) # 10行10列,每个格子为地雷的概率为0.3
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-19 16:38:30 | 显示全部楼层
百度
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-19 16:42:36 | 显示全部楼层
我去,改代码可以,做的话很不妥
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-19 16:43:08 | 显示全部楼层
不过改代码也是那些大佬的事情(😊)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-19 18:08:06 | 显示全部楼层
看看百度多好用嘿嘿?以下是百度的结果
  1. import random


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

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

  24.     print()

  25.     for i in range(1, m + 1):
  26.         for j in range(1, n + 1):
  27.             print(matrix[i][j], end=" ")
  28.         print()
  29. minesweeper(10,10,0.3) # 10行10列,每个格子为地雷的概率为0.3
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-19 18:31:36 | 显示全部楼层    本楼为最佳答案   
以下是百度的结果



  1. import random


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

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

  24.     print()

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

复制代码


虽然是百度的,但是还是想要个最佳哈哈~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-19 20:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表