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 = ["✿", "❄", "★", "♥", "✉", "✂", "✖", "✈", "♫", "☀",
"✿", "❄", "★", "♥", "✉", "✂", "✖", "✈", "♫", "☀"]]
Hilfe bei Aufgabe!
Welche Hilfe hättest du denn gerne? Sollen wir mal deine Hausaufgaben für dich schreiben?Wollte Fragen, ob ihr mir helfen könnt beim Lösen
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.
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
- __blackjack__
- User
- Beiträge: 13181
- 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()`.
(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.)
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]:
[['✿', '❄', '★', '♥', '✉'],
['✂', '✖', '✈', '♫', '☀'],
['✿', '❄', '★', '♥', '✉'],
['✂', '✖', '✈', '♫', '☀']]
“There will always be things we wish to say in our programs that in all known languages can only be said poorly.” — Alan J. Perlis
Nicht unbedingt meine Hausaufgaben machen, aber vllt mir so eine Richtung geben in die ich gehen könnte
Danke schön leider darf ich nur time und random benutzen ohne ittertool sonst hätte ich es wahrscheinlich auch so gemacht__blackjack__ hat geschrieben: ↑Freitag 25. November 2022, 15:26 @Kebap Och nun sei doch nicht so. Das geht ganz einfach mit `more_itertools.chunked()`.(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.)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]: [['✿', '❄', '★', '♥', '✉'], ['✂', '✖', '✈', '♫', '☀'], ['✿', '❄', '★', '♥', '✉'], ['✂', '✖', '✈', '♫', '☀']]
- __blackjack__
- User
- Beiträge: 13181
- 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:
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.
Code: Alles auswählen
CARDS = "✿❄★♥✉✂✖✈♫☀"
assert len(CARDS) == len(set(CARDS)), "cards must be unique"
“There will always be things we wish to say in our programs that in all known languages can only be said poorly.” — Alan J. Perlis