简体   繁体   English

周期如何工作? 我在这里做错了什么? 子手游戏

[英]How does for-cycle work? What have I done wrong here? Hangman game

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...")

This is my project for my programming course. 这是我编程课程的项目。 Obviously, it is finished and working as expected, but there is a tiny problem. 显然,它已完成并按预期工作,但是存在一个小问题。 This is hangman by the way, you probably know this game. 顺便说一句,这是子手,您可能知道这个游戏。 And so, it looks like this when being run... It's in estonian, but I sure hope you can understand, because I don't want to translate this. 因此,它在运行时看起来像这样……是爱沙尼亚语,但是我希望您能理解,因为我不想翻译它。 s6na = word, t2ht = letter, proovitud_t2hed = tried_letters s6na =单词,t2ht =字母,proovitud_t2hed = tryd_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.

But I want it to look like this instead. 但我希望它看起来像这样。

n _ _ _ _ _ _ _ _

I am new to Python, so please help me out on this. 我是Python的新手,所以请帮助我。 I just don't like the looks of the program this way, and it takes too much space. 我只是不喜欢这种方法的外观,而且占用了太多空间。

You need to tell print to use a space instead of a newline after each printed line: 您需要告诉print在每个打印行之后使用空格而不是换行符:

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

with an extra print() at the end to print a final newline. 在末尾有一个额外的print()来打印最终的换行符。

Alternatively, pass a joined string to print() : 或者,将连接的字符串传递给print()

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM