C丁洞杀O 发表于 2022-3-30 22:21:56

刚学习Python做的一个小游戏,希望大佬点评啊!

石头剪刀布的一个小游戏,PC做的,大佬可以点评一下吗(小的想要优化啊!!!)

下面是源代码,有大佬帮忙优化一下吗?


'''
游戏 :石头剪刀布
作者 :C丁洞杀O
版本 :2.0
制作时间 :2022.3.30
'''
# coding:utf-8
import random

# 变量初始化
player_fraction = 0
computer_fraction = 0
ms = '正常'
# 输的次数
sc = 0
# 赢的次数
yc = 0

print("""
***********************CO元宇小游戏游戏******************************
                     石头 - 剪刀 - 布
                        作者 :C丁洞杀O
************************!欢迎游玩哦!*******************************
""")

print("———————————————————————输入玩家的名字——————————————————————————")
PLAYER_NAME = input("玩家的名字是:")
print("————————————————————————请选择对手————————————————————————————")
print("1.诸葛亮2.王昭君3.曹操")
cn =eval(input("你的对手是:"))
if cn == 1:
    COMPUTER_NAME = '诸葛亮'
elif cn == 2:
    COMPUTER_NAME = '王昭君'
elif cn == 3:
    COMPUTER_NAME = '曹操'
elif cn == 4:
    COMPUTER_NAME = '人工智能小九'
elif cn == 5:
    COMPUTER_NAME = '电脑'
else:
    COMPUTER_NAME = '匿名者'
print(PLAYER_NAME,"VS",COMPUTER_NAME)
# 判断游戏是否继续
youxi = True
# 游戏开始
while youxi:
    #玩家出拳
    player_fist = eval(input("|—————————————————————1.拳头2.剪刀3.布————————————————————|\n"))
    if player_fist == 1:
      playerfist = '石头'
    elif player_fist == 2:
      playerfist = '剪刀'
    elif player_fist == 3:
      playerfist = '布'
    else:
      playerfist = '石头'

    #电脑出拳
    if ms == '正常':
      computer_fist = random.randint(1,3)
      if computer_fist== 1:
            computerfist = '石头'
      elif computer_fist == 2:
            computerfist = '剪刀'
      elif computer_fist == 3:
            computerfist = '布'
    elif ms == '必胜':
      if playerfist == '石头':
            computerfist = '剪刀'
      elif playerfist == '剪刀':
            computerfist = '布'
      elif playerfist == '布':
            computerfist = '石头'
    elif ms == '必输':
      if playerfist == '石头':
            computerfist = '布'
      elif playerfist == '剪刀':
            computerfist = '石头'
      elif playerfist == '布':
            computerfist = '剪刀'

    #判断胜负
    print(PLAYER_NAME+"出的"+playerfist,COMPUTER_NAME+"出的"+computerfist)
    if playerfist == '石头' and computerfist == '剪刀':
      if yc < 3:
            print("恭喜啊,你赢了呢!不要骄傲哦")
            yc += 1
            ms = '正常'
      elif yc >= 3:
            print("你太厉害了,但我有不好的预感啊!")
            ms = '必输'
            yc = 0
      #player_fraction = player_fraction + 1
      player_fraction += 1

    elif playerfist == '石头' and computerfist == '布':
      if sc < 5:
            print("失败乃成功之母,不要灰心")
            ms = "正常"
            sc += 1
      elif sc >= 5:
            print("我觉得,你下次必胜啊!努力")
            ms = "必胜"
            sc = 0
      computer_fraction += 1

    elif playerfist == '剪刀' and computerfist == '石头':
      if sc < 5:
            print("哎,你输了,加油,下次加油")
            ms = "正常"
            sc += 1
      elif sc >= 5:
            print("虽然输了,但我告诉你,下次必胜啊!快开下一局吧。")
            ms = "必胜"
            sc = 0
      computer_fraction += 1

    elif playerfist == '剪刀' and computerfist == '布':
      if yc < 3:
            print("好厉害,你赢了呢!!!")
            yc += 1
            ms = '正常'
      elif yc >= 3:
            print(COMPUTER_NAME+":这次的胜利会为你之后的失败定下基础!")
            ms = '必输'
            yc = 0
      player_fraction += 1

    elif playerfist == '布' and computerfist == '石头':
      if sc < 5:
            print("输了,好可惜啊,再来一局吧,加油")
            ms = "正常"
            sc += 1
      elif sc >= 5:
            print("加油,胜利是留给你的,下局必胜啊!")
            ms = "必胜"
            sc = 0
      computer_fraction += 1

    elif playerfist == '布' and computerfist == '剪刀':
      if yc < 3:
            print("你好厉害啊,恭喜你了,继续努力啊!")
            yc += 1
            ms = '正常'
      elif yc >= 3:
            print(COMPUTER_NAME+":你不要太骄傲,下局你输定了!")
            ms = '必输'
            yc = 0
      player_fraction += 1

    elif playerfist == computerfist:
      print("平局了?")
      sc = 0
      yc = 0

    print("当前分数是",player_fraction)

    # 判断还玩吗
    a = input("还玩吗? y/n")
    if a == 'y':
      youxi = True
    elif a == 'n':
      youxi = False
      break
    else:
      print("你输入的是啥?我不管,你继续玩吧!下一局")
      youxi = True

    print("—————————————————————————————————————————————————————————————")

if player_fraction > computer_fraction:
    c = player_fraction - computer_fraction
    print("你以" ,c, "的差距赢了" + COMPUTER_NAME)
elif player_fraction < computer_fraction:
    c = computer_fraction - player_fraction
    print(COMPUTER_NAME+"用",c,"的差距赢了你!\n你输了")
elif player_fraction == computer_fraction:
    print("你们平局了,下次再努力吧")



咋样啊?我要努力学Python了,学习Python第一天,打卡!{:5_108:}

C丁洞杀O 发表于 2022-3-30 22:22:50

哎,想要做个回复可见,该咋搞咧?{:10_247:}

wiselin 发表于 2022-3-31 11:04:13

你把每个值做成字典试试

小伤口 发表于 2022-4-1 18:33:08

可以,让俺想起了,我用python做的文字游戏

余生爱茶 发表于 2022-4-1 18:52:19

很厉害啊

C丁洞杀O 发表于 2022-4-1 22:13:37

wiselin 发表于 2022-3-31 11:04
你把每个值做成字典试试

好吧,我知道你是什么意思了,今天刚刚学到

2010001 发表于 2022-4-3 18:42:59

{:10_247:}人比人气死人

andy大宝 发表于 2022-4-3 18:55:15

C丁洞杀O 发表于 2022-3-30 22:22
哎,想要做个回复可见,该咋搞咧?

手动回复{:10_256:}
页: [1]
查看完整版本: 刚学习Python做的一个小游戏,希望大佬点评啊!