Korrektur

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Kinimo
User
Beiträge: 10
Registriert: Sonntag 29. September 2013, 10:16

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()
Zuletzt geändert von Kinimo am Mittwoch 30. Oktober 2013, 13:31, insgesamt 3-mal geändert.
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

@Kinimo: und wo und wie kommst Du jetzt hier nicht weiter?
Kinimo
User
Beiträge: 10
Registriert: Sonntag 29. September 2013, 10:16

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
Zuletzt geändert von Kinimo am Mittwoch 30. Oktober 2013, 12:19, insgesamt 1-mal geändert.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

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?
Das Leben ist wie ein Tennisball.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Da der Traceback jetzt da ist: Les ihn dir mal durch ;)
Tipp: Der Interpreter uebersetzt Worte nicht vom Englischen ins Deutsche und umgekehrt.
Kinimo
User
Beiträge: 10
Registriert: Sonntag 29. September 2013, 10:16

Tut mir leid aber ich komme einfach nicht drauf :K
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

Die Fehlermeldung sagt, dass es die Variable "waehlen" nicht gibt, weil Du sie nirgends definiert hast.
Kinimo
User
Beiträge: 10
Registriert: Sonntag 29. September 2013, 10:16

@
danke!

Jetzt klappt alles :)
Antworten