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

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:

Was ist deine Frage?

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

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 (former) Modvoice
BlackJack

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
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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

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

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
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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 (former) Modvoice
Gast

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

der post ist von mir
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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 (former) Modvoice
Gast

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

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
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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 (former) Modvoice
BlackJack

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

stimmt. aber wie mache ich den sowas die wenn ich sag er soll zufällig zusammen setzen und dann die ersten 77 ziehen geht das nicht wie könnt ich das problem lösen?
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

BlackJack hat geschrieben:Das entspricht aber nicht ganz der Spezifikation
Na, etwas Arbeit darf python Dummie schon selbst machen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
python Dummie

ich versuche das prog jetzt einfach mal so zu machen ich hab es nicht abgegeben.

Code: Alles auswählen

import  random

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



    def zieheZahlen(self):
        random.shuffle (self.__kugeln)
        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]

if __name__ == "__main__":
    test = LottoAutomat()
    print test.zieheZahlen()
EDIT by mawe: Python-tags eingefügt
__________________________________
soweit is meine kllassen hirarchie fertig aber irgendwie funzt die klsse spiel77 nicht . wenn ich die ausgabe von den zahlen machen will sagt der da wäre ein fehler.
und bitte sagt mir jemand wie ich das mache, das die zahlen doppelt vorkeommen dürfen.
python Dummie

sry in der ersten klasse müssen die zahlen natürlich von 1-49 und nicht von 0-9
python Dummie

Code: Alles auswählen

import random

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



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

class Spiel77Automat(LottoAutomat):

    def zieheZahlen(self):
        kugeln = []
        for z in range(7):
            kugeln.append(random.randint(0, 9))
        return kugeln

class Super6Automat(Spiel77Automat):
    def zieheZahlen(self):
        return Spiel77Automat.zieheZahlen(self)[1:]


if __name__ == "__main__":

    lotto = LottoAutomat()
    print lotto.zieheZahlen()
    s77 = Spiel77Automat()
    print s77.zieheZahlen()
    s6 = Super6Automat()
    print s6.zieheZahlen()

so ich hab das jetzt nochmal überarbeitet. aber warum sind die Zahlen von spiel77 und super6 nicht gleich????
was mach ich falsch???
kann mir jemand helfen.

EDIT by mawe: Python-tags eingefügt - SEUFZ
Antworten