print ("Witaj w WISIELCU!")
print("wprowadz slowo ktore mamy odgadnac")
slowo=str(input())
u=0
xd=0
for c in range(35):
print(" ")
xd+=1
if xd == 17:
print(" ================WISIELEC===============")
dlugoscslowa = len(slowo)
pustemiejsca = "_ "*dlugoscslowa
szanse = 10
print (pustemiejsca, "[", dlugoscslowa, "liter ]")
print ("Podaj literki by zgadnąć słowo.\n")
while True:
litera = str(input())
if litera in slowo:
for i in range(len(slowo)):
if litera == slowo[i]:
pustemiejsca_list = list(pustemiejsca)
pustemiejsca_list[u] = slowo[i]
pustemiejsca = "".join(pustemiejsca_list)
u+=2
if not "_ " in pustemiejsca:
print ("Wygrałeś, liczba pozostałych szans", szanse)
("Szukanym słowem było: "+slowo)
break
else:
szanse -= 1
print ("Zła literka. Tracisz szansę (masz obecnie:", szanse, "szans)")
print (pustemiejsca)
0
0
Chodzi mi tutaj o to, że jak wezmiemy jakis wyraz, który ma dublujące się litery np. POMPKA ma 2x P to wtedy program nie działa.
0
Może pomoże:
word = list(input())
guesses = ['_'] * len(word)
while guesses != word:
letter = input()[0]
for i in range(len(word)):
if letter == word[i]:
guesses[i] = word[i]
print('after', letter, 'guess ->', ''.join(guesses))
https://ideone.com/JvqbGo
input
abrakadabra
b
x
c
r
k
b
a
d
output
after b guess -> _b______b__
after x guess -> _b______b__
after c guess -> _b______b__
after r guess -> _br_____br_
after k guess -> _br_k___br_
after b guess -> _br_k___br_
after a guess -> abraka_abra
after d guess -> abrakadabra
1
Nawet gorzej, gra się nigdy nie kończy, szanse schodzą na minus, i to nie ważne czy się wygra czy przegra. Nie zarządzasz też w żaden sposób odgadniętymi literami w słowie; dlatego jak się poda "p" w "pompka" po raz drugi, to zabiera kolejne dwa miejsca i "wygrywamy", nie odgadując do końca.