2012-05-03 6 views
0

タイトルはほとんどすべてです。以下は私が書いた小さな日本語学習ゲームのベアボーンです。現在のループでまだ印刷されていない場合は、かなだけを印刷する必要があります。私が間違っていることは誰にも見えますか?ありがとう:)(python)appendを使用してリストに追加し、使用されていない場合にのみ値を返します。

#!/usr/bin/python 
from os  import system as cmd 
from random import choice as random 
from time import sleep 
from sys import platform 

m = ["ma", "mi", "mu", "me", "mo"] 
y = ["ya",   "yu",   "yo"] 
n = ["n"] 

def get_dict(group): 
    if group == 1: 
     return m 
    elif group == 13: 
     return y 
    elif group == 14: 
     return n 
    elif group == 15: 
     return m + y + n 

def clear(): 
    if "win" in platform: cmd("cls") 
    if "lin" in platform: cmd("clear") 

def get_kana(): 
    global kana 
    return random(kana) 

## Initiate  ## 
kana = get_dict(15) 
speed = speed() 
clear() 
print disp 
print "Please get ready!..." 
sleep(5) 

def chk_used(): 
    global used_kana 
    numlpo = 0 
    while numlpo < 50: 
     numlpo = numlpo + 1 
     kana = get_kana() 
     if kana not in used_kana: 
      used_kana = used_kana.append(kana) 
      return kana 
      break 

def main(): 
    used_kana = [] 
    while True: 
     clear() 
     print disp 
     print "Please write the following kana: \n" 
     print " " + chk_used() 
     sleep(3) 

main() 
+0

あなたはその出発の音によって分類 'dict'にカナを保存する必要があります。 –

+0

@Joel Cornett私はそれをやろうと考えていましたが、私はカスタムグループを呼び出すときにリストを扱う方がずっと簡単だと思っていました。けれども提案をありがとう:) – abkai

+0

'speed()'は定義されていません。 –

答えて

0

カップルの事:一つだけ問題があります

used_kana = used_kana.append(kana) 

chk_usedでは、ラインを持っています。 list.append()はNoneを返します。これを行うたびに、kanaused_kanaに追加していますが、used_kanaの値をNoneに設定しています。あなたが機能

def main(): 
    used_kana = [] 

used_kanaを定義しかし、あなたは世界的にそれを参照してみてください

used_kana.append(kana) 

で十分です。 Pythonはグローバル変数を探し、見つからないでしょう。

def chk_used(): 
    global used_kana 

ソリューション:chk_used()最後に

def chk_used(usedCharacters): 
    ... 

def main(): 
    used_kana = [] 
     ... 
     print " " + chk_used(used_kana) 

への引数としてかな使用 パス:

if kana not in used_kana: 
     used_kana.append(kana) 
     return kana 
     break #there's no reason for this break. the return on the line before exits the function, your code will never ever execute this line. 
+0

ありがとうございました!それは非常に徹底的で、私が持っていたすべての問題を解決したようです!私は後で余分なセキュリティとして休憩を追加しましたが、必ずしも何もしないと理解しています。また、プログラムの機能を変更するのに役立つ10〜15の追加機能を削除したため、速度は定義されていません。あなたの助けに感謝のヒープ!私は今追加を理解しています:) – abkai

関連する問題