Ein Kartenspiel zu mischen ist für Kinder sehr schwer, daher müssen sie Wege finden, um ein vernünftiges, gut gemischtes Kartenspiel so einfach wie möglich zu erhalten.
Eine Möglichkeit, dies zu tun, die einigermaßen gute Ergebnisse liefert, ist:
- Nehmen Sie die oberste Karte heraus und legen Sie sie an einer beliebigen Stelle in den Stapel
- Nehmen Sie die unterste Karte heraus und legen Sie sie an einer beliebigen Stelle im Stapel ein
- Fahren Sie fort, bis Sie glauben, dass es gut genug ist.
Beachte, dass du niemals eine Karte in den oberen oder unteren Bereich stecken sollst, sie sollte irgendwo im Stapel liegen.
Statt Karten schlurfen, werden wir alphanumerische Zeichen mischen: 0-9
, A-J
, a-j
, q-z
und Q-Z
.
Beginnen Sie mit der unten gezeigten Zeichenfolge und mischen Sie die Zeichen wie oben beschrieben. Sie können wählen, ob Sie das Mischen unendlich fortsetzen oder die Karten 100 Runden lang mischen möchten (100 Karten von oben und 100 Karten von unten).
0123456789abcdefghijqrstuvwxyzABCDEFGHIJQRSTUVWXYZ
Die Herausforderung besteht darin, die zu mischenden Charaktere anzuzeigen. Jedes "Mischen" (Herausnehmen und Einlegen der Karte) muss zwischen 0,25 und 0,35 Sekunden dauern.
Das folgende GIF zeigt eine Beispielausgabe:
Das ist Code-Golf, also gewinnt der kürzeste Code in Bytes.
„Warum gehst du nicht haben a-t
statt a-j
, q-z
?“ Denn dies soll Anzüge von Karten veranschaulichen, nicht nur Charaktere. Und ja, es gibt 5 Anzüge.
Hinweis: Ich habe mich entschieden, das Häkchen bei Code-Golf- Herausforderungen nicht mehr zu verwenden. Relevante Metapostings hier und hier .
0-9
,A-J
,a-j
,q-z
undQ-Z
nach der Frage.Antworten:
JavaScript (ES6),
192188185 BytesBearbeiten: 4 Bytes dank @ L.Serné gespeichert. 3 Bytes dank @Arnauld eingespart.
quelle
e^=1
in den leeren Klammern desMath.random
Aufrufs bewegen . Sie können textContent auch in innerHTML ändern, da Sie keine Sonderzeichen übergeben. Sie könnene
den Wert auch innerhalb destoLowerCase
Anrufs auf 0 setzen .e
. Du könntest es einfach benutzens
. (Weil('some_string'^1) === 1
)MATL,
625856 Bytes2 Bytes gespart dank @Luis
Diese Version wird auf unbestimmte Zeit ausgeführt. Testen Sie die Online-Demo bei MATL Online , einem experimentellen Online-Interpreter, der die dynamische Ausgabe unterstützt. Dies dauert 30 Sekunden (ein hartes Limit, das von der Online-Version vorgegeben wird), wenn es nicht zuerst getötet wird.
Erläuterung
quelle
Perl, 117 Bytes
Um es auszuführen:
Erklärungen:
-
@F=(0..9,a..j,"q"..z,A..J,Q..Z)
Erstellt das erste Deck und speichert es in@F
.-
{...;redo}
führt...
für immer aus.-
splice@F,++$|+rand(@F-2),0,++$v%2?shift@F:pop@F
alternativ das erste / letzte Element von dem Deck entfernen und an einer zufälligen Position eingefügt (während Inkrementieren$|
, so dass die Drucke nicht gepuffert sind),-
print"\r",@F
druckt das Deck,-
select$,,$,,$,,.3
schläft für 0,3 Sekunden (Perlsleep
nicht schlafen kann für weniger als 1 Sekunde),quelle
0..9
nicht1..9
, und dein Anfangsstapel ist auch nicht in Ordnung :)Python 3,
199196192186 Bytes4 Bytes dank TuukkaX und 6 Bytes dank FlipTack!
Verwendet die
print
Funktion von Python 3 , um Zeilenumbrüche zu unterdrücken, die kürzer als die von Python 2 sindsys.stdout.write
.Verwendet eine Flip-Flop-Variable, um zwischen dem Verschieben der oberen und der unteren Karte zu wechseln.
Ungolfed:
quelle
import random,time
kürzer?C,
290285 BytesUngolfed:
quelle
Schnell, 288 Bytes
Golfen in Swift ist immer eine Herausforderung, da Ausdruckskraft eines der Verkaufsargumente ist.
quelle
Rubin (
138119 Bytes)Nicht so kurz wie @PaulPrestidge, aber zumindest verstehe ich das. Auch toll zu lernen, dass Rubin wie ein endloser Tunnel voller Wahnsinn ist!
quelle
Rubin,
111101 ZeichenEndlos wiederholbar.
quelle
Noodel , nicht konkurrierende 41 Bytes
Versuch es:)
Wie es funktioniert
quelle
Bash, 170 Bytes
hier steht '^' (in der ersten Zeile) für
ctrl-m
: in der Befehlszeile alsctrl-v
enter
oder in einem Editor eingegeben, je nachdem , wie Ihr Editor arbeitet (vorausgesetzt, Ihr Editor arbeitet)quelle