Zurück zum Wesentlichen...
Als Lehrer an der örtlichen Grundschule (Grundschule?) Müssen Sie Ihrer Klasse die Stundenpläne beibringen. Zu Ihrer Verfügung stehen hundert Quadrate und eine Ladung roter Stifte. Sie müssen auch in der Lage sein, Ihrer Klasse schnell die richtigen Antworten zu zeigen.
Jetzt sind Sie klug genug, um ein Programm zu schreiben, das Stundenpläne erstellen kann, aber können Sie sie auf hundert Quadrat zeichnen?
Die Herausforderung
Geben Sie ein Hundert Quadrat nach Standard oder gleichwertig aus, indem Sie Ansi-Escape-Codes verwenden, um Zahlen zu schattieren, die ein Vielfaches der Eingabe sind.
- Geben Sie ein 10x10-Raster mit den Zahlen 1-100 aus.
- Die Ausrichtung von 2-stelligen Zahlen in jedem Feld spielt keine Rolle, solange es konsistent ist
- Bei 1-stelligen Zahlen können Sie auf 2 Stellen auffüllen und dieselbe Formatierung wie bei 2-stelligen Zahlen verwenden oder in der Mitte des Felds zentrieren.
- Wenn die Zahl in der Box ein Vielfaches der Eingabe ist, färben Sie die gesamte Box rot.
- Dies bedeutet die ganze Box, nicht nur den Zahlenteil
3
Drucken Sie beispielsweise bei gegebener Eingabe das angegebene Hundertquadrat
Dies ist Code Golf, also gewinnt die kürzeste Antwort in Bytes!
code-golf
arithmetic
grid
Blau
quelle
quelle
<table>
zum Beispiel nicht verwenden ?white
odergrey
?curses
sollte keine Rolle spielen - Rot ist sowieso kurz.Antworten:
Python 2, 166 Bytes
♥
Durch Oktal ersetzen033
(das ANSI-Escape-Zeichen).Erläuterung
Wir behandeln die Ausgabe als
41×21
Raster und berechnen direkt das Zeichen und die Farbe an jedem Punkt.Das heißt, die Struktur des Codes ist:
für eine Funktion
F
.Das Ergebnis von
F
hat immer die folgende Form:Wir verwenden die Formatzeichenfolge
'\33[%dm%s\33[m'
, wobei die erste%d
entweder 0 oder 41 ist und%s
das Zeichen ist, das wir drucken möchten.Für die Farbe haben wir folgende Formel:
Ich werde dies nicht vollständig erklären, aber es durchläuft im Grunde alle Rechtecke, die rot gefärbt sein sollten, und prüft, ob sie
(x, y)
sich in einem von ihnen befinden.Beachten Sie die Verwendung von Operator Verkettungs: Ich schrieb
-1<A<5 and -1<B<3
in5>A>-1<B<3
.Für den Charakter haben wir die folgende Formel:
Wenn
y % 2 == 0
dannx = 0, 1, …
dafür generiert wird+---+---+---…
Wenn
y % 2 == 1
dannx = 0, 1, …
dafür generiert wird| p |p+1|p+2…
quelle
Julia,
219182169167 BytesSo verwendet:
!7
Ungolfed:
Beachten Sie, dass dies für maximale Lesbarkeit sehr ungolfed ist.
quelle
HTML + Javascript, 379
HTML:
Javascript:
jsfiddle.
quelle