和生活中一样,石头、剪刀和布分别代表不同的手势,游戏规则如下:
import random
'''
1:石头 2:剪刀 3:布;
'''
while True:
computer = [1, 2, 3]
user_input = int(input("请输入数字(1:石头、2:剪刀、3:1布):"))
computer_result = random.choice(computer)
if user_input == computer_result:
result = "平局"
elif (user_input == 1 and computer_result == 2) or \
(user_input == 2 and computer_result == 3) or \
(user_input == 3 and computer_result == 1):
result = "你赢了"
else:
result = "计算机赢了"
print(f"你的出的是:{user_input}")
print(f"计算机出的是:{computer_result}")
print(f"结果:{result}")
注意:有兴趣的话,以上代码可以优化下,比如输入的不是1,2,3,那应该如何处理?
import random
class TestSweep():
# 打印游戏区域
def game_area(self, area):
"""
:param area: 游戏区域
:return:
"""
for row in area:
print(' '.join(row))
# 创建地雷
def create_mines(self, area, mine_num):
"""
:param area: 游戏区域
:param mines_count: 地雷个数
:return:
"""
while mine_num > 0:
i = random.randrange(len(area))
j = random.randrange(len(area))
if area[i][j] != '*':
area[i][j] = '*'
mine_num -= 1
# 计算不是雷的邻居雷数
def not_mines_num(self, area, i, j):
"""
:param area: 游戏区
:param i:计数
:param j:计数
:return:
"""
count = 0
for x in range(i-1, i+2):
for y in range(j-1, j+2):
if 0<=x<len(area) and 0<=y<len(area[x]):
if area[x][y] == '*':
count += 1
return count
# 计算不包含雷的格
def cells_num(self, area):
"""
:param area: 游戏区
:return:
"""
for i in range(len(area)):
for j in range(len(area[i])):
if area[i][j] == ' ':
area[i][j] = str(self.not_mines_num(area, i, j))
# 组织打印游戏
def play_minesweeper(self, r, c, mines_num):
"""
:param r: 行
:param c: 列
:param mines_num:雷数
:return:
"""
area = [[' ' for _ in range(c)] for _ in range(r)]
self.create_mines(area, mines_num)
self.game_area(area)
self.cells_num(area)
self.game_area(area)
if __name__ == "__main__":
seweep = TestSweep()
rows = 6
cols = 6
mines_num = 3
seweep.play_minesweeper(rows, cols, mines_num)
我们预留一个小作业,感兴趣的可以玩玩,游戏说明如下:
本文主要是简单的Python基础应用,基础是语言的核心,只有多练才能熟能生巧。文章内容浅显易懂,适合刚入门Python的你练练手。文中的小游戏其实网上也有很多的版本,建议学习的时候可以自行发挥,还有很多可以进行优化的地方,比如石头剪刀布的非指定数字的判断、扫雷游戏的互动(可以增加和电脑的互动),有兴趣的也可以看看预留的一个作业走迷宫。
腾讯云【负载均衡 CLB】
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。