python代碼實(shí)現(xiàn)猜拳小游戲
本文實(shí)例為大家分享了python代碼實(shí)現(xiàn)猜拳小游戲的具體代碼,供大家參考,具體內(nèi)容如下
游戲?qū)崿F(xiàn)具體功能
原有的用戶登錄的信息均能保存在txt文件里,注冊的信息也能保存在txt里面格式如下:
便于之后轉(zhuǎn)換成列表字典形式添加注冊數(shù)據(jù)
用戶的猜拳記錄也能保存在txt中并以如下格式顯示
格式如下:
具體Python代碼:
#-*- coding=utf8 -*-# @author:sololi# date: 2020/10/24# 文件說明 :# 123文件存放 用戶信息 456 文件存放猜拳結(jié)果import sysfff= open(’123’,'r+',encoding='utf8')shuju=[]a=[]b=[]c=[]aa={}username=0for line in fff.readlines(): line=line.strip(’n’) a= line.split(’ ’) i=0 while i<len(a): b=a[i].split(’,’) i+=1 j=0 while j<len(b): if b==' ': break c=b[j].split(’:’,1) aa[c[0]]=c[1] i+=1 j+=1 shuju.append(aa.copy()) #將數(shù)據(jù) 轉(zhuǎn)換成列表字典形式便于后面登錄與注冊存放數(shù)據(jù)(copy是為了防止添加是數(shù)據(jù)類型不同出錯(cuò))fff.close()print('#######################')print('歡迎進(jìn)入猜拳游戲')print('#######################')denglu=input('登錄輸入1,注冊輸入2') #登錄程序if denglu=='1' : while True: username = input('請輸入用戶名') jg1= 0 i = 0 while(i<len(shuju)): if (username == shuju[i]['用戶名']): print('用戶名正確') jg1=1 break i+=1 if(jg1!=1): print('用戶名錯(cuò)誤') elif (jg1 == 1): break while True: password = input('請輸入密碼') jg2=0 i = 0 while(i<len(shuju)): if (password == shuju[i]['密碼']): print('密碼正確') jg2=1 break i+=1 if(jg2!=1): print('密碼錯(cuò)誤') elif(jg2==1): breakelif denglu=='2' : while True: username = input('請輸入注冊的用戶名') jg3 = 0 i = 0 while (i < len(shuju)): if (username == shuju[i]['用戶名']): print('用戶名已經(jīng)存在') jg3 = 1 break i += 1 if(jg3 == 0): password = input('請輸入注冊的密碼') print('注冊成功') print('登錄成功') fff = open('123', mode=’a+’, encoding='utf8') fff.seek(2) fff.write('用戶名:{},密碼:{}n'.format(username, password)) fff.close() breakelse: print('輸入有誤,結(jié)束登錄') sys.exit(0)while True: #猜拳游戲程序 xuanzhe = (input('進(jìn)行游戲1n顯示信息2n退出游戲3')) if xuanzhe=='1': z=0.0 c=0.0 import random while True: guess=random.randint(1,3) num=int(input('選擇石頭(1)/剪刀(2)/布(3)')) if (num==1 and guess==2) or (num==2 and guess==3) or (num==3 and guess==1): print('勝') c=c+1 elif num ==guess: print('平') elif(num==1 and guess==3) or (num==2 and guess==1) or (num==3 and guess==2): print('負(fù)') else: print('輸入有誤') continue jieguo=input('是否繼續(xù)游戲,輸入任意退出游戲') z = z + 1 if jieguo=='是': continue else: break kd=((c/z)) print(’總數(shù){:.0f}’ ’勝率:{:.2%}’.format(z,kd)) f=open('456',mode=’a+’,encoding='utf8') f.write('用戶名:{},總數(shù):{:.0f},勝率:{:.2%}n'.format(username,z, kd)) f.close() elif xuanzhe=='2': f = open('456','r+',encoding='utf8') res = f.read() print(res) f.close() elif xuanzhe=='3': break else: print('輸入有誤請重新輸入')print('歡迎再次使用猜拳游戲')
初學(xué)者作品,有錯(cuò)大神請指正
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. ASP基礎(chǔ)入門第三篇(ASP腳本基礎(chǔ))2. 詳解CSS不定寬溢出文本適配滾動(dòng)3. Python實(shí)現(xiàn)查找數(shù)據(jù)庫最接近的數(shù)據(jù)4. python中if嵌套命令實(shí)例講解5. 使用css實(shí)現(xiàn)全兼容tooltip提示框6. CSS自定義滾動(dòng)條樣式案例詳解7. Java之JSP教程九大內(nèi)置對象詳解(中篇)8. PHP與已存在的Java應(yīng)用程序集成9. 使用ProcessBuilder調(diào)用外部命令,并返回大量結(jié)果10. python b站視頻下載的五種版本
