學以致用,這一直是對自己的要求,技術自嘆不如人,還是好好搬磚吧。
本次主要是實現判斷邏輯,圖形介面的,本人對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表示 飛燕姐姐和婷婷出的...
石頭剪子布
石頭剪子布,是一種猜拳遊戲。起源於中國,然後傳到日本 朝鮮等地,隨著亞歐 的不斷發展它傳到了歐洲,到了近現代逐漸風靡世界。簡單明瞭的規則,使得石頭剪子布沒有任何規則漏洞可鑽,單次玩法比拼運氣,多回合玩法比拼心理博弈,使得石頭剪子布這個古老的遊戲同時用於 意外 與 技術 兩種特性,深受世界人民喜愛。遊...
石頭剪子布
描述 石頭剪子布,是一種猜拳遊戲。起源於中國,然後傳到日本 朝鮮等地,隨著亞歐 的不斷發展它傳到了歐洲,到了近現代逐漸風靡世界。簡單明瞭的規則,使得石頭剪子布沒有任何規則漏洞可鑽,單次玩法比拼運氣,多回合玩法比拼心理博弈,使得石頭剪子布這個古老的遊戲同時用於 意外 與 技術 兩種特性,深受世界人民喜...