python编写一个打地鼠的游戏

大家好,小编来为大家解答以下问题,python编写一个打地鼠的游戏代码,python编写一个打地鼠的游戏程序,今天让我们一起来看看吧!

下面是一个简单的打地鼠游戏的Python代码示例:  

import random
import time
# 初始化屏幕
os.system('cls' if  == 'nt' else 'clear')
# 游戏设置
width, height = 10, 10  # 地鼠出现的范围
moles = []  # 地鼠列表
holes = set()  # 孔洞位置集合
score = 0  # 玩家得分
game_over = False  # 游戏是否结束
# 随机生成地鼠
def generate_moles():
    global moles
    moles = []
    for _ in range(random.randint(5, 10)):
        mole = [random.randint(0, width-1), random.randint(0, height-1)]
        moles.append(mole)
# 显示地鼠和孔洞
def show_moles_and_holes():
    for x, y in moles:
        print("M", end=" ")
    print()
    for x, y in holes:
        print("O", end=" ")
    print()
# 检查是否击中地鼠
def check_mole_hit(x, y):
    return [x, y] in moles
# 主游戏循环
while not game_over:
    generate_moles()  # 重新生成地鼠
    show_moles_and_holes()  # 显示地鼠和孔洞
    print("当前得分:", score)
    
    # 获取玩家输入
    player_input = input("请输入孔洞的坐标(格式:x y)或输入'退出'来结束游戏: ")
    if player_input.lower() == '退出':
        game_over = True
        print("游戏结束,最终得分:", score)
        break
    
    x, y = map(int, player_input.split())
    if 0 <= x < width and 0 <= y < height:
        if check_mole_hit(x, y):
            score += 1  # 增加分数
            print("击中地鼠!")
        else:
            print("未击中地鼠。")
        ((x, y))  # 添加孔洞
    else:
        print("坐标无效。")
    # 清除屏幕
    os.system('cls' if  == 'nt' else 'clear')
    # 稍作延迟
    time.sleep(0.5)
# 游戏结束
print("感谢您的游玩!")
代码解析:
1. **初始化屏幕**:清屏,准备新的游戏。
2. **游戏设置**:定义游戏区域的大小、地鼠列表、孔洞位置集合和玩家得分。
3. **随机生成地鼠**:在游戏区域内随机生成地鼠的位置。
4. **显示地鼠和孔洞**:打印出地鼠和孔洞的位置。
5. **检查是否击中地鼠**:判断玩家输入的坐标是否在地鼠的位置上。
6. **主游戏循环**:游戏的主要循环,处理玩家的输入、地鼠的生成和击中检测。
7. **获取玩家输入**:接收玩家输入的孔洞坐标或退出命令。
8. **判断玩家输入**:根据玩家的输入判断是否击中地鼠,并更新得分和孔洞位置。
9. **清除屏幕**:清除屏幕,准备下一次游戏循环。
10. **稍作延迟**:控制游戏更新的速度。
11. **游戏结束**:当玩家选择退出时,结束游戏并显示最终得分。

 希望这对您有所帮助!喜欢就点个赞!


原文地址:https://blog.csdn.net/weixin_49602952/article/details/138263094

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值