Lotto

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.
python Dummie

Dienstag 12. April 2005, 16:27

Hi ich habe folgendes problem.
Es ist ne Aufgabe die ich von meinem Lehrer bekommen habe um meine Note zu verbessern. Ich will ja auch nicht, dass ihr mein prog schreibt, sondern mir helft.

Meine Aufgabe is es:
das spiel Lotto zu programieren. Ich soll Eine Datei erstellen in der ich 4 klassen habe, eine Namens Urne, dort sind alle kugeln von 0-49 enthalten., dann eine Klasse namens lotto die von der urne erbt in der ich dann zufällig sechs zahlen ziehe., eine Klasse spiel77 die auch aus der Urne erbt in der ich zufällig 7 zahlen von 0-9 ziehe(diese Zahlen dürfen auch doppelt vorkommen.) gezogen werden, und eine Klasse super 6 die von der Klasse spiel77 erbt und wobei die letzten sechs zahlen vom spiel 77 = meine zahl für super 6 ist.

Dann brauche ich noch eine datei, in der ich meine Klassen importieren kann und worin dann das HAuptprogram steht.
Die datei soll den user abfragen ob er Lotte, Spiel77 & super 6 spielen möchte oder nur bestimmte. wenn er die spiele ausgewählt hat darf er noch entscheiden wie viele Lottofelder er spielen möchte und ob eer selber tippen möchte oder dies automatisch geschehen soll.

wenn er selber eingeben möchte soll er nun für die anzahl der felder die er spielen möchte die zahlen eingeben.
Beim automatischen tippen werden ihn die von "Ihn" getippten zahlen angezeigt. nun soll verglichen werden, wie viel richtige er denn hat und ob er vielleicht spiel 77 oder super 6 gewonnen hat.
dafür werden die von ihm getippten zahlen und die zufällig gezogenen zahlen aus den Klassen angezeigt.

Nun soll der spieler entscheiden können, ob er nochma spielen möchte.


Es muss leider so umständlich und umfangreich sein auch leider mit Klassen und dann das Klassen importiern und so die aufgabe wurde leider so gestellt.

Problem ich darf nicht mit print arbeiten. sondern mit console und dann muss die ausgabe mit get..... und set..... sein..

Ich wäre dankbar wenn ihr mir tipps geben könntet. ich fang heute an und poste morgen mal das was ich fertig habe vielleicht hilft mir ja jemand wäre echt nett. Weils für mich sehr wichtig ist um meine Note zu retten.
fs111
User
Beiträge: 170
Registriert: Samstag 15. November 2003, 11:42
Kontaktdaten:

Dienstag 12. April 2005, 20:38

Was ist deine Frage?

fs111
Pydoc-Integration in vim - Feedback willkommen: http://www.vim.org/scripts/script.php?script_id=910
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Mittwoch 13. April 2005, 13:24

python Dummie hat geschrieben:Dann brauche ich noch eine datei, in der ich meine Klassen importieren kann und worin dann das HAuptprogram steht.
Das ist ja Java-like und eher unpythonic... aber nagut.

Und nein, es ist kein Problem deswegen zu posten. Wenn du uns eine Frage stellst, werden wir gerne versuchen dir zu helfen.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
BlackJack

Mittwoch 13. April 2005, 21:50

Wenn diese Klassenhierarchie von Deinem Lehrer vorgegeben wurde, dann sag ihm doch bitte, dass er Vererbung nicht verstanden hat, eine 6 bekommt und sich wieder setzen darf. :wink:

Vererbung ist eine "ist-ein(e)" Beziehung zwischen zwei Klassen. Von Deiner Beschreibung her gilt aber "Lotto ist eine Urne" nicht, sondern eher "Lotto benutzt eine Urne".
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Donnerstag 14. April 2005, 12:25

Wie wärs mit LottoAutomat von der dann Spiel77Automat, Super6Automat usw erben...
My god, it's full of CARs! | Leonidasvoice vs Modvoice
python Dummie

Freitag 15. April 2005, 21:26

ich hab bei meiner klassen hirarchie irgend wie was nicht so ganz richtig. ich würd das quelltext gerne hochladen, aber der schul server is down und ich wollt mir den quelltext eben gerade über nen ftp prog von der schule nach hause ziehen. ich hoffe das der morgen wieder on ist.
python Dummie

Samstag 16. April 2005, 13:25

so hier mal mein quelltext bisher.
is aber noch nichts wirklich richtig.
kann mir jemand sagen wie ich die def anweisungen machen muss.


Code: Alles auswählen

# _*_ coding: cp1252 _*_
# Lotto
# Sebastian Hoopmann DQI04

# Import

import console, random


#


class Urne:
    def __init__(self, start=1, ende=1):
        self.__kugeln = []
        for i in range (start, ende+1):
            self.__kugeln.append(i)

        random.shuffle (kugeln)


