Python最简单的文字游戏——数字炸弹

Python写的数字炸弹游戏,有简单和困难两个难度。

困难难度是指电脑暗地里随机一个数值,如果刚好引爆了炸弹则不算,会再次随机一个新数值,从而增加获胜概率。

import random
import time

player = 0
computer = 0

print('[数字炸弹游戏]')
print('''
———————————————————————————————————————————————
[游戏规则:1-100的炸弹编号中,其中一个编号是引爆编号。
玩家和电脑每次随机选择一个编号,如果有人引爆了炸弹则游
戏结束。如果没有人引爆炸弹,那么编号范围会根据玩家和电
脑的选择而不断缩小直至炸弹引爆。]
———————————————————————————————————————————————
''')
while True:
    print()
    print(f'[开始游戏][玩家得分:{player}][电脑得分:{computer}]')
    D = int(input('[请选择难度][1.普通 2.困难]:'))
    if D == 1:
        print('[当前难度][普通]')
        bomb = random.randint(1, 100)
        a = 0
        b = 100
        while True:
            print('-'*30)
            N = int(input('[玩家][请输入一个炸弹编号]:'))
            if N <= a or N >= b:
                print('[编号输入范围错误]')
                continue
            else:
                time.sleep(0.5)
                if N != bomb:
                    if a < N < bomb:
                        a = N
                        print(f'当前可输入的范围:[{a}]-[{b}]')
                    elif bomb < N < b:
                        b = N
                        print(f'当前可输入的范围:[{a}]-[{b}]')
                else:
                    print('[BOOOOM!!]')
                    print('[你引爆了炸弹][电脑获胜]')
                    computer += 1
                    break

            time.sleep(1)
            print('-'*30)
            M = random.randint(a+1, b-1)
            print(f'[电脑][输入了一个炸弹编号]:{M}')
            time.sleep(0.5)
            if M != bomb:
                if a < M < bomb:
                    a = M
                    print(f'当前可输入的范围:[{a}]-[{b}]')
                elif bomb < M < b:
                    b = M
                    print(f'当前可输入的范围:[{a}]-[{b}]')
            else:
                print('[BOOOOM!!]')
                print('[电脑引爆了炸弹][玩家获胜]')
                player += 1
                break

    else:
        print('[当前难度][困难]')
        bomb = random.randint(1, 100)
        a = 0
        b = 100
        while True:
            print('-' * 30)
            N = int(input('[玩家][请输入一个炸弹编号]:'))
            if N <= a or N >= b:
                print('[编号输入范围错误]')
                continue
            else:
                time.sleep(0.5)
                if N != bomb:
                    if a < N < bomb:
                        a = N
                        print(f'当前可输入的范围:[{a}]-[{b}]')
                    elif bomb < N < b:
                        b = N
                        print(f'当前可输入的范围:[{a}]-[{b}]')
                else:
                    print('[BOOOOM!!]')
                    print('[你引爆了炸弹][电脑获胜]')
                    computer += 1
                    break

            time.sleep(1)
            print('-' * 30)
            M = random.randint(a + 1, b - 1)
            if M == bomb:
                M = random.randint(a + 1, b - 1)
            print(f'[电脑][输入了一个炸弹编号]:{M}')
            time.sleep(0.5)
            if M != bomb:
                if a < M < bomb:
                    a = M
                    print(f'当前可输入的范围:[{a}]-[{b}]')
                elif bomb < M < b:
                    b = M
                    print(f'当前可输入的范围:[{a}]-[{b}]')
            else:
                print('[BOOOOM!!]')
                print('[电脑引爆了炸弹][玩家获胜]')
                player += 1
                break

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值