Seite 1 von 1

Hilfe bei Aufgabe!

Verfasst: Freitag 25. November 2022, 00:00
von FlankZ
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 = ["✿", "❄", "★", "♥", "✉", "✂", "✖", "✈", "♫", "☀",
"✿", "❄", "★", "♥", "✉", "✂", "✖", "✈", "♫", "☀"]]

Re: Hilfe bei Aufgabe!

Verfasst: Freitag 25. November 2022, 10:23
von Kebap
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?

Re: Hilfe bei Aufgabe!

Verfasst: Freitag 25. November 2022, 15:26
von __blackjack__
@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.)

Re: Hilfe bei Aufgabe!

Verfasst: Freitag 25. November 2022, 19:36
von FlankZ
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 😅

Re: Hilfe bei Aufgabe!

Verfasst: Freitag 25. November 2022, 19:37
von FlankZ
__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 :(

Re: Hilfe bei Aufgabe!

Verfasst: Freitag 25. November 2022, 21:07
von __deets__
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.

Re: Hilfe bei Aufgabe!

Verfasst: Samstag 26. November 2022, 01:12
von __blackjack__
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.