Seite 1 von 1

Random Wort Aktion zuweisen

Verfasst: Mittwoch 16. Juli 2014, 17:59
von Duardo
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.

Re: Random Wort Aktion zuweisen

Verfasst: Mittwoch 16. Juli 2014, 18:48
von EyDu
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?

Re: Random Wort Aktion zuweisen

Verfasst: Mittwoch 16. Juli 2014, 18:50
von Duardo
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.

Re: Random Wort Aktion zuweisen

Verfasst: Mittwoch 16. Juli 2014, 19:06
von Sirius3
@Duardo: was meinst Du mit "das"? Denn das was Du gemacht hast, ist ja anscheinend nicht das, was Du willst.

Re: Random Wort Aktion zuweisen

Verfasst: Mittwoch 16. Juli 2014, 19:10
von EyDu
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.

Re: Random Wort Aktion zuweisen

Verfasst: Mittwoch 16. Juli 2014, 19:13
von Duardo
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.

Re: Random Wort Aktion zuweisen

Verfasst: Mittwoch 16. Juli 2014, 19:19
von 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.

Re: Random Wort Aktion zuweisen

Verfasst: Mittwoch 16. Juli 2014, 19:51
von Duardo
@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?

Re: Random Wort Aktion zuweisen

Verfasst: Mittwoch 16. Juli 2014, 20:16
von pillmuncher
@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!

Re: Random Wort Aktion zuweisen

Verfasst: Donnerstag 17. Juli 2014, 16:31
von Duardo
@pillmuncher: Meine Frage war jetzt eher, wie ich die Dictionarys in meine Situation einfüge.

Re: Random Wort Aktion zuweisen

Verfasst: Donnerstag 17. Juli 2014, 16:43
von EyDu
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.

Re: Random Wort Aktion zuweisen

Verfasst: Donnerstag 17. Juli 2014, 20:10
von Sirius3
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.