Gra Papier, kamień, nożyce – ocena kodu

0

Witam, jestem nowy w programowaniu, dokładniej to niedawno zacząłem się uczyć. Napisałem prostą grę, jednak wydaje mi się że w zawiły sposób i na pewno wiele jest do poprawy. (Uczyłem się już co to jest definiowanie funkcji oraz jak ważne ono jest, jednak póki co nie umiem go zastosować. Wydaje mi się że ta gra to byłaby idealna okazja do nauki)

import sys
import random
import time

gramy = (input("Cześć, zagramy w papier kamień nożyce? (y/n):\n"))
if gramy.lower() == "n":
    print("Trudno...")
    sys.exit(0)

print("(Jeśli zechcesz zakończyć grę wpisz '10'.)")
time.sleep(0.5)

while True:
    print()

    wybor = int(input("Wybierasz:\n1.Papier\n2.Kamień\n3.Nożyce\n"))
    wybor_komp = random.randrange(1, 3)

    if wybor == 10:
        sys.exit(0)

    print("3..")
    time.sleep(0.5)
    print("2..")
    time.sleep(0.5)
    print("1..")
    time.sleep(0.5)

    if wybor == 1 and wybor_komp == 1:
        print("Papier vs Papier")
        time.sleep(0.5)
        print("Remis!")
    elif wybor == 2 and wybor_komp == 2:
        print("Kamień vs Kamień")
        time.sleep(0.5)
        print("Remis!")
    elif wybor == 3 and wybor_komp == 3:
        print("Nożyce vs Nożyce")
        time.sleep(0.5)
        print("Remis!")

    if wybor == 1 and wybor_komp == 2:
        print("Papier vs Kamień")
        time.sleep(0.5)
        print("Wygrywasz!")
    elif wybor == 2 and wybor_komp == 3:
        print("Kamień vs Nożyce")
        time.sleep(0.5)
        print("Wygrywasz!")
    elif wybor == 3 and wybor_komp == 1:
        print("Nożyce vs Papier")
        time.sleep(0.5)
        print("Wygrywasz!")

    if wybor == 1 and wybor_komp == 3:
        print("Papier vs Nożyce")
        time.sleep(0.5)
        print("Przegrywasz!")
    elif wybor == 2 and wybor_komp == 1:
        print("Kamień vs Papier")
        time.sleep(0.5)
        print("Przegrywasz!")
    elif wybor == 3 and wybor_komp == 2:
        print("Nożyce vs Kamień")
        time.sleep(0.5)
        print("Przegrywasz!")

    print()
    input("Wciśnij dowolny przycisk żeby grać dalej")
2
  1. zmienne globalne
  2. Zamiast drabinki ifow uzyj slownika (Dictionary), jako key mozesz posiadac tuple z wyborami (czyli 1,1 czy 1,2 etc) jako wartosc mozesz miec stringa gdzie masz tekst kto wygral. Wtedy wypisanie wygranej byloby super proste

jezeli chcesz by mied dwa teksty z takim sleepem. To po prostu przekaz tam obiekt / funkcje w parametrze

  1. Brak klasy, fajnie by to jakbys mial to podzielone co do czego
0

Wielkie dzięki za rady, postaram się wprowadzić je do kodu (co może mi trochę zająć ), i go tu opublikować. Jest to naprawdę pomocne!

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