python代碼實(shí)現(xiàn)猜拳小游戲
本文實(shí)例為大家分享了python代碼實(shí)現(xiàn)猜拳小游戲的具體代碼,供大家參考,具體內(nèi)容如下
游戲?qū)崿F(xiàn)具體功能
原有的用戶登錄的信息均能保存在txt文件里,注冊(cè)的信息也能保存在txt里面
格式如下:

便于之后轉(zhuǎn)換成列表字典形式添加注冊(cè)數(shù)據(jù)
用戶的猜拳記錄也能保存在txt中并以如下格式顯示
格式如下:

具體Python代碼:
#-*- coding=utf8 -*-
# @author:sololi
# date: 2020/10/24
# 文件說(shuō)明 :
# 123文件存放 用戶信息 456 文件存放猜拳結(jié)果
import sys
fff= open('123',"r+",encoding="utf8")
shuju=[]
a=[]
b=[]
c=[]
aa={}
username=0
for 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)換成列表字典形式便于后面登錄與注冊(cè)存放數(shù)據(jù)(copy是為了防止添加是數(shù)據(jù)類型不同出錯(cuò))
fff.close()
print("#######################")
print("歡迎進(jìn)入猜拳游戲")
print("#######################")
denglu=input("登錄輸入1,注冊(cè)輸入2") #登錄程序
if denglu=="1" :
while True:
username = input("請(qǐng)輸入用戶名")
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("請(qǐng)輸入密碼")
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):
break
elif denglu=="2" :
while True:
username = input("請(qǐng)輸入注冊(cè)的用戶名")
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("請(qǐng)輸入注冊(cè)的密碼")
print("注冊(cè)成功")
print("登錄成功")
fff = open("123", mode='a+', encoding="utf8")
fff.seek(2)
fff.write("用戶名:{},密碼:{}\n".format(username, password))
fff.close()
break
else:
print("輸入有誤,結(jié)束登錄")
sys.exit(0)
while True: #猜拳游戲程序
xuanzhe = (input("進(jìn)行游戲1\n顯示信息2\n退出游戲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("輸入有誤請(qǐng)重新輸入")
print("歡迎再次使用猜拳游戲")
初學(xué)者作品,有錯(cuò)大神請(qǐng)指正
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python中Arrow庫(kù)的時(shí)間操作技法總結(jié)
Arrow是一個(gè)功能強(qiáng)大、易用且具有優(yōu)雅設(shè)計(jì)的Python日期時(shí)間庫(kù),它建立在Python的datetime模塊之上,旨在彌補(bǔ)datetime模塊在處理日期時(shí)間時(shí)的一些不足之處,下面我們就來(lái)了解一下Arrow庫(kù)的常見(jiàn)時(shí)間操作吧2023-12-12
Python3.6連接Oracle數(shù)據(jù)庫(kù)的方法詳解
這篇文章主要介紹了Python3.6連接Oracle數(shù)據(jù)庫(kù)的方法,較為詳細(xì)的分析了cx_Oracle模塊安裝及Python3.6使用cx_Oracle模塊操作Oracle數(shù)據(jù)庫(kù)的具體操作步驟與相關(guān)注意事項(xiàng),需要的朋友可以參考下2018-05-05
Python requests模塊session代碼實(shí)例
這篇文章主要介紹了Python requests模塊session代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04
Python實(shí)現(xiàn)的KMeans聚類算法實(shí)例分析
這篇文章主要介紹了Python實(shí)現(xiàn)的KMeans聚類算法,結(jié)合實(shí)例形式較為詳細(xì)的分析了KMeans聚類算法概念、原理、定義及使用相關(guān)操作技巧,需要的朋友可以參考下2018-12-12
Python Pygame實(shí)戰(zhàn)之塔防游戲的實(shí)現(xiàn)
這篇文章主要介紹了如何利用Python中的Pygame模塊制作簡(jiǎn)單的塔防小游戲,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起動(dòng)手試一試2022-03-03
django數(shù)據(jù)模型中null和blank的區(qū)別說(shuō)明
這篇文章主要介紹了django數(shù)據(jù)模型中null和blank的區(qū)別說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-09-09
詳解Python常用標(biāo)準(zhǔn)庫(kù)之os模塊與shutil模塊
os系統(tǒng)模塊與shutil文件操作模塊是Python常用的標(biāo)準(zhǔn)庫(kù),本文將通過(guò)示例詳細(xì)講解一下二者的使用,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-06-06

