1

私は趣味のプロジェクトに取り組んでいます。Python でハングマン ゲームを作ろうとしています。これまでのところ、すべてがうまく機能しています。1つだけ問題があります。単語に含まれる文字を 2 回入力すると、2 番目の文字が表示されません。string.find メソッドと string.count メソッドをいじってみましたが、役に立ちませんでした。誰かが私がこれを行う方法を知っていますか? 私は困惑しています。

#!bin/bash/python

import os
import time

word = 'megalopolis'
l = len(word)
list = []
n=0
while n!=l:
    list.append('-')
    n+=1
os.system('cls' if os.name=='nt' else 'clear')
print list

i=3

while i!=0:
    x = raw_input('Enter a letter: ')
    if x in word and x!='':
        print 'Good choice!'
        count=word.count(x)
        loc=word.find(x)
        print count 
        print loc 
        list[loc]=x
        os.system('cls' if os.name=='nt' else 'clear')
        if '-' not in list:
            break
        print list
    else:
        print 'Sorry...'
        i-=1
        if i==2:
            print 'You have '+`i`+' more chances.'
        if i==1:
            print 'You have '+`i`+' more chance!'
        time.sleep(1)
        os.system('cls' if os.name=='nt' else 'clear')
        print list

if '-' not in list:
    print 'YOU WIN!!'
else:
    print 'GAME OVER!!'

x = raw_input('press enter')
4

3 に答える 3

1

このSOの質問はあなたのためにそれをカバーするはずです:

Python の文字列内で複数の文字列を見つける

1 番目の文字から 2 番目の文字を簡単に形成できることを考えると、個々の文字に対しても文字列と同じように機能するはずです。

于 2013-08-16T14:50:48.920 に答える
0

だから結局、私はこのようにすることになりました:

    if x in word and x!='':

        count=word.count(x)
        loc=0
        while count==1 or count>1:
            loc=word.find(x,loc)
            list[loc]=x
            loc+=1
            count-=1  
        print 'Good choice!'

助けてくれてありがとう。私は確かに何かを学びました。

于 2013-08-17T12:31:43.623 に答える