Dies ist mein erster Golfwettbewerb.
Was musst du machen
Bauen Sie mir in kürzester Zeit meine AC-Fernbedienung auf. Mein Zimmer ist momentan zu kalt und ich vermisse meine Fernbedienung.
Nun, ich möchte nicht, dass Sie es buchstäblich bauen oder so, spielen Sie einfach so:
Ein langsamer Temperaturanstieg, der bei 40 Grad beginnt und bei genau 72 Grad endet. Die Inkrementierungszeit muss immer 500 Millis pro Inkrement betragen. Es kann am Ende weitere 500ms warten. Ich würde es jedoch vorziehen, aufzuhören. Das Inkrement selbst muss wie bei meiner Fernbedienung jedes Mal um zwei erhöht werden.
Sie sollten den Bildschirm nicht löschen. Sie sollten Zeilenumbrüche haben.
Was soll passieren
Beispielausgabe (alles in Klammern sollte nicht ausgegeben werden).
40
(wait 500 millis)
42
(wait 500 millis)
44
(..repeat until 72..)
72
(stop or wait 500ms)
Denken Sie daran, dies ist mein erstes Golfspiel, daher entschuldige ich mich, wenn es zu schwer ist, Golf zu spielen. :(
Viel Glück, Golfer!
Antworten:
Bash + Linux-Dienstprogramme, 19
seq
generiert die numerische Ausgabe.pv
begrenzt es auf 2 Zeilen / Sek.quelle
-q
unterdrückt geht zu STDERR, also glaube ich nicht, dass Sie es brauchen.Minecraft 1.9.0+,
204162 Bytes +5836282420 Blöcke =262240232186182 BlytesDiese Lösung ist heruntergespielt und kann in einem oder sogar zwei Screenshots nicht als Ganzes gesehen werden. Verwendet zwei Pannen und missbraucht zwei weitere Features des Spiels
Diese Lösung verwendet die gleichen Prinzipien wie die folgende, nur 4 Blöcke kompakteres Design.
Missbrauch der Tatsache, dass Chain-Befehlsblöcke (grüne Blöcke) nicht von Redstone angetrieben werden können, sondern nur von einem Singal eines Impulsbefehlsblocks (orange).
Missbräuchlich dauert es 0,30 Sekunden, bis die Kolben vollständig ausgefahren sind, und Redstone benötigt nur 0,10 Sekunden, um ein Signal zu registrieren.
Missbraucht auch einen doppelten Fehler, um den Timer (TNT) auszuschalten: Der Redstone neben dem Timer (TNT) wird nicht nur mit Strom versorgt, sondern denkt auch, dass der TNT ein weiterer Redstone ist und treibt ihn an.
Zu all diesen Mißbräuchen, das Signal shortener (was unter dem TNT) ist eine bedienende , nachdem er es seine Form ändert angetrieben wird, so dass passiert Signal durch sich den „Inkrementierer“ (obersten Orange Block)
Einige Erklärungen zur Funktionalität der verschiedenen Teile finden Sie in älteren Lösungen (am besten in der folgenden). Sie können es auch offline ausprobieren! (Vereinfachtes Inkrementieren der Lösung um 4, funktioniert nur in Version 1.11+), indem Sie diesen Befehl in einem Befehlsblock ausführen .
Alte Lösung, Minecraft 1.9.0+, 186 Blytes:
Da TNT normalerweise nach 3.0 in Minecraft explodiert, muss dieses durch einen Befehl (
/setblock
) mit einer angegebenen Sicherung platziert werden. Verwendet auch ein kompakteres Design, um redundanten Befehlsblock (mit 42 Bytes) und Redstone gegenüber den älteren Versionen zu entfernen. Ich bin sicher, das kann nicht niedriger werden ...Ältere Lösung, Minecraft 1.9.0+, 232 Blytes:
Hoppla, ich habe herausgefunden, dass diese älteren Lösungen um 4 ...
Verwendet die 1.9-Befehlsblock-Kettenfunktion (grüner Block), um Blöcke zu speichern. Verwendet auch einen kompakteren Signalkürzer als in den älteren Lösungen
Noch ältere Lösung, Minecraft 1.7.0+, 240 Blytes:
Verwendet einen kompakteren Timer (TNT) als die erste Lösung (unten).
Älteste Lösung, Minecraft 1.7.0+, 262 Blytes:
Dies ist so lang, weil Minecraft mit Variablen umgeht:
So definieren Sie eine Variable (int):
scoreboard objectives add <variable> dummy
So legen Sie einen Wert für eine Variable fest (jede Entität einschließlich der Spieler verfügt über einen eigenen Variablenwert):
scoreboard players set <entity> <variable> <value>
*
kann verwendet werden<entity>
, um alle Entitäten auszuwählen und Bytes zu speichern.Es dürfen nur definierte Variablen verwendet werden
Der Wert der Variablen muss auf eine Zahl und nicht auf eine Variable festgelegt werden
So erhöhen Sie var1 um var2:
scoreboard players operation <entity> var1 += <entity> var2
<entity>
muss eine einzelne Einheit sein, z.@p
nicht*
Screenshots sind von mir selbst, dual lizenziert unter WTFPL und welche Lizenz SE heute (aktuell
cc by-sa 3.0 with attribution required
) verwendet :-)quelle
Vim,
24, 23 Bytes / TastenanschlägeEin Byte gespart dank @Kritixi Lithos!
Geschrieben von meinem Handy, getestet in Mobile Vim (was anscheinend eine echte Sache ist).
Hier ist ein GIF davon:
Und hier ist eine Erklärung von Befehl zu Befehl:
quelle
s
inms
ist optional, können Sie es entfernen , um ein Byte zu speichern :)JavaScript (ES6), 52 Byte
quelle
f=(i=40)=>setTimeout(i>70||f,500,i+2,console.log(i))
. Leider immer noch die gleichen 52 Bytes.50
Byte sein, da Sie dasf=
auf dem Metakonsens basierende nicht zählen müssen, dass anonyme Funktionsdeklarationen zulässig sind?f=
erforderlich, weil die Funktion sich selbst aufrufen muss (als erster ParametersetTimeout
).Jelly ,
13-12BytesProbieren Sie es online! Das Jelly-Programm ist in ein Bash-Skript eingeschlossen, um jeder Ausgabezeile einen Zeitstempel voranzustellen.
Wie es funktioniert
Nach der letzten Iteration wird implizit der Endwert von 72 ausgegeben und das Programm beendet.
quelle
Perl 6 , 30 Bytes
Tut mir leid, dass es wie nicht golfen Code aussieht, ich sehe keine Möglichkeit, es kürzer zu machen ...
Die Version, die direkt nach der letzten Zahl stoppt, würde 37 Bytes betragen:
quelle
36
?.say&sleep(.5) for 40,42...72
29 bytes{
Klammer, die einem anderen Ausdruck ohne Leerzeichen folgt, wird als Beginn eines Hash-Index ("assoziatives Array") interpretiert. Perl 6 ist genau so, weil seine Grammatik absichtlich so konzipiert wurde, dass das Parsen von Quellcode in einem Durchgang (fast) ohne Backtracking möglich ist.Pyth - 12 Bytes
Sehr einfach, benutzt eine for-Schleife von 0-17.
quelle
TI-Basic (nur CE oder CSE), 16 Byte
Beachten Sie, dass viele Befehle Einzelbyte-Token sind.
quelle
For(
,Pause
,End
, Und die Doppelpunkte am Anfang der Linien sind alle einzelnen Bytes.MATL , 14 Bytes
Probieren Sie es in MATL Online aus! Möglicherweise müssen Sie die Seite neu laden, wenn sie anfangs nicht funktioniert.
Erläuterung
Alte Version (vor Spezifikationsänderung), löscht den Bildschirm
Probieren Sie es in MATL Online aus!
quelle
Dyalog APL , 20 Bytes
{
die anonyme Funktion⎕DL
verzögern....5⊣
halbe (eine Sekunde) statt des Wertes von⎕←
print (mit Zeilenvorschub)⍵
das Argument}¨
angewendet auf jeden von38+
achtunddreißig plus2×
zweimal⍳17
die ganzen Zahlen von 1 bis 17quelle
C mit Clang 3.8.1 unter Linux kompiliert,
625958 Bytes2 Bytes gespart dank @ranisalt
59 Bytes
62 Bytes
quelle
** ... **
im Markup verwendet, während der herkömmliche Header auf dieser Site verwendet wird# ...
. Ich habe Ihre Antwort bearbeitet, damit Sie sehen können, wie es gemacht wird.s<72
weiteres Byte gespeichert.Scratch, 5 Blocks
(Speicherplatz 56,0 KB)
(Entschuldigung für die niedrige Auflösung!)
Eigentlich selbsterklärend. Der Variablenwert wird in einem Feld auf der "Bühne" angezeigt.
quelle
Mathematica, 34 Bytes
Volles Programm. Nimmt keine Ein- und Ausgänge auf STDOUT.
quelle
R, 49 Bytes
Sehr triviale Lösung, aber es macht den Trick.
quelle
for
Schleife ist genau die gleiche Länge.Perl 6 , 27 Bytes
say
True
Gibt zurück , was bei Division durch eine Zahl1
erzwungen wird2
.Unicode-Spielereien können bis zu 23 Zeichen umfassen:
Aber das sind 29 UTF-8-codierte Bytes.
quelle
Python 2,
57 5655 BytesBEARBEITEN:
-1 Byte dank Mega Man
-1 Byte dank Flp.Tkc
quelle
Ruby, 33 Bytes
quelle
95 Bytes
Es ist eine einfache for-Schleife, die am Ende weitere 500 ms wartet.
quelle
QBIC , 21 Bytes
QBIC startet eine FOR-Schleife, die von 44 bis 72 läuft und den Zähler bei jeder Schleife um 4 erhöht. Es schläft dann für 1 Sekunde. QBasic hat keinen feinkörnigeren Kontrollbereich
sleep
, deshalb habe ich einen hinzugefügt.
, um das Geben.5
als Argument zu simulieren .quelle
Kotlin, 47 Bytes
Ich denke, es wurde in der Problemstellung nicht gesagt, dass Lösungen tatsächlich ein Inkrement von zwei enthalten sollten, also
40+2*i
ist das hier legal.Wenn als reguläre Kotlin-Quelle geschrieben, mit
main
:(77 Bytes)
UPD : In Kotlin 1.3
args:Array<String>
kann es entfernt werden, also sind es 18 Bytes weniger.Und in Kotlin Script wäre das ganze Programm
(47 Bytes)
quelle
Ruby 31 Bytes
Probieren Sie es online!
quelle
Haskell, 67 Bytes
Wenn Sie nur mit ghc arbeiten möchten, können Sie ein paar Bytes sparen, indem Sie importieren
GHC.Conc
undthreadDelay
anstelle von verwendenusleep
.quelle
PHP, 38 Bytes
verwendet einen Unterstrich als Begrenzer. Laufen Sie mit
-nr
.quelle
Clojure, 54 Bytes
Drittes lisp ftw. Durchläuft einfach den Bereich, druckt und schläft jede Iteration. Am Ende schläft.
Ungolfed:
Eine Version, die am Ende nicht schläft, 66 Bytes
Beachten Sie, dass dies vollständige Programme sind, da in den Anweisungen nicht angegeben wird. Fügen Sie jedem Byte ein, wenn eine Funktion erforderlich ist.
quelle
Schläger 46 Bytes
Ungolfed:
Befehl zum Ausführen:
(f)
quelle
Oktave,
3835 Bytes3 Bytes gespart dank @LuisMendo durch den Wechsel
endfor
zuend
Probieren Sie es online!
Ich bin neu bei Octave, daher könnte diese Lösung noch weiter verbessert werden. Irgendwelche Tipps sind willkommen!
Ungolfed
quelle
Python 2,
5758 BytesBearbeiten
Gezählt als 57 Bytes auf meinem Handy, aber TIO sagt 58, jetzt wo ich wieder auf meinem eigenen Rechner bin, ist das mein letztes Angebot. Interessanterweise scheint TIO das Timeout nicht zu respektieren und wartet nur und druckt dann die gesamte Liste auf einmal aus. Funktioniert mit QPython für Android und Python 2 auf meiner Ubuntu-Box, das ist also gut genug für mich.
Probieren Sie es online!
Wäre
5859 in Python 3, also schlägt @ sonrad10 sowieso nicht.quelle
range(...)
R,
4442 BytesEine direkte For-Loop-Variante gibt es wahrscheinlich auch für Golfer. (Außerdem ist die durchgestrichene 44 immer noch die reguläre 44 ...)
quelle
F #, 60 Bytes
async{for i in 40..2..72 do printfn"%d"i;do!Async.Sleep 500}
Dies ist ein asynchroner Ausdruck, um ihn auszuführen, übergeben Sie ihn an
Async.Start
oderAsync.RunSynchronously
.quelle
Noodel , nicht konkurrierende 10 Bytes
Kann nicht teilnehmen, da Noodel geboren wurde, nachdem die Herausforderung erstellt wurde :(
Versuch es:)
Wie es funktioniert
Es gibt keine Version von Noodel , die die in dieser Antwort verwendete Syntax unterstützt. Hier ist eine korrekte Version:
quelle