class Lotto (Urne):
    def __init__(self):
        Urne.__init__(self,1,49)     # Die Kugeln von 1-49

    def zieheZahlen (self):
        return self.__kugeln [:6]



class Spiel77 (Urne):
    def __init__(self):
        Urne.__init__(self,0,9)


    def zieheSpiel77():
        pass

class Super6 (Spiel77):
    def __init__(self):
        Spiel77.__init__(self)
        pass
Edit XT@ngel: Code in Python Tag gesetzt
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Samstag 16. April 2005, 14:28

Der Header müsste am besten lauten:

Code: Alles auswählen

#!/usr/bin/env python
# -*- encoding: cp1252 -*-
und zwischen "class Lotto" und "(Urne)" sollte kein Leerzeichen sein, genauso wie bei den def's. Ich denke, das ist Teil des Python Style Guide.

Ich täts ja so machen (achtung, ungetestet):

Code: Alles auswählen

#!/usr/bin/env python
# -*- encoding: latin-1 -*- 

import console, random

class LottoAutomat(object):
    def __init__(self, start=1, ende=49):
        self.__kugeln = []
        for i in range (start, ende+1):
            self.__kugeln.append(i)

        random.shuffle (kugeln)

    def zieheZahlen(self):
        return self.__kugeln[:6]

class Spiel77Automat(LottoAutomat):
    def __init__(self):
        LottoAutomat.__init__(self)

class Super6Automat(Spiel77Automat):
    def __init__(self):
        Spiel77.__init__(self)
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Gast

Samstag 16. April 2005, 16:41

ja wie mach ich den jetzt noch diese ziehung bei beim spiel 77 usw.???
damit ich die klassen hirarchie beenden kann
python Dummie

Samstag 16. April 2005, 16:46

der post ist von mir
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Sonntag 17. April 2005, 07:29

Anonymous hat geschrieben:ja wie mach ich den jetzt noch diese ziehung bei beim spiel 77 usw.???
damit ich die klassen hirarchie beenden kann
Du kannst zieheZahlen() bei Spiel77Automat einfach mit einer anderen def zieheZahlen() überschreiben.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Gast

Sonntag 17. April 2005, 13:07

Code: Alles auswählen

#!/usr/bin/env python 
# -*- encoding: latin-1 -*- 

import console, random 

class LottoAutomat(object): 
    def __init__(self, start=1, ende=49): 
        self.__kugeln = [] 
        for i in range (start, ende+1): 
            self.__kugeln.append(i) 

        random.shuffle (kugeln) 

    def zieheZahlen(self): 
        return self.__kugeln[:6] 

class Spiel77Automat(LottoAutomat): 
    def __init__(self): 
        LottoAutomat.__init__(self, start=0, ende=9) 
    def zieheZahlen(self):
        return.__kugeln[:7]

class Super6Automat(Spiel77Automat): 
    def __init__(self): 
        Spiel77.__init__(self)
    

ich hoffe das es soweit richtig ist aber wie mache ich den jetzt das bei Super6Automat die gleichen Zahlen wie bei spiel77Automat ausgegeben werden (aber halt nur die letzten 6 ZAhlen)

EDIT: Code-Tags eingefügt.
python Dummie

Sonntag 17. April 2005, 13:09

sry ich vergess immmer den Benutzernamen bin halt nur gast.

wäre die klassen hirarchie den eigentlich fertig, wenn ich die ziehung von super6Automat noch hinbekomme?
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Montag 18. April 2005, 14:50

python Dummie hat geschrieben:ich hoffe das es soweit richtig ist aber wie mache ich den jetzt das bei Super6Automat die gleichen Zahlen wie bei spiel77Automat ausgegeben werden (aber halt nur die letzten 6 ZAhlen)
Wie wär's mit sowas?

Code: Alles auswählen

#!/usr/bin/env python 
# -*- encoding: latin-1 -*- 

import console, random 

class LottoAutomat(object): 
    def __init__(self, start=1, ende=49): 
        self.__kugeln = [] 
        for i in range (start, ende+1): 
            self.__kugeln.append(i) 

        random.shuffle (kugeln) 

    def zieheZahlen(self): 
        return self.__kugeln[:6] 

class Spiel77Automat(LottoAutomat): 
    def __init__(self): 
        LottoAutomat.__init__(self, start=0, ende=9) 
    def zieheZahlen(self):
        return self.__kugeln[:7]

class Super6Automat(Spiel77Automat): 
    def __init__(self): 
        Spiel77.__init__(self)
    def zeiheZahlen(self):
        return self.__kugeln[1:7]
My god, it's full of CARs! | Leonidasvoice vs Modvoice
BlackJack

Montag 18. April 2005, 22:31

Das entspricht aber nicht ganz der Spezifikation: beim Spiel77 sollen doch die Ziffern auch mehrfach auftreten dürfen.
Antworten