-1

not_com_wordパーツが推測された文字を一緒に印刷しない理由がわかりません。推測関数の各ループで、not_com_wordは未完成の単語を表し、推測された文字と左の隠し文字を一緒に表示する必要があります。

# Country Guess game produced by Farzad YZ
import random
import string
print '**Guessing game [Country version]---Powered by Farzad YZ**'
seq = ['iran','iraq','england','germany','france','usa','uruguay','pakistan']
choice = random.choice(seq)
length = len(choice)
print 'The hidden word is:',length*'*'
def guess():
    while 1:
        not_com_word = ''
        i = raw_input('Guess the character in turn: ')
        if i == choice[g]:
            print 'That is right!'
            not_com_word = not_com_word + i
            print 'Guessed till here ->',not_com_word,((length-g-1)*'*')
            break
        else:
            print 'Wrong! Try again.'
            continue

g = 0
while g < length:
    guess()
    if g == length-1:
        print '''Congratulations! You guessed the country finally.
The country was %s.''' %choice
    g = g+1
4

2 に答える 2

1

推測が呼び出されるたびに、var not_com_word が '' に設定されます。これを修正するには、関数の外に移動し、グローバルでアクセスできるようにします。

....    
not_com_word = ''

def guess():
    global not_com_word
....
于 2013-09-17T15:43:51.660 に答える
0

グローバル変数を使用する必要のない、別のサンプル実装を次に示します。

#! /usr/bin/python2.7

import random

countries = ['iran','iraq','england','germany','france','usa','uruguay','pakistan']

def guess(country):
    guessed = ''
    print 'The hidden word is:', len(country) * '*'
    while country:
        c = raw_input('Guess the character in turn: ')
        if c == country[0]:
            guessed += c
            country = country[1:]
            print 'That is right!'
            print 'Guessed until now:', guessed + len(country) * '*'
            continue
        print 'Wrong! Try again.'
    print 'You guessed', guessed

guess(random.choice(countries))
于 2013-09-17T17:07:53.363 に答える