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

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

*seutz*

Das ist alles irgendwie ungeeignet und ich habe das Gefühl dass das eine Aufgabe ist, in der Klassen einfach total stören. So kannst du LottoAutomat.__init__ komplett kicken, da du es sowieso nicht brauchst.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
BlackJack

Wie ich schon schrob eignet sich die Aufgabenstellung einfach nicht dazu sinnvolle Klassen zu definieren. Eine Minimallösung mit Funktionen sieht so aus:

Code: Alles auswählen

#!/usr/bin/env python
import random

def lotto():
    return random.sample(xrange(1,50), 6)


def spiel77():
    return [random.randint(0, 9) for dummy in xrange(7)]


def super6(spiel77_ergebnis):
    return spiel77_ergebnis[1:]


if __name__ == '__main__':
    print lotto()
    spiel77_ergebnis = spiel77()
    super6_ergebnis = super6(spiel77_ergebnis)
    print spiel77_ergebnis
    print super6_ergebnis
Das könnte man vielleicht in einer Klasse zusammenfassen (siehe unten), wenn man möchte, aber ich sehe echt keine Notwendigkeit das mit mehreren Klassen unnötig aufzublasen.

Code: Alles auswählen

#!/usr/bin/env python
import random

class Lotto(object):
    def __init__(self):
        self.ergebnis = random.sample(xrange(1,50), 6)
        self.spiel77 = [random.randint(0, 9) for dummy in xrange(7)]

    def _get_super6(self):
        return self.spiel77[1:]
    
    super6 = property(_get_super6)

if __name__ == '__main__':
    lotto_ziehung = Lotto()
    print lotto_ziehung.ergebnis
    print lotto_ziehung.spiel77
    print lotto_ziehung.super6
Antworten