Python 石頭剪子布

2021-07-23 06:48:48 字數 3932 閱讀 2109

學以致用,這一直是對自己的要求,技術自嘆不如人,還是好好搬磚吧。

本次主要是實現判斷邏輯,圖形介面的,本人對web之類的不了解,暫時在需求之外。

需求如下:

1:可連續玩

2:人機大戰

環境:os: windows10 

python:3.4.3

**如下:

# -*— encoding = utf-8 -*-  

import sys  

import string  

import random  

# date: 2016-9-28  

menudict =  

# compare both choice  

def cpmresult(opt):  

print("-" * 10)  

print("你的選擇: {}".format(menudict[opt]))  

computer_choice = random.randrange(1, 4)  

print("電腦的選擇: {}".format(menudict[computer_choice]))  

if opt == computer_choice:  

print("-->比賽結果: 平局")  

elif (opt>computer_choice and opt - 1 == computer_choice) or (opt+2==computer_choice):  

print("-->比賽結果: 你贏")  

else:  

print("-->比賽結果: 電腦贏")  

print("-" * 10)  

# make sure game is continue  

def iscontinueplay():  

replay = input("是否繼續[y/y,n/n]: ").strip()  

if replay in ("y", "y", "n", "n"):

if replay.lower() == "n":  

print("-->你選擇結束遊戲!")  

sys.exit(0)  

else:

rsfgame()

else:  

print("invalid choice, try again.")  

iscontinueplay()

# game construcation

def rsfgame():  

while true:  

propt = input("""

這是乙個石頭剪子布的遊戲,請根據提示選擇:

1.剪子

2.石頭

3.布

0.退出遊戲

請選擇[0--3]: """).strip()  

if propt in ("0", "1", "2", "3"):  

opt = int(propt)  

if opt == 0:  

print("-->你選擇結束遊戲!")  

sys.exit(0)  

else:  

cpmresult(opt)  

iscontinueplay()  

else:  

print("invalid option. try again.")  

if __name__ == '__main__':  

rsfgame()

測試結果:

這是乙個石頭剪子布的遊戲,請根據提示選擇:

1.剪子

2.石頭

3.布0.退出遊戲

請選擇[0--3]: df

invalid option. try again.

這是乙個石頭剪子布的遊戲,請根據提示選擇:

1.剪子

2.石頭

3.布0.退出遊戲

請選擇[0--3]: fg

invalid option. try again.

這是乙個石頭剪子布的遊戲,請根據提示選擇:

1.剪子

2.石頭

3.布0.退出遊戲

請選擇[0--3]: f

invalid option. try again.

這是乙個石頭剪子布的遊戲,請根據提示選擇:

1.剪子

2.石頭

3.布0.退出遊戲

請選擇[0--3]: e

invalid option. try again.

這是乙個石頭剪子布的遊戲,請根據提示選擇:

1.剪子

2.石頭

3.布0.退出遊戲

請選擇[0--3]: 4

choose number out of range. try again.

這是乙個石頭剪子布的遊戲,請根據提示選擇:

1.剪子

2.石頭

3.布0.退出遊戲

請選擇[0--3]: 34

choose number out of range. try again.

這是乙個石頭剪子布的遊戲,請根據提示選擇:

1.剪子

2.石頭

3.布0.退出遊戲

請選擇[0--3]: 3

----------

你的選擇: 布

電腦的選擇: 剪子

-->比賽結果: 電腦贏

----------

是否繼續[y/y,n/n]: df

invalid choice, try again.

是否繼續[y/y,n/n]: y

這是乙個石頭剪子布的遊戲,請根據提示選擇:

1.剪子

2.石頭

3.布0.退出遊戲

請選擇[0--3]: 2

----------

你的選擇: 石頭

電腦的選擇: 布

-->比賽結果: 電腦贏

----------

是否繼續[y/y,n/n]: y

是否繼續[y/y,n/n]: y

這是乙個石頭剪子布的遊戲,請根據提示選擇:

1.剪子

2.石頭

3.布0.退出遊戲

請選擇[0--3]: 3

----------

你的選擇: 布

電腦的選擇: 剪子

-->比賽結果: 電腦贏

----------

是否繼續[y/y,n/n]: df

invalid choice, try again.

是否繼續[y/y,n/n]: sdf

invalid choice, try again.

是否繼續[y/y,n/n]: y

這是乙個石頭剪子布的遊戲,請根據提示選擇:

1.剪子

2.石頭

3.布0.退出遊戲

請選擇[0--3]: 2

----------

你的選擇: 石頭

電腦的選擇: 石頭

-->比賽結果: 平局

----------

是否繼續[y/y,n/n]: n

-->你選擇結束遊戲!

問題點總結:

1. 對於python,剛開始自學,檢視api的能力還是比較弱,意識不足。

2.此次**除錯中,關於s.isdigit(),剛開始寫成了【propt.isdigit】,輸入字元就一直報錯。最後檢視了api,原來是自己少了括號導致的。

不加的場合,當輸入字母的話,會丟擲如下異常:python valueerror: invalid literal for int() with base 10: '***'

--- over ---

石頭剪子布

題目描述 大家小時候都玩過石頭剪子布的遊戲吧,出石頭的人贏出剪子的人,出剪子的人贏出布的人,出布的人贏出石頭的人,如果兩個人出的一樣,則打平。飛燕姐姐和婷婷玩石頭剪子布的遊戲,請你寫乙個程式判斷一下誰贏了 輸入 石頭用stone表示,剪子用scissors表示,布用cloth表示 飛燕姐姐和婷婷出的...

石頭剪子布

石頭剪子布,是一種猜拳遊戲。起源於中國,然後傳到日本 朝鮮等地,隨著亞歐 的不斷發展它傳到了歐洲,到了近現代逐漸風靡世界。簡單明瞭的規則,使得石頭剪子布沒有任何規則漏洞可鑽,單次玩法比拼運氣,多回合玩法比拼心理博弈,使得石頭剪子布這個古老的遊戲同時用於 意外 與 技術 兩種特性,深受世界人民喜愛。遊...

石頭剪子布

描述 石頭剪子布,是一種猜拳遊戲。起源於中國,然後傳到日本 朝鮮等地,隨著亞歐 的不斷發展它傳到了歐洲,到了近現代逐漸風靡世界。簡單明瞭的規則,使得石頭剪子布沒有任何規則漏洞可鑽,單次玩法比拼運氣,多回合玩法比拼心理博弈,使得石頭剪子布這個古老的遊戲同時用於 意外 與 技術 兩種特性,深受世界人民喜...