Seite 1 von 1

Problem mit Schere Stein Papier

Verfasst: Montag 30. März 2015, 22:56
von xK3v
Probiere mich gerade an einem Schere Stein Papier, hab aber jetzt ein Problem, auf das ich einfach nicht draufkomme...
Hier mal mein Code:

Code: Alles auswählen

#Rock, Paper, Scissors
import random

userchoice = raw_input("Choose Rock paper or Scissors: ")
print userchoice
uch = 0
cch = 0
cont = 0
winner = 4

cch = random.randint(1,3)

if userchoice == "rock":
	uch = 1
	cont = 1
elif userchoice == "paper":
	uch = 2
	cont = 1
elif userchoice == "scissors":
	uch = 3
	cont = 1
else:
	print "Ungueltige Eingabe"

	
print uch
print cch
#if cont == 1:
	
if   uch == 1 & cch == 1:
	winner = 0
elif uch == 1 & cch == 2:
	winner = 2
elif uch == 1 & cch == 3:
	winner = 1
elif uch == 2 & cch == 1:
	winner = 1
elif uch == 2 & cch == 2:
	winner = 0
elif uch == 2 & cch == 3:
	winner = 2
elif uch == 3 & cch == 1:
	winner = 2
elif uch == 3 & cch == 2:
	winner = 1
elif uch == 3 & cch == 3:
	winner = 0
else:
	print "Error"


if winner == 0:
	print "Unentschieden"
elif winner == 1:
	print "Du gewinnst!"
elif winner == 2:
	print "Der Computer gewinnt!"
elif winner == 4:
	print "Error2"

Bei der Auswahl des Gewinners passt irgendwas nicht und es wird entweder garkeiner ausgewählt oder es wird fälschlicherweise auf Unentschieden entschieden...
Danke schonmal für die Hilfe!

Re: Problem mit Schere Stein Papier

Verfasst: Montag 30. März 2015, 23:24
von darktrym
Ungetestet: and statt &.

Re: Problem mit Schere Stein Papier

Verfasst: Dienstag 31. März 2015, 10:24
von Sirius3
@xK3v: Parallelposts auf Stackoverflow sollte man zumindest angeben, damit sich niemand die Mühe macht, eine bereits beantwortete Frage zu beantworten. Gerade die Antworten auf Stackoverflow sind für Anfänger oft zu kurz.

nachdem die Frage beantwortet ist, noch ein paar weitere Fragen:
Was ist der Sinn, alle Variablen am Anfang mit Phantasiewerten zu belegen? Das macht Debugging unnötig schwierig, weil man sich immer daran erinnern muß, dass eine Variable ja ihren Wert gar nicht von einer gewünschten Operation bekommen hat, sondern einfach nur vorbelegt war.
Welche Funktion hat cont? Für die Steuerung des Programmflusses im Fehlerfall gibt es viele Möglichkeiten, z.B. Exceptions. Um es einfach zu halten, könnte man hier 'uch = None' setzen.
Der Unterschied zwischen logischem und Bedingungs-UND wurde ja schon auf Stackoverflow ausgiebig diskutiert.
Als Tipp: gewöhn Dir gleich an, immer 4 Leerzeichen zum Einrücken zu benutzen.

Re: Problem mit Schere Stein Papier

Verfasst: Dienstag 31. März 2015, 11:41
von /me
Sirius3 hat geschrieben:@xK3v: Parallelposts auf Stackoverflow sollte man zumindest angeben, damit sich niemand die Mühe macht, eine bereits beantwortete Frage zu beantworten. Gerade die Antworten auf Stackoverflow sind für Anfänger oft zu kurz.
Die Gleichheit ist mir auch nicht aufgefallen, aber bei dem Code war ich bei Stackoverflow auch nicht gerade zur Antwort motiviert.