小白求助 如何用python做地雷游戏
创建一个10x10游戏板,并隐藏地雷。 不是地雷的地方标记为。,而地雷则标记为#。地雷的可能性是通过产生随机数来确定的。 如果要使总数的30%成为地雷,如果生成的随机数少于0.3,则将当前空间确定为地雷。 本帖最后由 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
百度 我去,改代码可以,做的话很不妥 不过改代码也是那些大佬的事情(😊) {: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_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]