Pythonで実現した「石、はさみ、布」
1994 ワード
需要:1つの“石、はさみ、布”のゲームを设计して、时にはまた“Rochambeau”と呼ばれて、あなたは小さい时游んだことがあるかもしれなくて、以下は规则です.あなたとあなたの相手は、同じ時間に特定のジェスチャーをして、次のジェスチャーをしなければなりません:石、ハサミ、布.勝者は次のルールから生まれ、このルール自体はパラドックスである.(a)布包石(b)石がハサミを割り,(c)ハサミが布を切る.あなたのコンピュータのバージョンでは、ユーザーは彼女/彼のオプションを入力し、コンピュータはランダムなオプションを探して、それからあなたが
勝者か引き分けかを決めるプログラムです注意:最良のアルゴリズムはif文をできるだけ少なく使用することである.
かつてjavaバージョンを実現したことがあるが、その実現方式はEnum配布によって実現され、その実現方式は柔軟性が比較的強いが、コード量が多い.今pythonを勉强しているので、pythonで简単なバージョンを実现しました.コードの数は明らかに减りました.
このプログラムのifの使用数は私から見れば少ないはずです.
勝者か引き分けかを決めるプログラムです注意:最良のアルゴリズムはif文をできるだけ少なく使用することである.
かつてjavaバージョンを実現したことがあるが、その実現方式はEnum配布によって実現され、その実現方式は柔軟性が比較的強いが、コード量が多い.今pythonを勉强しているので、pythonで简単なバージョンを実现しました.コードの数は明らかに减りました.
'''
demonstrate Stone, Stainless, Paper game
Created on 2012-11-1
@author: Eric
'''
import random;
#elementA-->DRAW WIN LOST
COMPETE_RESULT = {"Stone":["Stone", "Stainless", "Paper"],
"Stainless":["Stainless", "Paper", "Stone"],
"Paper":["Paper", "Stone", "Stainless"]};
SIGN = {0:"Stone", 1:"Stainless", 2:"Paper"}
RESULTS = {0:"DRAW", 1:"WIN", 2:"LOST"};
def rochambeauGame():
print('''0:STONE
1:STAINLESS
2:Paper
3:quit
''');
while True:
userSign = input("please input your userSign number:");
if int(userSign) in (1, 2, 3, 0):
if userSign == 0:
exit();
else:
userSignResults = COMPETE_RESULT[SIGN[int(userSign)]];
pcSign = SIGN[int(genereteRandomPCSign())];
print("User Sign:" + SIGN[int(userSign)] + " PC Sign:" + pcSign + "
####result is: user " + RESULTS[userSignResults.index(pcSign)]);
else:
print("please input correctly order");
#generate a random number,[0,2]
def genereteRandomPCSign():
return random.randrange(3);
if __name__ == '__main__':
rochambeauGame();
このプログラムのifの使用数は私から見れば少ないはずです.