今天探討了下關於python的一個練習剪刀石頭布,可能程序還是多少有些不足,歡迎各位批評指正:
代碼如下:
import random
def main():
#將玩家和機器視為兩個參量,機器產生隨機數1-3,代表着'1':'石頭','2':'剪刀','3':'布'
#然后玩家可以輸入進行模擬比賽了
print('*******************begin*******************')
#先設置一個空表以及初始化infos
player_info = []
player_score = 0
infos = {'1':'石頭','2':'剪刀','3':'布'}
while True:
#控制程序可以一直比賽下去
computer = str(random.randint(1,3))
player = input('請選擇:1-石頭,2-剪刀,3-布:')
if player not in ['1','2','3']:
print('輸入有誤,請重新輸入:')
continue
else:
ret = (player,computer)
player_info.append(ret)
if ret==('1','2') or ret==('2','3') or ret==('3','1'):
print('玩家贏了')
player_score += 1
elif player == computer:
print('平局')
else:
print('機器贏了')
player_score -= 1
print('對戰雙方結果:玩家:%s,機器;%s'%(infos[player],infos[computer]))
#設置結束條件
choice = input('\n是否繼續游戲?(yes/no):')
if choice=='no':
break
elif choice=='yes':
continue
else:
#這里還有優化的空間,后面補充如何讓其跳轉到——是否繼續游戲
print('輸入有誤!')
continue
print('*******************end*******************')
index=1
print('玩家\t\t機器\n')
for m,n in player_info:
print('%s\t\t%s'%(infos[m],infos[n]))
print('總分為:%s'%player_score)
main()#此處調用
運行結果如下:
*******************begin*******************
請選擇:1-石頭,2-剪刀,3-布:1
平局
對戰雙方結果:玩家:石頭,機器;石頭
是否繼續游戲?(yes/no):yesw
輸入有誤!
請選擇:1-石頭,2-剪刀,3-布:3
機器贏了
對戰雙方結果:玩家:布,機器;剪刀
是否繼續游戲?(yes/no):yes
請選擇:1-石頭,2-剪刀,3-布:2
玩家贏了
對戰雙方結果:玩家:剪刀,機器;布
是否繼續游戲?(yes/no):3
輸入有誤!
請選擇:1-石頭,2-剪刀,3-布:3
機器贏了
對戰雙方結果:玩家:布,機器;剪刀
是否繼續游戲?(yes/no):no
*******************end*******************
玩家 機器
石頭 石頭
布 剪刀
剪刀 布
布 剪刀
總分為:-1
說明:部分內容來源於網絡學習
