Moorhuhn

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
anga
User
Beiträge: 13
Registriert: Mittwoch 16. Dezember 2009, 17:36

Ich habe die Anleitung aus dem Buch "Python für Kids" durchgeführt, aber das Spiel funktioniert nicht.

wer hat dieses buch und kann mir den code geben?
Benutzeravatar
LP640
User
Beiträge: 142
Registriert: Dienstag 29. September 2009, 14:40

hi
erstmal ein dickes fettes LOL
hier ein code den ich noch aus meiner informatikunterrichtzeit habe
du brauchst allerdings die ganzen GIF und TON Dateien oder machst se weg

Code: Alles auswählen

from xturtle import Turtle, title
from random import randint
import winsound

SCHUESSE = 5
TREFFER_ABSTAND = 20
TEMPO = 0.35

GETROFFEN = "getroffen.wav"
DANEBEN = "daneben.wav"
GUT = "gameover.wav"
NAJA = "applaus.wav"

class MHManager(Turtle):
    """Spezielle Turtle mit der Aufgabe, das Moorhuhn-GUI
    zu managen.
    """
    def __init__(self, w, h):
        Turtle.__init__(self, width=w, height=h)
        self.hideturtle()
        self.speed(0)
        self.penup()
        self.goto(-290, -220)
        self.pencolor("yellow")
    def message(self, txt):
        """Gibt Text txt im Grafikfenster aus.
        """
        self.clear()
        self.write(txt, font=("Courier", 18, "bold"))

class Huhn(Turtle):

    def __init__(self, bilddatei):
        Turtle.__init__(self, bilddatei)
        self.penup()
        self.speed(0)
        self.start()

    def start(self):
        self.hideturtle()
        self.setpos(-340, randint(-70,70))
        self.vx = randint(6,11) * TEMPO
        self.vy = randint(-3,3) * TEMPO
        self.getroffen = False
        self.showturtle()
        self.ausdemspiel = False

    def schritt(self, fertig):
        if self.ausdemspiel:
            return
        if self.getroffen:
            self.vy = self.vy - 0.25 * TEMPO
        x, y = self.position()
        x = x + self.vx
        y = y + self.vy
        self.goto(x,y)
        if x > 340 or abs(y) > 250: 
            if not fertig:
                self.start()
            else:
                self.ausdemspiel = True

class MoorhuhnSpiel:
    """Kombiniert die Bestandteile des Moorhuhnspiels.
    """
    def __init__(self):
        title("Moorhuhn")
        self.mhm = mhm= MHManager(640, 480) # erzeugt
                                     # Grafik-Fenster
        mhm.bgpic("landschaft.gif")
        mhm.message("Start mit Leertaste!")

        mhm.addshape("huhn01.gif")
        mhm.addshape("huhn02.gif")
        self.huehner = [Huhn("huhn01.gif"), Huhn("huhn02.gif")]
        
        self.gameover = True   # Neues Spiel kann beginnen
        mhm.onclick(self.schuss, 1)
        mhm.onkey(self.spiel, "space")
        mhm.listen()
        mhm.getcanvas().config(cursor="X_cursor")
        
    def spiel(self):
        if not self.gameover:
            return   # altes Spiel läuft noch
        self.mhm.message("SPIEL LÄUFT")
        self.schuesse = 0
        self.treffer = 0
        self.gameover = False
        for huhn in self.huehner:
            huhn.start()
        while not self.gameover:
            for huhn in self.huehner:
                huhn.schritt(self.schuesse == SCHUESSE)
            self.gameover = True
            for huhn in self.huehner:
                self.gameover = (self.gameover and
                                           huhn.ausdemspiel)
        trefferrate = 1.0*self.treffer/self.schuesse
        self.mhm.message( ("Trefferrate: %1.2f" % trefferrate) +
                                        " - Leertaste drücken!")
        if trefferrate > 0.55:
            self.klang(GUT)
        else:
            self.klang(NAJA)

    def schuss(self, x, y):
        if self.schuesse == SCHUESSE:
            return # Es läuft kein Spiel, also kein Schuss
        self.schuesse = self.schuesse + 1
        klangdatei = DANEBEN
        for huhn in self.huehner:
            if (not huhn.getroffen and
                     huhn.distance(x,y) < TREFFER_ABSTAND):
                huhn.getroffen = True
                self.treffer = self.treffer + 1
                klangdatei = GETROFFEN
        self.klang(klangdatei)
        self.mhm.message("Treffer/Schüsse: %d/%d" %
                             (self.treffer, self.schuesse))

    def klang(self, soundfile):
        winsound.PlaySound(soundfile, winsound.SND_ASYNC) 

if __name__ == "__main__":
    MoorhuhnSpiel()


es wäre auch schön wenn du auch zuerst selber versuchen würdest deine probleme zu lösen aber ich mach mal ne ausnahme :wink:

mfg
LP640
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

LP640 hat geschrieben:hi
erstmal ein dickes fettes LOL
hier ein code den ich noch aus meiner informatikunterrichtzeit habe
du brauchst allerdings die ganzen GIF und TON Dateien oder machst se weg

es wäre auch schön wenn du auch zuerst selber versuchen würdest deine probleme zu lösen aber ich mach mal ne ausnahme :wink:

mfg
LP640
Da kenn ich noch wen, auf den das zutrifft
the more they change the more they stay the same
lunar

@Dav1d: Das war nicht unbedingt nötig.
Benutzeravatar
LP640
User
Beiträge: 142
Registriert: Dienstag 29. September 2009, 14:40

wen meint er denn??? :D

mfg
LP640
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

lunar hat geschrieben:@Dav1d: Das war nicht unbedingt nötig.
Das stimmt wohl
the more they change the more they stay the same
anga
User
Beiträge: 13
Registriert: Mittwoch 16. Dezember 2009, 17:36

LP640 hat geschrieben:hi
erstmal ein dickes fettes LOL
hier ein code den ich noch aus meiner informatikunterrichtzeit habe
du brauchst allerdings die ganzen GIF und TON Dateien oder machst se weg

# eingaebetteter Quellcode#

es wäre auch schön wenn du auch zuerst selber versuchen würdest deine probleme zu lösen aber ich mach mal ne ausnahme :wink:

mfg
LP640
Danke für den Code, LP640. Hast du die gifs und die wavs noch? Wenn ja kannst du sie mir irgendwiee geben (Online-Festplatte, Mail, Messenger, etc.)?
Wäre echt toll wenn ich die noch hätte.
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

LP640 hat geschrieben:hier ein code den ich noch aus meiner informatikunterrichtzeit habe
du brauchst allerdings die ganzen GIF und TON Dateien oder machst se weg
Lernt ihr im Informatik-Unterricht mit der Xturtle Demo-Umzugehen?

Da ist zufälligerweise der selbe Code drinnen :P

//PS da sind auch die Datein dabei
the more they change the more they stay the same
Antworten