自制python小游戏

该代码展示了一个使用Python实现的互动游戏,玩家可以分配点数、与虚拟角色战斗并参与各种随机事件。游戏涉及血量、力量分配,以及根据用户输入和随机数决定的游戏进程。

import math
import random
import platform
print(platform.python_build())
print(platform.python_compiler())
print(platform.python_branch())
print(platform.python_implementation())
print(platform.python_revision())
print(platform.python_version())
print(platform.python_version_tuple())
print(platform.platform()) 
print(platform.version()) 
print(platform.architecture()) 
print(platform.machine()) 
print(platform.node()) 
print(platform.processor())
bit=10

print('您剩余分配点数%d'%(bit))
print('请输入您的幸运数字')
fuli=input()
if fuli=='.666':
      bit=666
      print('您剩余分配点数%d'%(bit))
if fuli=='.888':
      bit=888
      print('您剩余分配点数%d'%(bit))
if fuli=='win':
      bit=10**10
      print('您剩余分配点数%d'%(bit))
if fuli=='lose':
      bit=0-10**10
      print('您剩余分配点数%d'%(bit))
print('请输入您的死党/不喜欢的人,用一个空格隔开')
name=input().split()
numnames=len(name)
print(name)
while 1==1:
      if bit>0:
            print('是否保存')
            print('A.保存')
            print('B.不保存')
            chose=input()
            if chose=='B':
                  i=random.randint(1,numnames)-1
                  k1=int(random.uniform(0.3*bit,0.6*bit))
                  k2=int(random.uniform(0.3*bit,0.6*bit))
                  while 1==1:
                        print('请输入血量,力量点数(必须为整数),您现在有%d点'%(bit))
                        print('血量')
                        a=input()
                        print('力量')
                        b=input()
                        c=int(a)
                        d=int(b)
                        if c+d==bit:
                              print('血量',end=' ')
                              print(c)
                              print('力量',end=' ')
                              print(d)
                              break
                        else:
                              print('分配点数错误,请重新分配')
                              continue
                  e=k1
                  f=k2
                  print('您遇见了一个',end='')
                  print(name[i])
                  print('综合战斗力%d,血量%d,力量%d'%(e+f,e,f))
                  print('您的选择是:')
                  print('A.让他先出手,我一只手按死他')
                  print('结算分配点数+3')
                  print('B.不讲武德,先下手为强')
                  print('结算分配点数-1')
                  n=input()
                  if n=='A':
                        c-=f
                        while 1==1:
                              if c>0 and e>0:
                                    print(-f,-d)
                              elif c<=0 and e>0:
                                    print('你死了')
                                    bit=bit-math.ceil(0.5*bit)
                                    break
                              elif c>0 and e<=0:
                                    print('你赢了')
                                    bit=bit+3+math.floor(0.5*bit)
                                    break
                              elif c<=0 and e<=0:
                                    print('你与敌人同归于尽')
                                    bit=bit+3
                                    break
                              c-=f
                              e-=d
                  elif n=='B':
                        e-=d
                        while 1==1:
                              if c>0 and e>0:
                                    print(-f,-d)
                              elif c<=0 and e>0:
                                    print('你死了')
                                    bit=bit-math.ceil(0.5*bit)-1
                                    break
                              elif c>0 and e<=0:
                                    print('你赢了')
                                    bit=bit+math.floor(0.5*bit)-1
                                    break
                              elif c<=0 and e<=0:
                                    print('你与敌人同归于尽')
                                    bit=bit-1
                                    break
                              c-=f
                              e-=d
                  print('您剩余分配点数%d'%(bit))
                  if random.randint(1,1000)==50:
                        print('您走了狗屎运')
                        print('您彩票中大奖')
                        print('奖励500点')
                        bit+=500
                        print('您剩余分配点数%d'%(bit))
                  if random.randint(1,10000)==50:
                        print('您走了狗屎运')
                        print('您彩票中大奖')
                        print('奖励5000点')
                        bit+=5000
                        print('您剩余分配点数%d'%(bit))
                  if random.randint(1,10)==5:
                        print('您掉进粪坑')
                        print('扣除1点')
                        bit-=1
                        print('您剩余分配点数%d'%(bit))
                  if random.randint(1,100)==5:
                        print('您参加厨神大赛')
                        print('您成为评委')
                        print('您遇见了俞涛')
                        print('您吃了一部粪')
                        print('全属性下降20%')
                        bit=bit-math.ceil(0.2*bit)
                        print('您剩余分配点数%d'%(bit))
                  if random.randint(1,100)==50:
                        problems=['请问圆台侧面积公式,用a1,a2,l,x表示,x为π,a1,a2分别为上下圆的半径','请问圆台体积公式,用a1,a2,h,x表示,x为π,a1,a2分别为上下圆的半径']
                        answers=['x(a1+a2)l','x(a1**2+a2**2+a1*a2)h/3']
                        p=random.randint(1,2)-1
                        print('接下来玩个小游戏')
                        print(problems[p])
                        m=input()
                        if m==answers[p]:
                              print('回答正确')
                              print('点数翻倍')
                              bit*=2
                        else:
                              print('回答错误')
                        print('您剩余分配点数%d'%(bit))
                  if random.randint(1,10)==5:
                        i=random.randint(1,numnames)-1
                        k1=int(random.uniform(0.8*bit,1.5*bit))
                        k2=int(random.uniform(0.8*bit,1.5*bit))
                        print('BOSS关')
                        while 1==1:
                              print('请输入血量,力量点数(必须为整数),您现在有%d点'%(bit))
                              print('血量')
                              a=input()
                              print('力量')
                              b=input()
                              c=int(a)
                              d=int(b)
                              if c+d==bit:
                                    print('血量',end=' ')
                                    print(c)
                                    print('力量',end=' ')
                                    print(d)
                                    break
                              else:
                                    print('分配点数错误,请重新分配')
                                    continue
                        e=k1
                        f=k2
                        print('您遇见了一个',end='')
                        print(name[i])
                        print('综合战斗力%d,血量%d,力量%d'%(e+f,e,f))
                        print('您的选择是:')
                        print('A.让他先出手,我一只手按死他')
                        print('结算分配点数+100')
                        print('B.不讲武德,先下手为强')
                        print('结算分配点数-1')
                        n=input()
                        if n=='A':
                              c-=f
                              while 1==1:
                                    if c>0 and e>0:
                                          print(-f,-d)
                                    elif c<=0 and e>0:
                                          print('你死了')
                                          bit=bit-math.ceil(0.2*bit)
                                          break
                                    elif c>0 and e<=0:
                                          print('你赢了')
                                          bit=bit+100+math.floor(2*bit)
                                          break
                                    elif c<=0 and e<=0:
                                          print('你与敌人同归于尽')
                                          bit=bit+100
                                          break
                                    c-=f
                                    e-=d
                              print('您剩余分配点数%d'%(bit))
                        elif n=='B':
                              e-=d
                              while 1==1:
                                    if c>0 and e>0:
                                          print(-f,-d)
                                    elif c<=0 and e>0:
                                          print('你死了')
                                          bit=bit-math.ceil(0.2*bit)-1
                                          break
                                    elif c>0 and e<=0:
                                          print('你赢了')
                                          bit=bit-1+math.floor(2*bit)
                                          break
                                    elif c<=0 and e<=0:
                                          print('你与敌人同归于尽')
                                          bit=bit-1
                                          break
                                    c-=f
                                    e-=d
                              print('您剩余分配点数%d'%(bit))
                        else:
                              print('您输入错误')
                              print('直接被BOSS拍死')
                              bit=bit-math.ceil(0.2*bit)
                        print('您剩余分配点数%d'%(bit))
                  if random.randint(1,5)==2:
                        recycle=1
                        ones=[]
                        twos=[]
                        threes=[]
                        fours=[]
                        while recycle<=500:
                              thing=random.randint(1,4)
                              print(thing,end=' ')
                              recycle+=1
                              if thing==1:
                                    ones.append(thing)
                              elif thing==2:
                                    twos.append(thing)
                              elif thing==3:
                                    threes.append(thing)
                              else:
                                    fours.append(thing)
                        print()
                        ones=len(ones)
                        twos=len(twos)
                        threes=len(threes)
                        fours=len(fours)
                        problem=random.randint(1,4)
                        print('请问有多少个',end='')
                        print(problem)
                        if problem==1:
                              answer=ones
                        if problem==2:
                              answer=twos
                        if problem==3:
                              answer=threes
                        if problem==4:
                              answer=fours
                        m=float(input())
                        if m==answer:
                              print('回答正确')
                              print('点数翻倍')
                              bit*=4
                        else:
                              print('回答错误')
                        print('您剩余分配点数%d'%(bit))
                  while 1==1:
                        print('请输入血量,力量点数(必须为整数),您现在有%d点'%(bit))
                        print('血量')
                        a=input()
                        print('力量')
                        b=input()
                        c=int(a)
                        d=int(b)
                        if c+d==bit:
                              print('血量',end=' ')
                              print(c)
                              print('力量',end=' ')
                              print(d)
                              break
                        else:
                              print('分配点数错误,请重新分配')
                              continue
                  while 1==1:
                        q1=int(random.uniform(0.5*bit,0.8*bit))
                        q2=int(random.uniform(0.5*bit,0.8*bit))
                        i=random.randint(1,numnames)-1
                        e=q1
                        f=q2
                        print('您遇见了一个',end='')
                        print(name[i])
                        print('综合战斗力%d,血量%d,力量%d'%(e+f,e,f))
                        print('您害怕极了')
                        print('您有如下选择')
                        print('A.硬着头皮上')
                        print('B.撒腿就跑')
                        print('点数-2')
                        print('C.叫爸爸,求他放过你')
                        n=input()
                        if n=='A':
                              while 1==1:
                                    print('您的选择是:')
                                    print('A.让他先出手,我一只手按死他')
                                    print('结算分配点数+5')
                                    print('B.兵法云:先下手为强')
                                    print('结算分配点数-1')
                                    m=input()
                                    if m=='A':
                                          c-=f
                                          while 1==1:
                                                if c>0 and e>0:
                                                      print(-f,-d)
                                                elif c<=0 and e>0:
                                                      print('你死了')
                                                      bit=bit-math.ceil(0.5*bit)
                                                      break
                                                elif c>0 and e<=0:
                                                      print('你赢了')
                                                      bit=bit+5+math.floor(0.5*bit)
                                                      break
                                                elif c<=0 and e<=0:
                                                      print('你与敌人同归于尽')
                                                      bit=bit+3
                                                      break
                                                c-=f
                                                e-=d
                                          break
                                    elif m=='B':
                                          e-=d
                                          while 1==1:
                                                if c>0 and e>0:
                                                      print(-f,-d)
                                                elif c<=0 and e>0:
                                                      print('你死了')
                                                      bit=bit-math.ceil(0.5*bit)-1
                                                      break
                                                elif c>0 and e<=0:
                                                      print('你赢了')
                                                      bit=bit+math.floor(0.5*bit)-1
                                                      break
                                                elif c<=0 and e<=0:
                                                      print('你与敌人同归于尽')
                                                      bit=bit-1
                                                      break
                                                c-=f
                                                e-=d
                                          break
                                    else:
                                          print('输入错误,请重新输入')
                                          continue
                              break
                        elif n=='B':
                              print('n您激发潜能,跑得比狗还快')
                              print('点数-2')
                              break
                        elif n=='C':
                              print('作者对您说:')
                              print('您真没点骨气')
                              print('叫100声爸爸就放过你')
                              k=0
                              while k<=100:
                                    k+=1
                                    print('爸爸',end=' ')
                              print()
                              print('您圆润的离开了')
                              break
                        else:
                              print('输入错误,请重新输入')
                              continue
                  if random.randint(1,1000)==50:
                        print('您走了狗屎运')
                        print('您彩票中大奖')
                        print('奖励500点')
                        bit+=500
                        print('您剩余分配点数%d'%(bit))
                  if random.randint(1,10000)==50:
                        print('您走了狗屎运')
                        print('您彩票中大奖')
                        print('奖励5000点')
                        bit+=5000
                        print('您剩余分配点数%d'%(bit))
                  if random.randint(1,10)==5:
                        print('您掉进粪坑')
                        print('扣除1点')
                        bit-=1
                        print('您剩余分配点数%d'%(bit))
                  if random.randint(1,100)==5:
                        print('您参加厨神大赛')
                        print('您成为评委')
                        print('您遇见了俞涛')
                        print('您吃了一部粪')
                        print('全属性下降20%')
                        bit=bit-math.ceil(0.2*bit)
                        print('您剩余分配点数%d'%(bit))
                  if random.randint(1,100)==50:
                        problems=['请问圆台侧面积公式,用a1,a2,l,x表示,x为π,a1,a2分别为上下圆的半径','请问圆台体积公式,用a1,a2,h,x表示,x为π,a1,a2分别为上下圆的半径']
                        answers=['x(a1+a2)l','x(a1**2+a2**2+a1*a2)h/3']
                        p=random.randint(1,2)-1
                        print('接下来玩个小游戏')
                        print(problems[p])
                        m=input()
                        if m==answers[p]:
                              print('回答正确')
                              print('点数翻倍')
                              bit*=2
                        else:
                              print('回答错误')
                        print('您剩余分配点数%d'%(bit))
                  if random.randint(1,10)==5:
                        i=random.randint(1,numnames)-1
                        k1=int(random.uniform(0.8*bit,1.5*bit))
                        k2=int(random.uniform(0.8*bit,1.5*bit))
                        print('BOSS关')
                        while 1==1:
                              print('请输入血量,力量点数(必须为整数),您现在有%d点'%(bit))
                              print('血量')
                              a=input()
                              print('力量')
                              b=input()
                              c=int(a)
                              d=int(b)
                              if c+d==bit:
                                    print('血量',end=' ')
                                    print(c)
                                    print('力量',end=' ')
                                    print(d)
                                    break
                              else:
                                    print('分配点数错误,请重新分配')
                                    continue
                        e=k1
                        f=k2
                        print('您遇见了一个',end='')
                        print(name[i])
                        print('综合战斗力%d,血量%d,力量%d'%(e+f,e,f))
                        print('您的选择是:')
                        print('A.让他先出手,我一只手按死他')
                        print('结算分配点数+100')
                        print('B.不讲武德,先下手为强')
                        print('结算分配点数-1')
                        n=input()
                        if n=='A':
                              c-=f
                              while 1==1:
                                    if c>0 and e>0:
                                          print(-f,-d)
                                    elif c<=0 and e>0:
                                          print('你死了')
                                          bit=bit-math.ceil(0.2*bit)
                                          break
                                    elif c>0 and e<=0:
                                          print('你赢了')
                                          bit=bit+100+math.floor(2*bit)
                                          break
                                    elif c<=0 and e<=0:
                                          print('你与敌人同归于尽')
                                          bit=bit+100
                                          break
                                    c-=f
                                    e-=d
                        elif n=='B':
                              e-=d
                              while 1==1:
                                    if c>0 and e>0:
                                          print(-f,-d)
                                    elif c<=0 and e>0:
                                          print('你死了')
                                          bit=bit-math.ceil(0.2*bit)-1
                                          break
                                    elif c>0 and e<=0:
                                          print('你赢了')
                                          bit=bit-1+math.floor(2*bit)
                                          break
                                    elif c<=0 and e<=0:
                                          print('你与敌人同归于尽')
                                          bit=bit-1
                                          break
                                    c-=f
                                    e-=d
                        else:
                              print('您输入错误')
                              print('直接被BOSS拍死')
                              bit=bit-math.ceil(0.2*bit)
                        print('您剩余分配点数%d'%(bit))
                  if random.randint(1,5)==2:
                        recycle=1
                        ones=[]
                        twos=[]
                        threes=[]
                        fours=[]
                        while recycle<=500:
                              thing=random.randint(1,4)
                              print(thing,end=' ')
                              recycle+=1
                              if thing==1:
                                    ones.append(thing)
                              elif thing==2:
                                    twos.append(thing)
                              elif thing==3:
                                    threes.append(thing)
                              else:
                                    fours.append(thing)
                        print()
                        ones=len(ones)
                        twos=len(twos)
                        threes=len(threes)
                        fours=len(fours)
                        problem=random.randint(1,4)
                        print('请问有多少个',end='')
                        print(problem)
                        if problem==1:
                              answer=ones
                        if problem==2:
                              answer=twos
                        if problem==3:
                              answer=threes
                        if problem==4:
                              answer=fours
                        m=float(input())
                        if m==answer:
                              print('回答正确')
                              print('点数翻倍')
                              bit*=4
                        else:
                              print('回答错误')
                        print('您剩余分配点数%d'%(bit))
            elif chose=='A':
                  savetxt()
                  break
            else:
                  print('请重新输入')
                  continue
      else:
            print('你输了')
            break
print('game over')

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值