python人机对战小游戏

python人机对战小游戏,第1张

python人机对战小游戏
Nice!自己写的第一个小游戏,wanderful!!!
事前没有参照任何代码,只通过前两天学习的循环语句实现,感觉满满的成就感。

以下是源代码,可能在大神们看来很稚嫩,但对于小白的我来说却是学习进程中的一大步,加油

import random

for i in range(1,4):
    print('--------现在是第'+str(i)+'局--------')
    W_bloods = random.randrange(100, 200)
    W_attack = random.randrange(10, 50)
    print('【玩家】')
    print('血量:'+str(W_bloods)+'n攻击:'+str(W_attack))

    print('------------')

    D_bloods = random.randrange(100, 200)
    D_attack = random.randrange(10, 50)
    print('【敌人】')
    print('血量:'+str(D_bloods)+'n攻击:'+str(D_attack))

    print('------------')

    while True:
        D_bloods = D_bloods - W_attack
        print('你发起了攻击,【敌人】血量剩余'+str(D_bloods))
        W_bloods = W_bloods - D_attack
        print('敌人向你发起了进攻,【玩家】血量剩余'+str(W_bloods))

        print('------------')

        if W_bloods > 0 and D_bloods > 0:
            continue
        elif W_bloods <= 0 and D_bloods > 0:
            print('你被敌人干掉了!')
            break
        elif W_bloods > 0 and D_bloods <= 0:
            print('敌人被你干掉了!')
            break
        else:
            print('你和敌人同归于尽了!')
            break

以下是从其他地方找到的更为完整合理的代码,仅供参考:

import time, random

player_victory = 0
enemy_victory = 0

for i in range(1, 4):
    time.sleep(2)  # 让局与局之间有较明显的有时间间隔
    print(' n——————现在是第' + str(i) + '局——————')  # 作为局的标记

    player_life = random.randint(100, 150)
    player_attack = random.randint(30, 50)
    enemy_life = random.randint(100, 150)
    enemy_attack = random.randint(30, 50)

    # 展示双方角色的属性
    print('【玩家】n' + '血量:' + str(player_life) + 'n攻击:' + str(player_attack))
    print('------------------------')
    time.sleep(1)
    print('【敌人】n' + '血量:' + str(enemy_life) + 'n攻击:' + str(enemy_attack))
    print('------------------------')
    time.sleep(1)

    # 双方PK
    while player_life > 0 and enemy_life > 0:
        player_life = player_life - enemy_attack
        enemy_life = enemy_life - player_attack
        print('你发起了攻击,【玩家】剩余血量' + str(player_life))
        print('敌人向你发起了攻击,【敌人】剩余血量' + str(enemy_life))
        print('-----------------------')
        time.sleep(1.5)

    # 打印最终战果
    if player_life > 0 and enemy_life <= 0:
        player_victory += 1
        print('敌人死翘翘了,你赢了!')
    elif player_life <= 0 and enemy_life > 0:
        enemy_victory += 1
        print('悲催,敌人把你干掉了!')
    else:
        print('哎呀,你和敌人同归于尽了!')

if player_victory > enemy_victory:
    time.sleep(1)
    print('【最终结果:你赢了!】')
elif enemy_victory > player_victory:
    print('【最终结果:你输了!】')
else:
    print('【最终结果:平局!】')

代码同上,只不过使用格式符%进行了替换优化

import time
import random

player_victory = 0
enemy_victory = 0

for i in range(1,4):
    time.sleep(1.5)
    print('  n——————现在是第 %s 局——————' % i)
    #对比之前:(' n——————现在是第'+str(i)+'局——————')
    player_life = random.randint(100,150)
    player_attack = random.randint(30,50)
    enemy_life = random.randint(100,150)
    enemy_attack = random.randint(30,50)

    print('【玩家】n血量:%sn攻击:%s' % (player_life,player_attack))
    print('------------------------')
    time.sleep(1)
    print('【敌人】n血量:%sn攻击:%s' % (enemy_life,enemy_attack))
    print('-----------------------')
    time.sleep(1)

    while player_life > 0 and enemy_life > 0:
        player_life = player_life - enemy_attack 
        enemy_life = enemy_life - player_attack
        print('你发起了攻击,【玩家】剩余血量%s' % player_life)
        print('敌人向你发起了攻击,【敌人】的血量剩余%s' % enemy_life)
        print('-----------------------')
        time.sleep(1.2)

    if player_life > 0 and enemy_life <= 0:
        player_victory += 1
        print('敌人死翘翘了,你赢了!')
    elif player_life <= 0 and enemy_life > 0:
        enemy_victory += 1
        print('悲催,敌人把你干掉了!')
    else:
        print('哎呀,你和敌人同归于尽了!')

if player_victory > enemy_victory :
    time.sleep(1)
    print('n【最终结果:你赢了!】')
elif enemy_victory > player_victory:
    print('n【最终结果:你输了!】')
else: 
    print('n【最终结果:平局!】')

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5710667.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-18

发表评论

登录后才能评论

评论列表(0条)

保存