Generieren Sie den Umriss einer Insel aus einem Samen [geschlossen]


8

Die Herausforderung besteht darin, den Umriss einer 'Insel' zu zeichnen, die unter Verwendung eines Samens als Eingabe erzeugt wird.

  • Eingabe (Startwert): Zeichenfolge mit 6 Zeichen (genau), die nur Kleinbuchstaben zulässt (dh abcdefghijklmnopqrstuvwxyz) - Beispiele: 'Insel', 'aaaaaa', 'jhgcfj'
  • Jeder Samen soll eine einzigartige Insel ergeben (dh keine zwei Samen ergeben die gleiche Leistung)
  • Keine Ausgabe soll eine Transformation der Ausgabe eines anderen Seeds sein. Das ist Translation, Reflexion, Rotation, Skalierung oder eine beliebige Kombination davon.
  • Die Verwendung des gleichen Startwerts sollte immer die gleiche Ausgabe liefern
  • Ausgabe: 600 x 600 Pixel Bild

Eine gültige Insel wird mit einer einzigen Linie gezeichnet, die:

  • bildet eine geschlossene Schleife
  • ist 1px dick ohne Glätten, Verwischen usw.
  • ist kontinuierlich (dh nach dem Zeichnen eines Pixels befindet sich das nächste Pixel in einem der 8 angrenzenden Felder, die nicht belegt sind)
  • kreuzt sich zu keinem Zeitpunkt
  • verlässt nicht die Grenzen des Bildes
  • ist schwarz (# 000), auf einem weißen Hintergrund (#FFF)
  • hat keine Linien der reflektierenden Symmetrie
  • muss Leerzeichen einschließen

Der Quellcode ist auf 500 Byte begrenzt.

Abgesehen davon entscheidet die Popularität; Die meisten Stimmen gewinnen.


6
Ich denke, dass in diesem Fall der Beliebtheitswettbewerb als Deckblatt für eine unvollständige Spezifikation verwendet wird. Ich denke, Sie haben hier etwas vor - ich habe nicht viele Herausforderungen gesehen, die einen Samen als Input und etwas Cooles als Output erfordern. Der Teil, der wirklich Arbeit braucht, ist "es gibt keine spezifischen Kriterien". Wenn Sie möchten, dass die Community einige solide Kriterien erfüllt, können Sie Ihre Frage an die Sandbox senden .
Rainbolt

2
Dies scheint viel zu weit gefasst und ist eher ein Kunstwettbewerb als ein Programmierwettbewerb. So wie es aussieht, könnte fast jeder Code, der einen Farbklecks erzeugt, als "Insel" verkauft werden.
Martin Ender

1
Sie könnten sich von der polygonalen Kartengenerierung für Spiele inspirieren lassen . Der gesamte Prozess ist möglicherweise etwas zu umfassend, aber Sie können ihn eingrenzen.
Rainbolt

3
Ich mag diese Frage! Ich habe für den Abschluss gestimmt, damit wir keine Antwort darauf haben, da wir anscheinend immer noch über die Spezifikation diskutieren. Diese Frage hätte von der Sandbox profitieren können, aber ich denke, wir können sie noch verbessern und wieder öffnen.
hmatt1

2
@chilemagic egal was andere denken, was denkst du? Ich denke, die Art der Frage "Zeichne eine Insel" ist subjektiv. Die Leute werden wahrscheinlich für einen Kurzcode stimmen, der eine realistische Insel zeichnet (wenn es ein Codegolf ist, wird jemand einen Stern zeichnen und die Leute werden sich beschweren, dass er nicht wie eine Insel aussieht.) Ich habe mich häufig dafür ausgesprochen, den Beliebtheitswettbewerb in Codegolf zu ändern, aber für Bestimmte grafische Fragen Ich denke, eine Ausnahme sollte gemacht werden.
Level River St

Antworten:


3

BBC Basic

Hier ist ein sehr einfacher Algorithmus, der für mehr Realismus verfeinert werden könnte. Wenn es weitere Änderungen in den Regeln gibt, bin ich bereit, diese zu ändern / löschen.

Nehmen Sie die 6-stellige Zeichenfolge und fügen Sie }@sie hinzu , um eine Asymmetrie sicherzustellen (diese besondere Auswahl an Zeichen ergibt Inseln, die der Antarktis vage ähneln).

Zeichnen Sie eine Linie, die 8 Punkte in 45-Grad-Intervallen verbindet, wobei der Abstand vom Zentrum durch den ASCII-Code bestimmt wird.

  INPUT a$
  a$=a$+"}@"
  MOVE 364,300
  FOR i=1 TO 8
    r=4*ASC(MID$(a$,i))-192
    DRAW 300+r*COS(i*PI/4),300+r*SIN(i*PI/4)
  NEXT

Geben Sie hier die Bildbeschreibung ein


2
@BetaDecay Schwarz-auf-Weiß wird von der Spezifikation benötigt.
U-Bahn:

Es gibt immer noch Ausgaben, die Variationen voneinander sind - @} zzaa und @} aazz sind Reflexionen voneinander
stolzer Haskeller

1
@proudhaskeller @ und} sind in der Eingabe nicht zulässig. Aus diesem Grund wurden sie ausgewählt, um vor dem Plotten zur Eingabe hinzugefügt zu werden.
Level River St

0

Algoid

Algoid ist eine Sprache ähnlich wie LOGO oder Turtle und basiert fast ausschließlich auf Grafiken.

algo.hide()
algo.setBgColor(15)
algo.setStroke(1)
algo.setColor(0)
algo.goTo(-400,100)
set seed="put seed here".lower()
set letters = "abcdefghijklmnopqrstuvwxyz"
set sides=seed.length()
for (set i=0;i<sides-(sides/6);i++) {
    set letter = seed.getChar(i%seed.length())
    set value = letters.indexOf(letter)*5
    set turn = 360/seed.length()
    algo.go(math.sin(value)*(1500/seed.length()))
    algo.turnRight(turn)
}
algo.lineTo(-400,100)

Samen: supercalifragilisticexpialiadocious even though the sound of it is rather quite atrocious

Samen: islands in the stream

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.