Wpis z mikrobloga

#python
Cześć ludzie, uczę się Pythona, mam pytanie. Robię grę "zgaduj zgadula". Mam listę "slownik", która przechowuje słowa. Najpierw losuję słowo, potem wypisuję pierwszą literę. Jeśli nie zgadniesz słowa, dodawana jest kolejna litera (i tak dalej).
Niestety,u mnie od razu się drukuje całe słowo :/ Ma ktoś pomysł, jak wykonać raz funkcję?

def zgaduj():
import random
dictionary = ['ziemniak', 'zegarek', 'zolw', 'mleko', 'jajka', 'czekolada, pies, miasto, dziewczyna'];
randword = dictionary[random.randrange(len(dictionary))];
first
letter = [];
firstletter = randword[0:1:1];
box = [];
x = 0;

def question():
question = str(input('Wprowadz slowo, ktorego szukamy. Litera slowa zaczyna się na: ' + firstletter + '. '));

def invalid
answer():
print('Niestety, to nie to! Szukaj dalej! :-)');
question();

question();

if question == randword:
print('Wow! Zgadles za pierwszym razem! Szukanym slowem bylo: ' + rand
word);

else:
for i in randword[x:len(randword):1]:
box.append(i);
x = x + 1
print(box);
question();


zgaduj();
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Adam_pasztecik_czwarty: błąd o którym piszesz siedzi w forze, spróbuj dać

for i in rand_word[x+1:x+2]:


ale ogólnie to dalej nie będzie działać tak jak trzeba, bo metoda question() będzie wywołana tylko 2 razy (w linii 17. i w tym elsie), więc trochę musisz logikę poprawić, żeby question() było wywoływane w jakiejś pętli

btw lepiej użyć random.choice() do losowania elementu z listy
  • Odpowiedz
@Adam_pasztecik_czwarty: Człowieku masz 10+ minut na edycje wpisu, bez znaczenia czy ktoś na niego odpowie czy nie. Wkleiłeś taki rozjechany kod, że nic nie widać. Dlatego napisałem najpierw naucz się być dokładnym a dopiero wtedy programuj. Jak to osiągniesz, to z czystym sumieniem podziel się wklejką.
  • Odpowiedz