Gra kamień papier nożyce nie działa

0

Mam problem jestem nowy w programowaniu. Nie wiem dlaczego mój program wyświetla np. że nożyce vs nożyce to wygrana. Program jest do kamień papier nożyce

print('Do you want to play with me paper rock scissors? Yes or no?')
n = input()
if n == "yes":
    print("Ok let's go!")
    print('What do you want to use?')
i = input()
if i == 'paper':
    print(random.choice(["rock", "paper", "scissors"]))
if i == 'rock':
    print(random.choice(["rock", "paper", "scissors"]))
if i == 'scissors':
    print(random.choice(["rock", "paper", "scissors"]))
if i == 'rock':
    if random.choice(["rock", "paper", "scissors"]) == 'rock':
        print('draw')
if i == 'paper':
    if random.choice(["rock", "paper", "scissors"]) == 'paper':
        print('draw')
if i == 'scissors':
    if random.choice(["rock", "paper", "scissors"]) == 'scissors':
        print('draw')
if i == 'rock':
    if random.choice(["rock", "paper", "scissors"]) == 'paper':
        print('You lose')
if i == 'rock':
    if random.choice(["rock", "paper", "scissors"]) == 'scissors':
        print('You win')
if i == 'paper':
    if random.choice(["rock", "paper", "scissors"]) == 'rock':
        print('You win')
if i == 'paper':
    if random.choice(["rock", "paper", "scissors"]) == 'scissors':
        print('You lose')
if i == 'scissors':
    if random.choice(["rock", "paper", "scissors"]) == 'rock':
        print('You lose')
if i == 'scissors':
    if random.choice(["rock", "paper", "scissors"]) == 'paper':
        print('You win')
0

@XokoKnight:
To nie fejsbok, w tytule tylko zasygnalizujemy treść, rozwijamy ją niżej w stosownym miejscu

Określ słowa "nie działa", co jest spodziewane, a co w rzeczywistości. Słowo "nie działa" na tym forum nie działa

I sformatuj z prawidłowym syntaxem, szczególnie w przypadku Pythoina

0

Dobra, jako ze jestes poczatkujacy to bez zbednego czepiania sie samego kodu:
Robisz dwa losowania. Najpierw losujesz RPS i go drukujesz. Potem losujesz drugi raz i na podstawie drugiego losowania dokonujesz wyboru wygrana/remis/przegrana. Ergo rozjedza Ci sie logika i widzisz losowe wyniki. Musisz sobie zapisac w zmiennej co Ci sie wylosowalo zamiast losowac drugi raz. A nawet nie drugi... W kazdym ifie losujesz od nowa :)

0

@J.Muzykant: Już lepiej?

2

Na dodatek Python wymaga poprawnych wcięć, których nie ma. Nie zaimportowałeś też modułu random. Naprawiona wersja:

import random
print ("Do you want to play with me paper rock scissors? Yes or no?")
n = input()
if n == "yes":
  print ("Ok let's go!")
  print ("What do you want to use?")
  i = input()
  c = random.choice(["rock", "paper", "scissors"])
  print (c)
  if i == "rock":
    if c == "rock":
      print ("draw")
    elif c == "paper":
      print ("You lose")
    elif c == "scissors":
      print ("You win")
  elif i == "paper":
    if c == "rock":
      print ("You win")
    elif c == "paper":
      print ("draw")
    elif c == "scissors":
      print ("You lose")
  elif i == "scissors":
    if c == "rock":
      print ("You lose")
    elif c == "paper":
      print ("You win")
    elif c == "scissors":
      print ("draw")
0

@Manna5: Jeden elif ma złe wcicięcie a na inny reaguje tak;
File "C:\Users\robwi\PycharmProjects\pythonProject5\main.py", line 27
elif c == "paper"
^
SyntaxError: invalid syntax

0

@Manna5: Już działa dzk

0

@Manna5: moduł zaimportowałem tylko się niepoprawnie wkleiło ;)

2
import random
wins = {
    "rock": "scissors",
    "paper": "rock",
    "scissors": "paper"
}
print ("Do you want to play with me paper rock scissors? Yes or no?")
n = input()
if n == "yes":
    print ("Ok let's go!")
    print ("What do you want to use?")
    i = input()
    c = random.choice(["rock", "paper", "scissors"])
    print (c)
    if i == c:
        print ("draw")
    elif wins[i] == c:
        print ("You win")
    else:
        print ("You lose")
0

@Arthan: Dużo ładniejsze :-) Jeszcze tylko dodaj jakiś ładny komunikat w przypadku odpowiedzi innej niż yes i obsługę wyjątków dla innych wartości niż kamień papier i nożyczki - np. niech sobie komputer zagra sam ze sobą.

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