2012-03-02 2 views
0

私はPythonでハングマンゲームを作ってしまいました。私はcursesを使ってみる前に愚かに保存しませんでした。 :|今、人の体は別の場所に表示されます。頭と腕は上を保持するポールの前にあり、体と脚はどこにあるべきです。ここに私のコードです。おそらく私がPythonで書いた醜いコードでしょう...Pythonとcursesが変わって表示されます

import random 
import re 
import curses 

myscreen = curses.initscr() 
myscreen.clear() 
myscreen.border(0) 
myscreen.refresh() 

f = open("/usr/share/dict/words", "r") 
c = f.read().split('\n') 
d = {1:'o', 2:'\\o/', 3:'\n  |  \\o/\n  |  |', 4:'\n  |  \\o/\n  |  |\n  | /\\'} 
w = random.choice(c).lower() 
i = 1 
j = 6 
n = [] 
t = [] 
b = "" 
l=4 
h=2 

myscreen.addstr(2,6, "--------") 
myscreen.addstr(3,6, "|") 
myscreen.addstr(3,13, "|"+b) 
for item in range(j+1): 
    myscreen.addstr(l, 2, " |\n") 
    l=l+1 

myscreen.addstr(9,2,"__________\n") 

for char in w: 
    n.append('_') 

for item in n: 
    myscreen.addstr(10, h, item,) 
    h=h+2 

myscreen.addstr(11, 2, '\n') 
myscreen.refresh() 

while n != w: 
    if not re.findall('_', ''.join(n)): 
    myscreen.clear() 
    myscreen.addstr(1,1, "You win!!\n\n") 
    myscreen.refresh() 
    break 
    myscreen.addstr(12,2,"Guess: ") 
    g = myscreen.getstr(12,9,1) 
    if 1: 
    if g in ''.join(t): 
     print "You already guessed that." 
     continue 
    if g in w: 
    k = [match.start() for match in re.finditer(re.escape(g), w)] 
    for item in k: 
     n[item]=g 
    t.append(g) 
    else: 
     if i!=5: 
     b = d[i] 
     i=i+1 
     j=j-1 
     t.append(g) 
     else: 
     myscreen.clear() 
     myscreen.addstr(1, 1, "You lose!") 
     myscreen.addstr(2, 1, "The word was %s.\n\n" % w) 
     myscreen.refresh() 
     break 
    myscreen.clear() 
    myscreen.addstr(2,6, "--------") 
    myscreen.addstr(3,6, "|") 
    myscreen.addstr(3,13, "|\n"+b) 
    l=4 
    for item in range(j): 
     myscreen.addstr(l, 6, "|\n") 
     l=l+1 

    myscreen.addstr(9,2,"__________\n") 
    l=2 
    for item in t: 
     myscreen.addstr(10, l, item) 
     l=l+2 
    l=2 
    for item in n: 
     myscreen.addstr(11, l, item) 
     l=l+2 
    myscreen.refresh() 
    else: 
    myscreen.addstr(12, 2, "Please enter a letter.") 
    myscreen.refresh() 

何が問題なのですか?

+2

ご迷惑をおかけして申し訳ございません。何が間違っているのかを教えていただけません。間違いがあります。あなたが望むことができるまで、小さな断片に分割し、テスト/リリースを実装してください。 – KevinDTimm

+0

@KevinDTimm私はエラーが出ないので、それを修正しようと数時間を費やしました。私はここに私よりも賢い人が助けになることを願っていました。 :)何が起こるか見るには、それを実行しなければなりません。あなたがしたくない場合、私はできる限り最善の方法で説明しようとします。 – CoffeeRain

答えて

0

D'oh!私はすでにそれを保持するポールを配置した後、forループを行っていたので、前のものを "上書き"しました。

関連する問題