Der Ausbruch des Eyjafjallajökull?


18

Im Jahr 2010 brach ein isländischer Vulkan namens Eyjafjallajökull aus, was dazu führte, dass mein lang geplanter Flug abgesagt wurde.

Sollte dies jemals wieder vorkommen, würde ich es gerne im Voraus wissen. Helfen Sie mir also, ein einfaches visuelles Warnsystem aufzubauen!

Eingang

Verwenden Sie den Warncode für vulkanische Aktivitäten des Icelandic Meteorological Office als Eingabe (Zeichenfolge):

GRÜN - Der Vulkan befindet sich im normalen, nicht ausbrechenden Zustand.

GELB - Der Vulkan zeigt Anzeichen erhöhter Unruhe über den bekannten Hintergrundwerten.

ORANGE - Vulkan zeigt erhöhte Unruhe mit erhöhter Wahrscheinlichkeit eines Ausbruchs.

ROT - Es wird ein bevorstehender Ausbruch prognostiziert, bei dem wahrscheinlich eine erhebliche Ascheabgabe in die Atmosphäre erfolgt.

Ausgabe

Die grafische Warnung (ASCII-Grafik), die den Zustand von Eyjafjallajökull veranschaulicht.

GRÜN (Eyjafjallajökull ruht sich aus)

      al   la 
     j       j
  jaf         öku
 y               l
E                 l
-------------------

GELB (etwas Rauch tritt auf!)

       ~   ~
         ~
      al   la 
     j       j
  jaf         öku
 y               l
E                 l
-------------------

ORANGE (mehr Rauch!)

      ~  ~  ~
       ~   ~
         ~
      al   la 
     j       j
  jaf         öku
 y               l
E                 l
-------------------

ROT (noch mehr Rauch und auch etwas Asche!)

   `~ ~ ~ ~ ~ ~`
    ` ~  ~  ~ ` 
     ` ~   ~ ` 
       ` ~ `  
      al   la 
     j       j
  jaf         öku
 y               l
E                 l
-------------------

Regeln

  • Sie können auf dem Bildschirm (stdout) ausgeben oder eine Zeichenfolge zurückgeben
  • Das ist ! Die kürzeste Antwort (in Bytes) gewinnt
  • Fühlen Sie sich frei, ö durch o zu ersetzen
  • Nachgestellte Leerzeichen sind zulässig, aber nicht erforderlich
  • Maximal eine nachgestellte Zeile ist erlaubt
  • Maximal 4 führende Zeilenumbrüche sind erlaubt (anstelle von Rauch)

Ausgesprochen AY-JAH-FUH-JUH-AH-LAH-JUh-KUh-EW-LUH:?
Magic Octopus Urn

@carusocomputing - Fast geschafft! :)
Zeppelin

Zumindest ist es kürzer als Tungnafellsjökull : P
FlipTack

@DrMcMoylex Nein, nur ein Tippfehler, sollte jetzt behoben werden. Vielen Dank !
Zeppelin

Sie scherzen, dass der Name nicht präzise ist, aber er ist tatsächlich sehr beschreibend und kürzer als seine englische Übersetzung "Island Mountain Glacier" und klingt auch viel schöner. : P
Martin Ender

Antworten:


2

Rubin, 161

Hier ist meine Einstellung zu Islands berühmtem Wahrzeichen, dem Eyjafjallajökull-Turm.

Ziemlich kurz, aber ich habe mir noch keinen guten Weg ausgedacht, um Golf zu spielen.

->n{m=85-n[-3].ord>>2
%w{`~+~+~+~+~+~` `+~++~++~+` `+~+++~+` `+~+` al%3sla j%7sj jaf%9soku y%15sl E%17sl}.map{|i|(i%"").tr(?++?`*m," ").center(19)}[m,9]+[?-*19]}

Ungolfed im Testprogramm

f=->n{m=85-n[-3].ord>>2     #From ASCII code of 3rd from last letter, derive m=0 for RED up to 4 for GREEN (uppercase.)
  %w{`~+~+~+~+~+~` `+~++~++~+` `+~+++~+` `+~+` al%3sla j%7sj jaf%9soku y%15sl E%17sl}.
  map{|i|                   #For each line above decode as follows:
    (i%"").                 #Replace %Xs with X spaces, by inserting  empty strings and padding sprintf style. 
    tr(?++?`*m," ").        #Replace + with space. If not red, replace ` with space.
    center(19)}[m,9]+       #Centre output to 19 characters per line. Start printing at line m and go on to the end (never more than 9 lines.)
  [?-*19]                   #Add a row of --- at the bottom.
}

puts f[gets.chomp]

6

Batch, 284 Bytes

