如何循环工作?我在这做错了什么?刽子手游戏

时间:2013-03-26 12:06:38

标签: python list turtle-graphics

from turtle import*
from random import*

def joonista_mees(valede_pakkumiste_arv):
    if valede_pakkumiste_arv == 1:
        ht()
        up()
        right(90)
        forward(150)
        right(90)
        forward(30)
        right(180)
        down()
        forward(200)
        back(170)
        left(90)
        forward(150)
        right(90)
        forward(100)
        right(90)
    if valede_pakkumiste_arv == 2:
        forward(15)
        right(90)
        circle(15)
        left(90)
        up()
        forward(30)
        down()
    if valede_pakkumiste_arv == 3:
        forward(45)
        backward(45)
        right(45)
        forward(20)
        backward(20)
        left(90)
    if valede_pakkumiste_arv == 4:
        forward(20)
        backward(20)
        right(45)
        forward(45)
        right(30)
    if valede_pakkumiste_arv == 5:
        forward(45)
        backward(45)
        left(60)
    if valede_pakkumiste_arv == 6:
        forward(45)
        backward(45)
        right(30)
        up()
        backward(67)
    if valede_pakkumiste_arv == 7:
        right(90)
        forward(3)
        right(45)
        down()
        forward(3)
        backward(6)
        forward(3)
        right(90)
        forward(3)
        backward(6)
        forward(3)
        right(45)
        up()
        forward(6)
        left(45)
        down()
        forward(3)
        backward(6)
        forward(3)
        right(90)
        forward(3)
        backward(6)

asjad=["arvuti", "pliit", "ideed", "piimakokteil", "pilvelõhkuja", "saun", "mikrolaineahi",
       "vannituba", "niidumets", "lamminiit", "paber",]
s6na = choice(asjad)
print("Sa pead ühe sõna ära arvama.\nSul on selleks 7 võimalust\nSõna pikkus on "+str(len(s6na))+".")
s6na_pikkus = len(s6na)
max_valede_pakkumiste_arv = 7
proovitud_t2hed = ""
pakkumiste_arv_6ige = 0
valede_pakkumiste_arv = 0
arvamiste_arv_kokku = 0

while (valede_pakkumiste_arv != max_valede_pakkumiste_arv) and (pakkumiste_arv_6ige != s6na_pikkus):
    t2ht = input("Paku täht:")
    t2ht.strip().upper()
    print("Pakkusid tähte '"+t2ht+"'.")
    if len(t2ht) == 1 and t2ht.isalpha():
        if proovitud_t2hed.find(t2ht) != -1:
            print("Sa oled juba seda tähte '" + t2ht + "' juba valinud.")
        elif s6na.count(t2ht) >= 1:
            print("See täht '" + t2ht + "' on selles sõnas olemas.")
            proovitud_t2hed += t2ht
            pakkumiste_arv_6ige += int(s6na.count(t2ht))
            arvamiste_arv_kokku += 1
        else:
            print("See täht '" + t2ht + "' ei ole selles sõnas olemas.")
            proovitud_t2hed += t2ht
            valede_pakkumiste_arv += 1
            joonista_mees(valede_pakkumiste_arv)
            arvamiste_arv_kokku += 1
else:
    print("Sa pead kirjutama ainult ühe tähe.")

for t2ht in s6na:
    if t2ht in proovitud_t2hed:
        print(t2ht)
    else:
        print("_")


print("\nSeni proovitud tähed: " + proovitud_t2hed + ".\n")

if valede_pakkumiste_arv == max_valede_pakkumiste_arv:
    print("Mäng läbi!")
    break
if pakkumiste_arv_6ige == s6na_pikkus:
    print("\nArvasid kõik tähed selles sõnas ära.\nSee sõna oli '"+s6na+"'.")
    break

input("\nVajuta ENTER, et väljuda...")

这是我编程课程的项目。显然,它已按预期完成并正常工作,但存在一个小问题。顺便说一下这是刽子手,你可能知道这个游戏。所以,它在运行时看起来像这样......它是爱沙尼亚语,但我希望你能理解,因为我不想翻译它。 s6na = word,t2ht = letter,proovitud_t2hed = trying_letters

Sa pead ühe sõna ära arvama.
Sul on selleks 7 võimalust
Sõna pikkus on 9.
Paku täht:l
Pakkusid tähte 'l'.
See täht 'l' ei ole selles sõnas olemas.
_
_
_
_
_
_
_
_
_

Seni proovitud tähed: l.

Paku täht:n
Pakkusid tähte 'n'.
See täht 'n' on selles sõnas olemas.
n
_
_
_
_
_
_
_
_

Seni proovitud tähed: ln.

但我希望它看起来像这样。

n _ _ _ _ _ _ _ _

我是Python新手,所以请帮我解决这个问题。我只是不喜欢这种方式的外观,而且需要太多空间。

1 个答案:

答案 0 :(得分:3)

您需要告诉print在每个打印行之后使用空格而不是换行符:

if t2ht in proovitud_t2hed:
    print(t2ht, end=' ')
else:
    print("_", end=' ')
print()

在末尾添加额外print()以打印最终换行符。

或者,将连接的字符串传递给print()

print(' '.join(t2ht if t2ht in proovitud_t2hed else '_' for t2ht in s6na))