2016-03-28 9 views
1

"ターミナルハック"ゲームを作ろうとしていますが、私はどこかで立ち往生しています。
これは私のコードは、現在に見えるものです:私は8つの単語のリストを作成し、各単語の数を与えるためにそれを列挙しようとしているリストのランダム置換の生成

import random 

candidateWords = ['AETHER', 'BADGED', 'BALDER', 'BANDED', 'BANTER', 'BARBER'] #etc, etc 

def wordlist(): 
    for index, item in enumerate(random.sample(list(candidateWords), 8)): 
     print(index, ") ", item, sep='')   
one = random.choice(candidateWords) 
print(one) 

print("Welcome to the Guess-The-Word Game.\nThe Password is one of these words:") 

。その後、8つの単語から無作為に単語を選択して回答にする必要がありますが、どのようにすればよいか分かりません。

random.sample()random.choice()を使いたいです。

+0

注:wordlist()から(ワード)を取り除くことを忘れていました。それを無視してください:)と "one = random.choice(候補単語)プリント(1)"の部分は、私が望むことをするのは私の推測です。それはうまくいきません – John

答えて

1

random.sample()の2番目の引数は、< =最初の引数の長さにする必要があります。それ以外の場合は、例外が生成されます。
残りのコードは問題ないようです。

import random 

candidateWords = ['AETHER', 'BADGED', 'BALDER', 'BANDED', 'BANTER', 'BARBER'] 

candidateWordsShuffled = random.sample(candidateWords, min(len(candidateWords), 8)) 


def wordlist(): 
    for index, item in enumerate(candidateWordsShuffled): 
     print(index, ") ", item, sep='') 

one = random.choice(candidateWordsShuffled) 
print(one) 

print("Welcome to the Guess-The-Word Game.\nThe Password is one of these words:") 
wordlist() 
+0

返信ありがとうございますが、今はその選択肢が1つの単語だけを印刷し、他の8つの単語は印刷しないように見えます(8単語から1単語を選択して印刷する必要があるためです)。 ) – John

+0

うーん、 'wordlist()'関数はランダムリストを出力しないのですか? –

+0

ああ、申し訳ありませんが、最後にwordlist()を貼り付けるのを忘れてしまいました。しかし、それは "candidateWords"から100ワードを表示します。あなたはそれから8ワードだけを取得する方法を知っていますか?(forループに8を入力しますか? – John

関連する問題