admin管理员组

文章数量:1516870

苹果机

前段时间看到自己写的一篇苹果机游戏文章,发现很多问题。重新整理了一下在发出来。
代码比较初级,适合初学者,代码后都加了注解,方便同学们理解。留了一快绿色奖励彩灯功能没写,如果有兴趣的同学可以写全。有什么好的建议欢迎讨论。
代码如下,复制就能玩。

import os, time,randomclass Apple:              # 跑环图形数据def __init__(self,inte,scors=0):          # 积分 和 赢取奖金self.inte=inte                        # 原始积分self.scors=scors                      # 得分# 图库self.pict_a='''大橘子2  大铃铛2  小熊猫  大熊猫  大苹果1  小苹果  大芒果1\n 小铃铛                                             大西瓜\n大苹果4                 \033[1;31m00\033[0m                         小西瓜\n红彩金                 None                        绿彩金\n小双星                                             大苹果2\n大双星                                             小橘子\n大芒果2  小芒果  大苹果3   大 77   小 77  大铃铛1  大橘子1\n  '''# 跑灯集合                                      self.pic = ['大苹果1','小苹果','大芒果1','大西瓜','小西瓜','绿彩金','大苹果2','小橘子','大橘子1','大铃铛1','小 77','大 77','大苹果3','小芒果','大芒果2','大双星','小双星','红彩金','大苹果4','小铃铛','大橘子2','大铃铛2','小熊猫','大熊猫']        def picture(self):                    # 图片素材pict = self.pict_a               # 原始图库pic = self.pic                   # 跑灯集合list_pict = []                   # 普通图list_p_h = []                    # 红彩金图list_p_l = []                    # 绿彩金图for pi in range(0,24):           # 激活目标图像list_pict.append(pict.replace(pic[pi],'\033[1;31m'+pic[pi]+'\033[0m'))  # 激活状态下的24张图集list_p_h1 = []                 # 红彩金-大四喜-激活图集pict_0 = list_pict[17].replace('None','\033[1;31m大四喜\033[0m')pict_s = pict_0for pit in (0,6,12,18):pict_s = pict_s.replace(pic[pit],'\033[1;31m'+pic[pit]+'\033[0m')list_p_h1.append(pict_0)list_p_h1.append(pict_s)list_p_h2 = []pict_0 = list_pict[17].replace('None','\033[1;31m小三元\033[0m')pict_s = pict_0for pit in (2,8,9):pict_s = pict_s.replace(pic[pit],'\033[1;31m'+pic[pit]+'\033[0m')list_p_h2.append(pict_0)list_p_h2.append(pict_s)list_p_h3 = []pict_0 = list_pict[17].replace('None','\033[1;31m大三元\033[0m')pict_s = pict_0for pit in (3,11,15):pict_s = pict_s.replace(pic[pit],'\033[1;31m'+pic[pit]+'\033[0m')list_p_h3.append(pict_0)list_p_h3.append(pict_s)list_p_h4 = []pict_s = list_pict[17].replace('None','\033[1;31m小熊猫\033[0m')list_p_h4.append(pict_s)list_p_h4.append(pict_s.replace(pic[22],'\033[1;31m'+pic[22]+'\033[0m'))list_p_h5 = []pict_s = list_pict[17].replace('None','\033[1;31m大熊猫\033[0m')list_p_h5.append(pict_s)list_p_h5.append(pict_s.replace(pic[22],'\033[1;31m'+pic[23]+'\033[0m'))list_p_h6 = []pict_s = list_pict[17].replace('None','\033[1;31m大满贯\033[0m')list_p_h6.append(pict_s)for pit in [i for i in range(0,24) if i !=5]:pict_s = pict_s.replace(pic[pit],'\033[1;31m'+pic[pit]+'\033[0m')list_p_h6.append(pict_s)list_p_h.append(list_p_h1)list_p_h.append(list_p_h2)list_p_h.append(list_p_h3)list_p_h.append(list_p_h4)list_p_h.append(list_p_h5)list_p_h.append(list_p_h6)  return  list_pict, list_p_h, list_p_ldef lut(self):                        # 跑中绿彩金时激活的随机送灯图形nbe = random.randint(1,5)lis1 = 0asb = ['大苹果1','小苹果','大芒果1','大西瓜','小西瓜','绿彩金','大苹果2','小橘子','大橘子1','大铃铛1','小 77','大 77','大苹果3','小芒果','大芒果2','大双星','小双星','红彩金','大苹果4','小铃铛','大橘子2','大铃铛2','小熊猫','大熊猫']list_a6 = []lis_nb = []while lis1 < nbe:cc=random.choice(self.asbb)if cc != '绿彩金' and cc != '红彩金':lis_nb.append(asb.index(cc))a6_B = self.a6.replace(str(cc),'<'+str(cc)+'>')list_a6.append(a6_B)self.a6 = a6_Blis1 +=1self.asbb.remove(cc)return list_a6 ,lis_nbdef stake(self,intes,name):           # 押注函数scor=input(name)if scor.isdigit():         # 必须为数字if 0<int(scor)<51 and intes>int(scor):    # 输入数字大于0小于51,且小于原始积分scor=int(scor)self.inte -= int(scor)                # 原始积分减掉输入数字elif int(scor)>50:                        # 输入数字大于50print('最多只能压50分,请押注:')       # 提示scor=input(name)                      # 重新输入scor=int(scor)self.inte -= scorelif int(scor)>intes or intes != 0:       print('积分不足,积分全压') scor=input(name)scor=intesself.inte -= scorelif intes == 0 :print('积分为零,押注失败,默认为 0')scor = 0else:scor = 0else :scor=0        return scor          # 押注数def stak_s(self):                     # 积分扣除函数global scor_1                     # 全局变量        压注积分global scor_2global scor_3global scor_4global scor_5global scor_6global scor_7global scor_8global lis_c                    # 8个压注积分集合inte = self.inte                # 当前积分lis_c = []print("积分:"+str(inte))      print('请押注:')scor_1 = self.stake(self.inte,name='苹果:  ')   # 押注苹                            scor_2 = self.stake(self.inte,name='芒果:  ')  scor_3 = self.stake(self.inte,name='橘子:  ')scor_4 = self.stake(self.inte,name='铃铛:  ')scor_5 = self.stake(self.inte,name='西瓜:  ')scor_6 = self.stake(self.inte,name='双星:  ')scor_7 = self.stake(self.inte,name='双77:  ')scor_8 = self.stake(self.inte,name='熊猫:  ')# 积分扣除self.inte -= scor_1+scor_2+scor_3+scor_4+scor_5+scor_6+scor_7+scor_8 lis_c.append(scor_1)lis_c.append(scor_2)lis_c.append(scor_3)lis_c.append(scor_4)lis_c.append(scor_5)lis_c.append(scor_6)lis_c.append(scor_7)lis_c.append(scor_8)def implement(self):                  # 重复押注函数print('是否进行上次方法押注: 回车 或 N')list = input('')if list !='n':scor_1 = lis_c[0]scor_2 = lis_c[1]scor_3 = lis_c[2]scor_4 = lis_c[3]scor_5 = lis_c[4]scor_6 = lis_c[5]scor_7 = lis_c[6]scor_8 = lis_c[7]self.inte -= scor_1+scor_2+scor_3+scor_4+scor_5+scor_6+scor_7+scor_8 else:self.stak_s()def scores (self,result):                # 得分函数 score = 0pi = self.picture()           if result == pi[0][0]:               # 大苹果赔率    激活苹果的图score += scor_1*5               if result == pi[0][6]:score += scor_1*5              if result == pi[0][12]:score += scor_1*5    if result == pi[0][18]:score += scor_1*5                 if result == pi[0][1]:              # 小苹果赔率             score += scor_1*3if  result == pi[0][4]:             # 小西瓜赔率score += scor_5*3 if  result == pi[0][7]:             # 小橘子赔率score += scor_3*3 if  result == pi[0][10]:            # 小双77赔率score += scor_7*3 if  result == pi[0][13]:            # 小芒果赔率score += scor_2*3     if  result == pi[0][16]:            # 小双星赔率score += scor_6*3 if  result == pi[0][19]:            # 小铃铛赔率score += scor_4*3 if result == pi[0][2]:              # 大芒果赔率score += scor_2*10if result == pi[0][14]:               score += scor_2*10    if result == pi[0][3]:              # 大西瓜赔率score += scor_5*20if result == pi[0][8]:              # 大橘子赔率score += scor_3*10if result == pi[0][20]:           score += scor_3*10    if result == pi[0][9]:              # 大铃铛赔率score += scor_4*10if result == pi[0][21]:         score += scor_4*10 if result == pi[0][11]:             # 大双77赔率score += scor_7*20if result == pi[0][15]:             # 大双星赔率score += scor_6*20if result == pi[0][22]:             # 小熊猫倍率score += scor_8*50if result == pi[0][23]:             # 大熊猫赔率score += scor_8*100# 绿彩金赔率集if result == pi[0][5]:               # 绿彩金score +=0# lut=self.lut()# asbb_p = [scor_1*5,scor_1*2,scor_2*10,scor_5*20,scor_5*2,0,scor_1*5,scor_3*2,scor_3*10,# scor_4*10,scor_7*2,scor_7*20,scor_1*5,scor_2*2,scor_2*10,scor_6*20,scor_6*2,0,scor_1*5,# scor_4*2,scor_3*10,scor_4*10,scor_8*50,scor_8*100# list_a6p = []# for li in lut[1]:# ccp=asbb_p[li]# list_a6p.append(int(ccp-1))# for sc in list_a6p:        # score += sc# 红彩金赔率集                                if result == pi[1][0][1]:                      # 大四喜赔率score = score+scor_1*5*4 if result == pi[1][1][1]:                      # 小三元赔率score = score+scor_2*10+scor_3*10+scor_4*10 if result == pi[1][2][1]:                      # 大三元赔率score = score+scor_5*20+scor_6*20+scor_7*20 if result == pi[1][3][1]:                      # 小熊猫赔率score += scor_8*50if result == pi[1][4][1]:                      # 大熊猫赔率score += scor_8*100if result == pi[1][5][1]:                      # 大满贯赔率score = score+scor_1*5*5+scor_1*2+scor_2*10*2+scor_2*2+scor_3*10*2+scor_3*2+scor_4*10*2+scor_4*2+scor_5*20+scor_5*2+scor_6*20+scor_6*2+scor_7*20+scor_7*2+scor_8*50+scor_8*100         return score              # 赔率def gamb (self):                      # 猜大小函数ga_inte = self.inte               # 积分ga_scors = self.scors             # 得分and_s = random.randint(1,13)      # 随机数字and_t = result.replace('\033[1;31m00\033[0m','\033[1;31m'+str(and_s)+'\033[0m')if ga_inte>0 and ga_scors>0:print('是否转移积分到得分博彩:回车/Y')bc_s=input('')if bc_s=='y':if ga_inte > ga_scors:        #  积分大于得分ga_inte -= ga_scorsga_scors = ga_scors*2elif 0 < ga_inte < ga_scors:   # 积分小于得分ga_inte = 0ga_scors += ga_inteelse:passprint("说明:1-6为小,8-13为大,7为中大小都中")print('请选择:2(大)/1(小)') dx_s=int(input())if dx_s == 1:if and_s in [i for i in range(1,7)]:   # 随机数字在1-6中ga_scors =  ga_scors*2os.system('cls')print(and_t)time.sleep(0.2)print('恭喜中奖了!')time.sleep(0.2)elif and_s == 7:                       # 随机数字等于7ga_scors =  ga_scors*2os.system('cls')print(and_t)time.sleep(0.2)print('恭喜中奖了!')time.sleep(0.2)else:ga_scors =  0os.system('cls')print(and_t)time.sleep(0.2)print('很遗憾没中!')elif dx_s == 2: if and_s in [i for i in range(8,14)]:  # 随机数字在8-13中ga_scors =  ga_scors*2 os.system('cls')print(and_t)time.sleep(0.2)print('恭喜中奖了!')   elif and_s == 7:ga_scors =  ga_scors*2 os.system('cls')print(and_t)time.sleep(0.2)print('恭喜中奖了!') else:ga_scors =  0os.system('cls')print(and_t)time.sleep(0.2)print('很遗憾没中!')else:os.system('cls')print('未猜大小放弃猜大小游戏继续')  return  ga_inte,ga_scorsdef game (self):                      # 游戏函数global resultstart = Truepi = self.picture()list =pi[0].copy()current = 0                      # 当前位置result = pi[0][0]                # 当前位置图imp = Falsewhile start:os.system('cls')if imp:if self.inte >scor_1+scor_2+scor_3+scor_4+scor_5+scor_6+scor_7+scor_8:   # 积分大于上回总压分self.implement()                                                     # 执行重复压分函数else:    self.stak_s() imp = True    else:    self.stak_s()                # 押注imp = Truerand = 0                     # 移动数ran = random.randint(1,24)   # 随机移动数# ran = 23imp +=1for i_ran in list:           # 先跑一圈os.system('cls')print(i_ran)time.sleep(0.2)for i_pict in list[:ran]:       # 跑环  rand +=1os.system('cls')         # 清屏幕(这样才能看出动画效果)print(i_pict)            # 刷图time.sleep(0.2)for pop in range(ran):       # 变动图片列表位置为当前图开头stud = list.pop(0)  list.append(stud)        current += rand              # 变动当前位置if current > 23:             # 当当前位置大于一圈时归零current -=24       result = pi[0][current-1]    # 当前变动后的位置图    if result == pi[0][5]:      # 刷到绿彩金passif result == pi[0][17]:      # 刷到红彩金rans = random.randint(0,5)for hon in pi[1][rans]:os.system('cls')print(hon)  time.sleep(0.2)result = pi[1][rans][1]score = self.scores(result) self.scors += scoreprint('')print(f'                    中的:\033[1;31m{self.pic[current-1]}\033[0m                                       得分:\033[1;31m{score}\033[0m')print(f'                    积分:\033[1;31m{self.inte}\033[0m                                         赢取积分:\033[1;31m{self.scors}\033[0m')print('')print('                    熊猫    双77    双星    西瓜       铃铛    橘子    芒果    苹果')print(f'                     {scor_8}       {scor_7}      {scor_6}       {scor_5}          {scor_4}      {scor_3}       {scor_2}      {scor_1} ')sco_k =Trueif self.scors != 0:while sco_k :print('是否比大小: 回车 或 Y')gamb_s=input('')if gamb_s=='y':gamb = self.gamb()self.inte = gamb[0]self.scors = gamb[1]print(f'      积分:\033[1;31m{self.inte}\033[0m                                         赢取积分:\033[1;31m{self.scors}\033[0m')if self.scors == 0:sco_k = False else:sco_k = False    if self.scors != 0:    print('是否提取积分: 回车 或 Y')sco=input ('') if sco == 'y':self.inte = self.inte+self.scors   # 获取中将积分self.scors = 0                     # 中间积分清零score = 0os.system('cls')print(f'      积分:\033[1;31m{self.inte}\033[0m                 赢取积分:\033[1;31m{self.scors}\033[0m               得分:\033[1;31m{score}\033[0m')else:passif self.inte <= 0:start=Falseprint('游戏结束')if self.inte>0:print('开始或结束: 回车 或 N')start_s=input('')if start_s=='n':start=Falseprint('游戏结束')else:passif __name__=='__main__':XY=Apple(1000)XY.game()

本文标签: 苹果机