Nachdem Sie in einem dunklen Raum aufgewacht sind, sehen Sie ein rechteckiges Lichtgitter mit entsprechenden Schaltern. Sie entscheiden sich für ein Koordinatensystem, bei dem das untere linke Licht (1,1) darstellt und die Koordinaten mit zunehmender Steigung (y-Richtung) und nach rechts (x-Richtung) zunehmen. Die Gitter sind insofern identisch, als durch Umlegen des Schalters bei (a, b) das Licht bei (a, b) sowie die Lichter in derselben Spalte oder derselben Zeile wie ( a, b).
Ihre Eingabe besteht aus einem rechteckigen Raster mit zwei unterschiedlichen Zeichen, die für Ein und Aus stehen (ich verwende jeweils 1 und 0). Außerdem besteht ein Teil der Eingabe aus einer Reihe von mindestens einem Koordinatenpaar (mit dem von Ihnen gewünschten Format und Abstand), das die von Ihnen umgedrehten Schalter darstellt.
Die Ausgabe ist dasselbe Raster, wobei die "Umkehrung" auf jedes der Koordinatenpaare angewendet wird, die als Eingabe angegeben wurden. Sie können festlegen, wie Ihre Eingabe formatiert werden soll. Die Ausgabe muss jedoch ein Raster und kein Array sein.
Proben
Probeneingabe 1
111111
111111
111111
111111
(3,2)
Beispielausgabe 1
110111
110111
000000
110111
Probeneingabe 2
01101
10100
00010
11111
10110
(1,1), (5,5)
Beispielausgabe 2
00010
00101
10011
01110
01000
Probeneingabe 3
1
(1,1)
Beispielausgabe 3
0
Probeneingabe 4
00000
11111
00000
11111
(2,3), (2,3)
Beispielausgabe 4
00000
11111
00000
11111
Das ist Code Golf. Es gelten Standardregeln. Kürzester Code in Bytes gewinnt.
<grid><RETURN><coordinate_x><RETURN><coordinate_y><RETURN>
?Antworten:
CJam,
3736 BytesDie Eingabe sollte zuerst das Raster enthalten, wobei zwei beliebige Nicht-NULL-Zeichen verwendet werden, die sich nur im letzten Bit (also
0
und1
work) unterscheiden, gefolgt von einer CJam-ähnlichen Liste von Koordinatenpaaren.Teste es hier.
quelle
Dyalog APL, 20 Bytes
Dies ist eine dyadische Funktion, die das Anfangsgitter rechts und die Koordinatenliste links verwendet.
Um ein einzelnes Koordinatenpaar einzugeben, verwenden Sie zB
(⊂2 3)
als linkes Argument.Probieren Sie es hier aus .
quelle
MATL , 39 Bytes
Die Eingabe hat die folgende Form (das Beispiel entspricht der Beispieleingabe 2 in der Challenge):
Die erste Eingabe ist eine Matrix, die das Raster von
0
und definiert1
.;
ist das Zeilentrennzeichen. Die zweite Eingabe ist eine Matrix von Koordinatenpaaren, wobei jede Spalte ein Paar ist.Beispiel
Erläuterung
quelle
Ruby 114 Bytes
Nimmt als Eingabe:
g
ein Array von Arrays, die das Startgitter darstellen.o
ein Array von Punkten, wobei jeder Punkt ein Array mit zwei Elementen ist, wie[x, y]
.quelle