Aus diesem Grund bauen Familien aus aller Welt Weihnachtsbäume.
Aber dieser normale Baum kann nach einer Weile langweilig werden, also machen wir einen ASCII-Baum!
Blätter werden durch dargestellt #
und müssen wie in der Beispielausgabe gezeigt angeordnet werden. Wir haben 5 Bälle ( O
) und 5 Zuckerstangen ( J
), die wir zufällig um den Baum legen. Wir haben auch eine Kerze oben drauf.
Eingabe: keine
Ausgabe:
^
|
###
##O##
#######
#####
####J##
#########
####O######
#############
###J###
#########
####O###J##
#######O#####
###J########O##
###########J#####
###
###
Regeln (wenn es nicht in den Regeln steht, nimm an, dass du kannst)
Kugeln und Zuckerstangen müssen zufällig auf den Baum gelegt werden und mindestens ein Blatt dazwischen haben, wobei die Diagonalen nicht berücksichtigt werden.
Jedes Blatt muss eine Chance von ungleich Null haben, einen Ball oder eine Zuckerstange zu bekommen.
In jeder Zeile können sich führende oder nachfolgende Leerzeichen befinden, solange der Baum die richtige Form hat.
Dies ist Code-Golf , also gewinnt der kürzeste Code in Zeichen.
Antworten:
JavaScript (ES6), 148 Byte
Hoffentlich sollte dies der Bedingung "Zufällig genug" entsprechen.
Demo
Code-Snippet anzeigen
quelle
j=new Date
mitj=0
aufj=12
.)CS-Script - 306 Bytes
Nochmals mit Formatierung und Kommentaren:
Es ist im Grunde C #, aber mit CS-Script kann ich die gesamte Kesselplatte überspringen.
Probieren Sie es hier aus!
Anmerkungen:
Dadurch wird derzeit eine weitere Zeile mit Leerzeichen unterhalb des Baums ausgegeben, um sicherzustellen, dass beim Überprüfen auf vorhandene Ornamente darunter keine IndexOutOfBoundsException ausgelöst wird. Andere Lösungen wären:
Ich überlasse es dem OP, wenn dies geändert werden sollte.
Zum Schluss ist dies mein erstes Golfspiel, daher ist jedes Feedback willkommen. ;)
quelle
using System;
in Ihre Byteanzahl aufnehmen müssen, da Sie sie nicht verwenden könnenRandom
oderConsole
nicht. meta.codegolf.stackexchange.com/questions/10081/… Es tut uns leid, 13 Bytes hinzuzufügen :(using System;
wird nichts benötigt (es importiert automatisch allgemeine Namespaces). Aber vielleicht spalte ich die Haare. ¯_ (ツ) _ / ¯_=>{var c=... return c;}
TSQL,
556532494476 BytesDieses Skript muss in der master-Datenbank ausgeführt werden
Golf gespielt:
Ungolfed:
Versuch es
quelle
Python 3 -
450427 BytesIch weiß, es
450
ist zu viel für Python. Aber aber.....Wenn das
for i in'O'*...
in eine bessere rekursive Funktion umgewandelt wird, können viele Bytes reduziert werden.Probieren Sie es hier aus
Bearbeiten :
2 Bytes durch Verwendung
;
als Trennzeichen und mehrere Bytes durch Verwendung der Anzahl der Zeilenumbrüche als 1 Byte gespeichert.quelle
JavaScript, 204 Byte
quelle
\n
als 1 Byte?PHP, 200 Bytes
könnte kürzer sein mit einem ausgefeilteren Ansatz; aber ich habe es eilig
benötigt PHP 5.6 oder 7.0. Laufen Sie mit
-nr
oder versuchen Sie es online .quelle
Scala, 329 Bytes
quelle