Problem z rozwiązaniem gry kamień, papier i nożyce

0

Skąd się nagle wzięło to u1 i u2 skoro wcześniej nie były zdefniowane i czemu to działa?


user1 = input("What's your name?")
user2 = input("And your name?")
user1_answer = input("%s, do yo want to choose rock, paper or scissors?" % user1)
user2_answer = input("%s, do you want to choose rock, paper or scissors?" % user2)

def compare(u1, u2):
    if u1 == u2:
        return("It's a tie!")
    elif u1 == 'rock':
        if u2 == 'scissors':
            return("Rock wins!")
        else:
            return("Paper wins!")
    elif u1 == 'scissors':
        if u2 == 'paper':
            return("Scissors win!")
        else:
            return("Rock wins!")
    elif u1 == 'paper':
        if u2 == 'rock':
            return("Paper wins!")
        else:
            return("Scissors win!")
    else:
        return("Invalid input! You have not entered rock, paper or scissors, try again.")
        sys.exit()

print(compare(user1_answer, user2_answer))```
1
def compare(u1, u2):

Tutaj masz deklaracje.

BTW. Jak wrzucasz pythona to zadbaj o formatowanie. To może mieć kluczowe znaczenie.

0

Dzięki, ale jak u1 i u2 jest powiązane z user1_answer i user2_answer, skąd python wie, że u1 to odpowiedź gracza1, a u2 to odpowiedź gracza 2. nigdzie nie napisano u1 = user_answer1. Może to banalne pytanie, ale nie wiem. Chodzi o te % co są tam?

1

Napisano compare(user1_answer, user2_answer)

Te zmienne są podane jako argument funkcji. Compare używa wartości tych zmiennych jako u1, u2.

Te procenty podstawiają zawartość user1, user2 za %s. To takie skrócone printf (język C) z parametrami.
char* user1 = "nazwa";
printf("Uzytkownik to: %s", user1);

1

Aha racja, dzięki, tam na końcu to jest.
Dziekuję wam obu.

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