Seite 1 von 1

Korrektur

Verfasst: Dienstag 29. Oktober 2013, 14:57
von Kinimo
Hallo,
Ich lerne erst seit ein paar Wochen Python und brauche deshalb auch noch Hilfe
beim Programmieren. Ich verändere kleine Programme oder schreibe kleine eigene
aber an diesem Projekt komme ich momentan nicht weiter und bitte euch mir einwenig
zu helfen.

Code: Alles auswählen

import random
import time


Namen = ['Stein' , 'Spock', 'Papier', 'Echse', 'Schere'] 

def ermittle_sieger(waehle_spieler_x, waehle_spieler_y):
     
    difference = (waehle_spieler_x - waehle_spieler_y) % 5
    assert len(Namen) == 5
    if difference == 0:
        return None
    elif difference in [1, 2]:
        return 0
    elif difference in [3, 4]:
        return 1
    else:
        assert False


def spielersicht():
    spieler_namen = ('Spieler', 'Computer')
    print('Willkommen zu {0}'.format('-'.join(Namen)))
    print('Waehle einen der folgenden Namen.\n')
    for i, name in enumerate(Namen):
        print(i, name)
    print()


    while True:
        spieler_wahl = int(input("Schreibe deine Entschiedung auf"))
        if not (0 <=spieler_wahl < len(Namen)):
            print('Error: Du musst eine Nummer zwischen 0 und {0}'.format(len(Namen) - 1))
            break
        computer_wahl = random.randrange(len(Namen))
        for name,wahl in zip(spieler_namen, [spieler_wahl, computer_wahl]):
            print(name, 'waehlen', Namen[wahl])
            time.sleep(1.0)
        winner = ermittle_sieger(spieler_wahl, computer_wahl)
        if winner is None:
            print('{0} unentschieden!'.format(' and '.join(spieler_namen)))
        else:
            print(spieler_namen[winner], 'gewinnt!')



if __name__== '__main__':
    spielersicht()

Re: Korrektur

Verfasst: Dienstag 29. Oktober 2013, 15:07
von Sirius3
@Kinimo: und wo und wie kommst Du jetzt hier nicht weiter?

Re: Korrektur

Verfasst: Mittwoch 30. Oktober 2013, 11:46
von Kinimo
Beim ausführen in der Shell kommt immer eine Fehlermeldung aber ich weiß nicht woran es liegt.

Diese Fehlermeldung kommt dann :

Traceback (most recent call last):
File "C:/Python33/123.py", line 48, in <module>
spielersicht()
File "C:/Python33/123.py", line 37, in spielersicht
print(name, 'waehlen', Namen[waehlen])
NameError: global name 'waehlen' is not defined

Re: Korrektur

Verfasst: Mittwoch 30. Oktober 2013, 11:48
von EyDu
Kinimo hat geschrieben:Beim ausführen in der Shell kommt immer eine Fehlermeldung aber ich weiß nicht woran es liegt.
Und die Fehlermeldung ist so geheim, dass du sie uns nicht verraten willst?

Re: Korrektur

Verfasst: Mittwoch 30. Oktober 2013, 12:26
von cofi
Da der Traceback jetzt da ist: Les ihn dir mal durch ;)
Tipp: Der Interpreter uebersetzt Worte nicht vom Englischen ins Deutsche und umgekehrt.

Re: Korrektur

Verfasst: Mittwoch 30. Oktober 2013, 12:33
von Kinimo
Tut mir leid aber ich komme einfach nicht drauf :K

Re: Korrektur

Verfasst: Mittwoch 30. Oktober 2013, 12:49
von Sirius3
Die Fehlermeldung sagt, dass es die Variable "waehlen" nicht gibt, weil Du sie nirgends definiert hast.

Re: Korrektur

Verfasst: Mittwoch 30. Oktober 2013, 13:28
von Kinimo
@
danke!

Jetzt klappt alles :)