Pythonで実現した「石、はさみ、布」

1994 ワード

需要:1つの“石、はさみ、布”のゲームを设计して、时にはまた“Rochambeau”と呼ばれて、あなたは小さい时游んだことがあるかもしれなくて、以下は规则です.あなたとあなたの相手は、同じ時間に特定のジェスチャーをして、次のジェスチャーをしなければなりません:石、ハサミ、布.勝者は次のルールから生まれ、このルール自体はパラドックスである.(a)布包石(b)石がハサミを割り,(c)ハサミが布を切る.あなたのコンピュータのバージョンでは、ユーザーは彼女/彼のオプションを入力し、コンピュータはランダムなオプションを探して、それからあなたが
勝者か引き分けかを決めるプログラムです注意:最良のアルゴリズムは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の使用数は私から見れば少ないはずです.