[英]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.