Prosta gra

0

Cześć, chciałbym zrobić grę w której uczestnik zgadywałby liczby od 1 do 25 załóżmy i za każdym strzałem wyświetlana liczba zamieniałaby się w "x". Nie wiem jak to zrobić, ponieważ trzeba byłoby podmieniać wyrażenia w nowym łańcuchu w pętli while. Ktoś miałby jakiś pomysł, proszę o podpowiedź.

0

Poczytaj o metodzie replace() Ona podmienia podany w argumencie łańcuch znaków na inny dowolny łańcuch znaków.
https://www.tutorialspoint.com/python/string_replace.htm

0
Shizzer napisał(a):

Poczytaj o metodzie replace() Ona podmienia podany w argumencie łańcuch znaków na inny dowolny łańcuch znaków.
https://www.tutorialspoint.com/python/string_replace.htm

Tak znam tę metodę, ale jeśli mam na początku łańcuch "a", i użyję pętli while, która będzie się wykonywać dopóki ktoś nie zgadnie, to będzie pudłował i w tym łańcuchu a, za liczbę np. 20 dam "x" i jeśli później będę chciał kontynuować pętlę to zamieni mi inna wskazaną liczbę np. 5 na "x" a 20 już tym "x" nie będzie i tu mam problem.

0

Tak dokładnie.
Mam łańcuch a="|1 |2 |3 |4 |5 |\n|6 |7 |8 |9 |10|\n|11|12|13|14|15|\n|16|17|18|19|20|\n|21|22|23|24|25|\n"
Ja wylosowałem liczbę np.19. Użytkownik zgaduje np. 8 i łańcuch a zmienia się w łańcuch b="|1 |2 |3 |4 |5 |\n|6 |7 |X |9 |10|\n|11|12|13|14|15|\n|16|17|18|19 |20|\n|21|22|23|24|25|\n". Zgaduje następnie np. 4 i chciałbym, żebym otrzymał łańcuch c="|1 |2 |3 |X |5 |\n|6 |7 |X |9 |10|\n|11|12|13|14|15|\n|16|17|18|19 |20|\n|21|22|23|24|25|\n", a nie c="|1 |2 |3 |X |5 |\n|6 |7 |8 |9 |10|\n|11|12|13|14|15|\n|16|17|18|19|20|\n|21|22|23|24|25|\n"

0

W Pythonie nie można operować na łańcuchach znaków jak na tablicach tak jak np. można to robić w C++. W tym przypadku według mnie powinieneś działać na listach., czyli liczby 1-25 powinieneś wrzucić właśnie w listę. Wtedy możesz wyodrębnić dokładnie ten element listy, który odpowiada wartości wpisanej przez użytkownika i zamienić go na wartość X.

0

W listach mogę tylko zliczać elementy przecież.

0

Już doszedłem do tego, trochę innym sposobem, ale dałeś mi do myślenia. Dziękuję bardzo. Miłego wieczoru! :)

0

podaj rozwiązanie dla potomnych, może też kogoś zainspirujesz :)

0

Jasne :)

print("Legenda:") 
print("O-trafione"+" " + "X-pudło\n")
a="\n| 1 | 2 | 3 |\n| 4 | 5 | 6 |\n| 7 | 8 | 9 |\n"
select1=int(input())
select2=int(input())
choice=0
suma=0
while select1 != choice or select2 != choice:
            print("Celuj!")
            print("To Twoja " +str(suma)+" próba")
            choice=int(input())
            if select1!=choice and select2!=choice:
                a=a.replace(str(e),"X")
                print("\nPUDŁO!\n")
            if select1==choice or select2==choice:
                a=a.replace(str(e),"O")
                print("\nTRAFIONY!\n")
            print(a)
            if a.count("O")==2:
                print("Koniec gry! Trafiłeś obie liczby w "+str(suma)+ " próbach.\n")
                break
            suma += 1

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0