Eingang:
1
X
X
X
X XX XXXXXX X X X
X XX XXXXXX X X X
XXX X XX XXXXXX X X X
XXX X XX XXXXXX X X X
Ausgabe:
X.
X..
X...
X.... XX. XXXXXX. X.X.X.
X..... XX.. XXXXXX.. X.X.X..
XXX. X......XX... XXXXXX... X.X.X...
XXX.. X......XX....XXXXXX.... X.X.X....
Eingang:
2
XX
XX
XX
XX
XX
XX XX
XX XX
XX XX
XX XX
Ausgabe:
.XX
..XX
...XX
....XX
.....XX
..XX..XX
...XX..XX
....XX..XX
.....XX..XX
Spezifikation:
- Sie müssen als Eingabe nehmen
- Eine Flagge, die anzeigt, ob das Licht von links oben oder rechts oben kommt. Dies kann
1oder sein2,-1oder1,0oder65536, oder was auch immer für Sie bequem ist, solange beide Flags Ganzzahlen sind. - Zeilen, die entweder aus
Xoderaus Zeichen bestehen, die alle dieselbe Länge haben (dh mit Zeichen aufgefüllt sind)- Alle
Xs befinden sich entweder in der letzten Reihe oder haben eineXdarunter (dh keine schwimmenden Gebäude)
- Alle
- Eine Flagge, die anzeigt, ob das Licht von links oben oder rechts oben kommt. Dies kann
- Sie müssen die Zeilen (Gebäude) mit Schatten ausgeben. Dies geschieht mit folgendem Verfahren:
- Wenn das Licht von oben links kommt, zeichnen Sie ein rechtwinkliges Dreieck von
.s mit der gleichen Höhe und Breite wie die Höhe des Gebäudes. Beginnen Sie mit einem Abstand von einem Feld nach dem rechten Rand und gehen Sie nach rechts. - Andernfalls, wenn es von rechts oben ist, machen Sie dasselbe, aber beginnen Sie an einer Stelle hinter dem linken Rand und zeigen Sie nach links.
- Denken Sie daran, ändern Sie
Xs nicht, indem Sie sie in.s ändern . lass sie wie sie sind. - Es wird immer "Raum" für Ihre Schatten geben, dh wenn sich am Ende ein 3-Feld-Hochhaus befindet, werden mindestens 3 Felder Polsterung folgen.
- Wenn das Licht von oben links kommt, zeichnen Sie ein rechtwinkliges Dreieck von
- Das ist Code-Golf , also gewinnt der kürzeste Code in Bytes!
potatound verwenden while(1){}. Wie in der Frage zitiert, "was auch immer bequem ist."
Regex.Replacedem ich nicht umgehen kann ... habe ich jetzt zwei Probleme?
{}und{-1*}als Flagwerte verwenden?