@set e=echo 
@%e%off
set s=      
set t=   
goto %1
:RED
set t= ` 
%e%   `~ ~ ~ ~ ~ ~`
:ORANGE
%e%   %t%~  ~  ~%t%
:YELLOW
%e%    %t%~   ~%t%
%e%%s%%t%~%t%
:GREEN
%e%%s%al   la 
%e%     j%s% j
%e%  jaf %s%  oku
%e% y %s%%s%  l
%e%E%s%%s%%s%l
%e%--------------------

Hinweis: Die Zeilen 1 und 7 enthalten ein Leerzeichen, Zeile 3 sechs und Zeile 4 drei.


1
Gute Verwendung von goto.
NoOneIsHere

1

PHP, 307 288 279 Bytes

$o=" ";while($x<19)$o[$x+19*(($d=abs($x-9))>4?$d>7?$d-5:2:$d>3)]="Eyjafjal   lajokull"[$x++];echo strtr((($n=ord($argv[1])/8&3)-2?"":"   1~ ~ ~ ~ ~ ~2\n").($n%3?"     1~  ~  ~2\n":"").($n?"      1~   ~2\n       1 ~ 2\n":"").chunk_split(str_pad($o,114,"-"),19),12,$n-2?"  ":"`´");

hässlich sperrig

Nervenzusammenbruch

$o=" ";                                         // 0.init $o to string
while($x<19)$o[$x+19*(                      // 1.paint volcano
    ($d=abs($x-9))>4?$d>7?$d-5:2:$d>3           // 1a map [0..19] to row offsets
    )]="Eyjafjal   lajokull"[$x++];
echo strtr(                                     // 7. print
    (($n=ord($argv[1])/8&3)                     // 4.map GYOR to 0312
        -2?"":"   1~ ~ ~ ~ ~ ~2\n")             // 5a.add smoke & stuff for red
        .($n%3?"     1~  ~  ~2\n":"")           // 5b for orange
        .($n?"      1~   ~2\n       1 ~ 2\n":"")// 5c for yellow
    .chunk_split(                               // 3.insert linebreaks
        str_pad($o,114,"-")                     // 2.add ground
    ,19)
,12,$n-2?"  ":"`´");        // 6.replace stuff with ticks for red, with blanks else

1

JavaScript (ES6), 235 220 218 Bytes

c=>[344,592,160,640,192,32,28,2,1,~0].map(n=>(s='6222222661116600660').replace(/./g,(_,i)=>n&(1<<i|512>>i-9)?(s+'6allajjjafökuylEl')[p++]||'-':' '),p=0).join`
`.replace(/\d/g,n=>n%4<'GYOR'.search(c[0])?n&4?'`':'~':' ')


1

JavaScript (ES6), 286 262 199 194 183 Bytes

Übergeben Sie die Eingabe an die Funktion f(), z f('GREEN').

Y=`7~3~
9~
`
f=n=>({G:'',Y,O:`5 ~2~2~
`+Y,R:'3`~ ~ ~ ~ ~ ~`\n4` ~2~2~ `\n5` ~3~ `\n7` ~ `\n'}[n[0]]+`6al3la
5j7j
2jaf9oku
 y15l
E17l
`+'-'.repeat(19)).replace(/\d+/g,n=>' '.repeat(n))

-63 Bytes: Regex anstelle von Funktion zum Generieren von Leerzeichen verwendet.


Lohnt es sich swirklich? Nach meiner Zählung spart es 4 Bytes ... kostet aber 16 Bytes. Andererseits denke ich, dass Sie ein paar Bytes sparen könnten, indem Sie _mehr verwenden.
Neil

Erzeugt ungültige Ergebnisse für ORANGE (Rauch ist nicht richtig ausgerichtet)
Zeppelin

@Neil Ja, ich habe damit gerechnet, dass ich es öfter brauche, als ich es wirklich getan habe. : P
darrylyeo

@zeppelin Behoben.
Darrylyeo

es scheitert jetzt bei "r ist nicht definiert" für mich :(
zeppelin

1

> <> (Fisch) 351 339 302 Bytes

\l?!;o00.>~00.
\a"-------------------"a"l                 E"a"l               y "a"ukö         faj  "a"j       j     "a" al   la      "
\i:"R"-?!v
 " `  "a~<|.!00"   `~ ~ ~ ~ ~ ~`"a"    ` ~  ~  ~ ` "a"     ` ~   ~ ` "a"       ` ~"
\ :"G"-?!v
\}a"~         "a"~   ~       "
\{:"Y"-?!v
\~a"~  ~  ~      "

Im Moment bin ich ziemlich einfach und hässlich. Ich arbeite daran, es tiefer zu spielen, aber der 'RED'-Eingang erschwert die Wiederverwendung von Linien.

Edit 1; Die anfängliche Vulkanzeichenfolge wurde auf 1 Zeile verschoben, um Zeilenumbrüche zu reduzieren. Die "ROTE" Zeichenfolge wurde in umgekehrter Richtung verschoben, um den leeren Raum zu füllen. (12 Bytes gespeichert)

Bearbeiten 2; O-Häkchen entfernen und nur drucken, wenn die anderen 3 nicht eingegeben wurden (es werden keine nicht "grünen", "roten", "orange" oder "gelben" Eingaben angegeben) zusätzliche Befehle (37 Bytes gespeichert)

Online-Version zum Testen!


0

Python 2, 209 Bytes (208 Zeichen)

s=' '
y=' ~ '
v='ROY G'.index(input()[0])
a='` '[v>0]
print'\n'.join([s*3+a+'~'+' ~'*5+a,s*4+a+y*3+a,s*5+a+y*2+a,s*7+a+y+a,s*6+'al   la ',s*5+'j       j\n  jaf'+s*9+'öku\n y'+s*15+'l\nE'+s*17+'l','-'*19][v:])
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.