Hilfe bei Aufgabe!

Stellt hier eure Projekte vor.
Internetseiten, Skripte, und alles andere bzgl. Python.
Antworten
FlankZ
User
Beiträge: 3
Registriert: Donnerstag 24. November 2022, 23:49

Hallo Leute, ich bin noch ein Neuling in Python, und habe ein Problem bei meiner Abgabe. Wollte Fragen, ob ihr mir helfen könnt beim Lösen. ich teile mit euch die Aufgabe. "Um mit dem Spielen beginnen zu können, müssen zuvor die 20 Karten ausgebreitet werden. Implementieren Sie
dafür die Funktion create_grid(cards). Diese nimmt eine Liste mit Karten entgegen und ordnet für das
Spielfeld die 20 Karten in einem 5x4 Raster an. Benutzen Sie hierfür verschachtelte Listen. Anschließend soll die
Funktion das erstellte Spielfeld, also das Raster der ausgebreiteten Karten, zurückgeben." und die Liste die gegeben ist: [CARDS = ["✿", "❄", "★", "♥", "✉", "✂", "✖", "✈", "♫", "☀",
"✿", "❄", "★", "♥", "✉", "✂", "✖", "✈", "♫", "☀"]]
Benutzeravatar
Kebap
User
Beiträge: 560
Registriert: Dienstag 15. November 2011, 14:20
Wohnort: Dortmund

Wollte Fragen, ob ihr mir helfen könnt beim Lösen
Welche Hilfe hättest du denn gerne? Sollen wir mal deine Hausaufgaben für dich schreiben?
MorgenGrauen: 1 Welt, 8 Rassen, 13 Gilden, >250 Abenteuer, >5000 Waffen & Rüstungen,
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
Benutzeravatar
__blackjack__
User
Beiträge: 11588
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Kebap Och nun sei doch nicht so. Das geht ganz einfach mit `more_itertools.chunked()`. 😈

Code: Alles auswählen

In [466]: CARDS = ["✿", "❄", "★", "♥", "✉", "✂", "✖", "✈", "♫", "☀",
     ...: "✿", "❄", "★", "♥", "✉", "✂", "✖", "✈", "♫", "☀"]

In [467]: len(CARDS) / 2 == len(set(CARDS))
Out[467]: True

In [468]: list(more_itertools.chunked(CARDS, 5, True))
Out[468]: 
[['✿', '❄', '★', '♥', '✉'],
 ['✂', '✖', '✈', '♫', '☀'],
 ['✿', '❄', '★', '♥', '✉'],
 ['✂', '✖', '✈', '♫', '☀']]
(Eingabe 467 war um die Vermutung ob das ein Memory-Spiel werden könnte, zu überprüfen. Was man an der Ausgabe 468 aber auch ganz gut erkennen kann.)
“The gods of the Disc have never bothered much about judging the souls of the dead, and so people only go to hell if that's where they think they deserve to go. Which they won't do if they don't know about it. This explains why it is important to shoot missionaries on sight.” -Terry Pratchett, Eric
FlankZ
User
Beiträge: 3
Registriert: Donnerstag 24. November 2022, 23:49

Kebap hat geschrieben: Freitag 25. November 2022, 10:23
Wollte Fragen, ob ihr mir helfen könnt beim Lösen
Welche Hilfe hättest du denn gerne? Sollen wir mal deine Hausaufgaben für dich schreiben?
Nicht unbedingt meine Hausaufgaben machen, aber vllt mir so eine Richtung geben in die ich gehen könnte 😅
FlankZ
User
Beiträge: 3
Registriert: Donnerstag 24. November 2022, 23:49

__blackjack__ hat geschrieben: Freitag 25. November 2022, 15:26 @Kebap Och nun sei doch nicht so. Das geht ganz einfach mit `more_itertools.chunked()`. 😈

Code: Alles auswählen

In [466]: CARDS = ["✿", "❄", "★", "♥", "✉", "✂", "✖", "✈", "♫", "☀",
     ...: "✿", "❄", "★", "♥", "✉", "✂", "✖", "✈", "♫", "☀"]

In [467]: len(CARDS) / 2 == len(set(CARDS))
Out[467]: True

In [468]: list(more_itertools.chunked(CARDS, 5, True))
Out[468]: 
[['✿', '❄', '★', '♥', '✉'],
 ['✂', '✖', '✈', '♫', '☀'],
 ['✿', '❄', '★', '♥', '✉'],
 ['✂', '✖', '✈', '♫', '☀']]
(Eingabe 467 war um die Vermutung ob das ein Memory-Spiel werden könnte, zu überprüfen. Was man an der Ausgabe 468 aber auch ganz gut erkennen kann.)
Danke schön leider darf ich nur time und random benutzen ohne ittertool sonst hätte ich es wahrscheinlich auch so gemacht :(
__deets__
User
Beiträge: 13176
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ja genau. Sonst hättest du es so gemacht. Zeig doch mal *deine* itertools Lösung. Wir helfen gerne beim ersetzen durch simple for-Schleifen.
Benutzeravatar
__blackjack__
User
Beiträge: 11588
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Mal eine Bemerkung am Rande: Die Konstante CARDS würde besser so definiert werden:

Code: Alles auswählen

CARDS = "✿❄★♥✉✂✖✈♫☀"
assert len(CARDS) == len(set(CARDS)), "cards must be unique"
Es ist weniger zu tippen. Man muss beim Tippen nicht darauf achten, dass jedes Zeichen 2× vorhanden ist. Als Programmierer vermeidet man Redundanz die eine unnötige Fehlerquelle ist. Es kann nicht jemand in Versuchung geraten so etwas wie `random.shuffle()` auf die *Konstante* anzuwenden.
“The gods of the Disc have never bothered much about judging the souls of the dead, and so people only go to hell if that's where they think they deserve to go. Which they won't do if they don't know about it. This explains why it is important to shoot missionaries on sight.” -Terry Pratchett, Eric
Antworten