Random Wort Aktion zuweisen

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
Duardo
User
Beiträge: 54
Registriert: Mittwoch 2. Juli 2014, 16:56

Hallo, Ich habe hier ein Programm, welches verschiedene Buchstaben auslost. Nur möchte ich, dass wenn zum Beispiel der Buchstabe A ausgelost
wir, etwas bestimmtes passiert, zum Beispiel ein bestimmter Sound. Hier der Code:

Code: Alles auswählen

# -*- coding: cp1252 -*-
import pygame
import Tkinter as tk
from Tkinter import *
from functools import partial
import random

pygame.init()

label=tk.Label()
label.pack()
        
def knopf(label):
    WORDS=("A", "B", "C", "D", "E")
    label['text']=random.choice(WORDS)

button=tk.Button(text='Knopf', command=partial(knopf, label))
button.pack()

mainloop()
Schonmal danke im voraus.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Die Lösung ist ganz einfach: Wenn ein bestimmter Buchstabe gezogen wird, dann führst du den gewünschten Code aus. Ich gebe zu, die Antwort ist jetzt etwas generisch, leider enthielt dein Beitrag aber keine konkrete Frage. Wie lautet denn dein konkretes Problem?
Das Leben ist wie ein Tennisball.
Duardo
User
Beiträge: 54
Registriert: Mittwoch 2. Juli 2014, 16:56

EyDu hat geschrieben:Die Lösung ist ganz einfach: Wenn ein bestimmter Buchstabe gezogen wird, dann führst du den gewünschten Code aus. Ich gebe zu, die Antwort ist jetzt etwas generisch, leider enthielt dein Beitrag aber keine konkrete Frage. Wie lautet denn dein konkretes Problem?
Mein Frage war wie ich das mache, denn wenn ein Buchstabe gezogen wird, wird er sofort in einem Label dargestellt.
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

@Duardo: was meinst Du mit "das"? Denn das was Du gemacht hast, ist ja anscheinend nicht das, was Du willst.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Dann mache erst etwas mit dem gezogenen Buchstaben und stelle ihn anschließend dar. Schreib doch mal mehr als einen Satz, wir können doch nicht wissen was dein Problem ist.
Das Leben ist wie ein Tennisball.
Duardo
User
Beiträge: 54
Registriert: Mittwoch 2. Juli 2014, 16:56

Sirius3 hat geschrieben:@Duardo: was meinst Du mit "das"? Denn das was Du gemacht hast, ist ja anscheinend nicht das, was Du willst.
In meinem Programm wird ja ein Buchstabe ausgelost. Dieser wird in einem Label dargestellt. Ich möchte jetzt, dass für jeden Buchstaben der ausgelost werden kann eine Aktion definiert wird. Also dass immer wenn zum Beispiel ein 'A' ausgelost wird, dieses in dem Label dargestellt und eine Aktion dazu ausgeführt wird, zum Beispiel das dazu ein bestimmter Sound ertönt. Also dass für jeden Buchstaben eine feste Aktion definiert wird.
BlackJack

@Duardo: Du könntest ein Wörterbuch erstellen welches Buchstaben auf Funktionen oder Methoden abbildet, die dann die gewünschte Aktion ausführen. Dann holst Du nach dem Auslosen das zum Buchstaben passende aufrufbare Objekt aus dem Wörterbuch und rufst es auf.
Duardo
User
Beiträge: 54
Registriert: Mittwoch 2. Juli 2014, 16:56

@BlackJack: Irgendwie stehe ich gerade voll auf dem Schlauch. Wie hole ich denn das Objekt aus dem Wörterbuch und rufe es auf? Also ich weiß ja man ruft Objekte aus dem Dictionary mit z.B: test["objekt"] auf. Nur wie setzte ich das jetzt hier ein? Also dass ein Objekt bei einem ausgelosten Buchstaben aufgerufen wird?
Benutzeravatar
pillmuncher
User
Beiträge: 1484
Registriert: Samstag 21. März 2009, 22:59
Wohnort: Pfaffenwinkel

@Duardo:guckstu:

Code: Alles auswählen

>>> def foo():
...     print 'foo!'
...
>>> def bar():
...     print 'bar!'
...
>>> my_dict = {'f': foo, 'b': bar}
>>> my_dict['f']()
foo!
>>> my_dict['b']()
bar!
In specifications, Murphy's Law supersedes Ohm's.
Duardo
User
Beiträge: 54
Registriert: Mittwoch 2. Juli 2014, 16:56

@pillmuncher: Meine Frage war jetzt eher, wie ich die Dictionarys in meine Situation einfüge.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Ganz genau so wie von pillmuncher beschrieben. Du erstellst ein Dictionary mit den Schlüsseln von "A" bis "E" und als Werte setzt du die auszuführenden Funktionen. ``random.choice`` liefert dir dann den Schlüssel, mit dem du auf das Dictionary zugreifen kannst.
Das Leben ist wie ein Tennisball.
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

Wenn der Schlüssel eigentlich gar nicht gebraucht wird, kannst Du natürlich auch direkt eine Liste mit Methoden erstellen und per random.choice eine auswählen.
Antworten