PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Dumme Python-Frage


aths
2017-08-11, 21:24:50
Ich will Stein-Papier-Schere programmieren und für den letzten Spielzug sprechende Zustände verwenden, also win, draw und loss. Sollte ich da irgendwie Konstanten nutzen die Integers beinhalten, oder geht das eleganter?

Monger
2017-08-11, 22:01:38
https://stackoverflow.com/questions/13293703/how-to-use-unions-with-python

Dr.Doom
2017-08-14, 11:23:32
Ja, klar...
'ne Factory, ein paar Entwurfsmuster und Mehrfachvererbung MUSS da auch noch mit rein.

Nagelbrett
2017-08-14, 18:24:33
Falls du Python 3 machst, gibt's dort enums: https://en.wikipedia.org/wiki/Enumerated_type#Python_3.4
Das wäre ein bisschen schicker als Konstanten zu verwenden.

nalye
2017-08-14, 18:29:20
Das hier ist ganz nett und nicht hart rumgewurschtelt mit irgendwelchen harten elif-Gebilden

import random

ROCK, PAPER, SCISSORS = 1, 2, 3
names = 'ROCK', 'PAPER', 'SCISSORS'

def beats(a, b):
if (a,b) in ((ROCK, PAPER), (PAPER, SCISSORS), (SCISSORS, ROCK)):
return False

return True


print "Please select: "
print "1 Rock"
print "2 Paper"
print "3 Scissors"

player = int(input ("Choose from 1-3: "))
cpu = random.choice((ROCK, PAPER, SCISSORS))

if cpu != player:
if beats(player, cpu):
print "player won"
else:
print "cpu won"
else:
print "tie!"

print names[player-1], "vs", names[cpu-1]