Kartendeck mit Seed mischen
Dieser Seed-basierte Kartenmischer wandelt eine ganze Zahl in eine eindeutige Reihenfolge aller 52 Karten eines Standarddecks um.
Im Browser ausführen – kostenlos
Verwenden Sie denselben Seed erneut, erhalten Sie wieder dieselbe Reihenfolge. Dadurch lassen sich Simulationen, Tests, Übungen und wiederholbare Spiele leichter prüfen und teilen. Das Ergebnis verwendet kompakte Rang- und Farbcodes, enthält jede Karte genau einmal und entsteht ohne Netzwerk, aktuelle Uhrzeit oder verborgenen Zufall. Verschiedene Seeds liefern üblicherweise verschiedene Reihenfolgen, folgen aber stets demselben dokumentierten Aufbau und Mischverfahren.
Erzeugen Sie mit einer Ganzzahl eine wiederholbare Mischung
Geben Sie im Feld <code>seed</code> eine ganze Zahl an. Die Funktion baut zunächst ein Standarddeck mit 52 Karten in einer festen kanonischen Reihenfolge auf: Pik, Herz, Karo und Kreuz, innerhalb jeder Farbe vom Ass bis zum König. Anschließend steuert eine vom Seed abgeleitete pseudozufällige Folge einen Fisher-Yates-Mischvorgang. Da sämtliche Eingaben dieses Ablaufs feststehen, ist auch die resultierende Kartenfolge festgelegt. Der Seed 42 erzeugt heute exakt dieselbe Antwort wie bei einer späteren Anfrage, in einer anderen Umgebung oder in einem weiteren Testlauf. Diese Wiederholbarkeit ist der Hauptzweck des Werkzeugs. Entwickler können ein gemischtes Deck als Fixture einsetzen, ohne alle 52 Werte zu speichern; Lehrkräfte können eine gemeinsame Aufgabe verteilen; Spiele können mit einem Seed die Anfangsverteilung rekonstruieren. Der Seed wird zusammen mit dem Deck ausgegeben, sodass gespeicherte Ergebnisse nachvollziehbar bleiben. Zulässig sind nur sichere JSON-Ganzzahlen. Dezimalzahlen, numerische Zeichenketten, fehlende Werte, Unendlichkeiten und Ganzzahlen außerhalb des exakten JavaScript-Bereichs werden abgelehnt und weder still gerundet noch umgedeutet.
Lesen Sie die ausgegebene Kartenfolge richtig
Das Array <code>deck</code> enthält genau 52 eindeutige Zeichenketten in Ziehreihenfolge. Jede Zeichenkette verbindet einen Rang mit einem einbuchstabigen Farbcode. Die Ränge lauten <code>A</code>, <code>2</code> bis <code>10</code>, <code>J</code>, <code>Q</code> und <code>K</code>. Für die Farben steht <code>S</code> für Pik, <code>H</code> für Herz, <code>D</code> für Karo und <code>C</code> für Kreuz. Somit bezeichnet <code>AS</code> das Pik-Ass und <code>10D</code> die Karo-Zehn. Das erste Element ist die oberste Karte, danach folgen die zweite zu ziehende Karte und alle weiteren. Die Funktion teilt keine Hände aus, ergänzt keine Joker, bewertet keine Pokerkombinationen und verändert die Reihenfolge nach der Ausgabe nicht. Diese Entscheidungen trifft Ihre Anwendung. Wenn Sie beispielsweise vier Personen jeweils fünf Karten geben möchten, verarbeiten Sie die ersten zwanzig Einträge nach Ihrem Austeilverfahren. Die einfache, ausdrückliche Ausgabe vermeidet Annahmen über Spielregeln und lässt sich vollständig kopieren, vergleichen, serialisieren oder an eine Simulation übergeben.
Setzen Sie deterministisches Mischen verantwortungsvoll ein
Eine deterministische Mischung dient der Reproduzierbarkeit und nicht der Geheimhaltung. Wer Seed und Algorithmus kennt, kann das gesamte Deck rekonstruieren. Die Funktion eignet sich daher für Tests, Demonstrationen, Simulationen, Rätsel mit veröffentlichtem Seed und Spiele, bei denen Wiederholbarkeit wichtiger als ein verdeckter Zustand ist. Verwenden Sie sie nicht für Glücksspiele, Preise, Sicherheitsentscheidungen oder Situationen, in denen die Vorhersage kommender Karten einen Vorteil verschafft. Nutzen Sie dafür eine kryptografisch sichere Zufallsquelle und halten Sie deren Zustand geheim. Im vorgesehenen Einsatz vereinfacht ein Seed die Fehlersuche erheblich: Nehmen Sie ihn in einen fehlgeschlagenen Testbericht auf, stellen Sie dieselbe Austeilung lokal wieder her und vergleichen Sie das Verhalten Karte für Karte. Mit fortlaufenden Seeds können Sie außerdem eine stabile Sammlung von Szenarien erzeugen, ohne große Fixture-Dateien zu versionieren. Die Implementierung verwendet weder Netzwerk noch Uhr, globalen veränderlichen Zustand, <code>Math.random</code> oder externe Daten. Der feste Deckaufbau und die begrenzten 51 Vertauschungen machen Laufzeit und Ausgabe leicht prüfbar.
Anwendungsfälle
Einen Spielfehler reproduzieren
Speichern Sie den Seed im Fehlerbericht und stellen Sie beim Debuggen von Austeilung oder Wertung dasselbe Startdeck wieder her.
Stabile Test-Fixtures erstellen
Erzeugen Sie realistische gemischte Folgen, die lokal und in der kontinuierlichen Integration unverändert bleiben.
Eine Unterrichtssimulation teilen
Geben Sie allen Teilnehmenden denselben Seed, damit Wahrscheinlichkeitsaufgaben mit einem identischen Deck beginnen.
Häufige Fragen
Was kostet eine Anfrage?
Der API-Preis beträgt $0.002 je Anfrage; dieselbe deterministische Mischung kann im Browser kostenlos ausgeführt werden.
Liefert derselbe Seed immer dasselbe Deck?
Ja. Deckaufbau, Pseudozufallsgenerator und Mischschritte sind festgelegt, daher reproduziert ein zulässiger Seed stets dieselbe Reihenfolge.
Welche Karten sind enthalten?
Das Ergebnis umfasst alle 52 Standardkarten in Pik, Herz, Karo und Kreuz, ohne Joker.
Warum wurde mein Seed abgelehnt?
Er muss eine sichere, exakt darstellbare JSON-Ganzzahl sein. Dezimalzahlen, Zeichenketten, fehlende Werte und zu große Ganzzahlen sind ungültig.
Eignet sich diese Mischung für Glücksspiel oder Sicherheit?
Nein. Sie ist absichtlich reproduzierbar und damit für Personen, die Seed und Algorithmus kennen, vorhersehbar.
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/game/card-deck-shuffle-seeded \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"seed":42}'const res = await fetch("https://api.kit.forhosting.com/game/card-deck-shuffle-seeded", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"seed": 42
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/game/card-deck-shuffle-seeded",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"seed": 42
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/game/card-deck-shuffle-seeded", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"seed":42}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"seed":42}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/game/card-deck-shuffle-seeded", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"seed": 42
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "game.card_deck_shuffle_seeded",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |