Stimmzettel ausdrucken!


16

Wie Sie alle wissen, ist heute Wahltag!

Ihre Aufgabe heute ist es, einen Stimmzettel mit einer Eingabe auszudrucken.

Wenn die Eingabe lautet Hillary Clinton, drucken Sie:

Hillary Clinton   ===-----===>
Donald Trump      ===     ===>
____________      ===     ===>

Wenn die Eingabe jedoch ist Donald Trump, drucken Sie:

Hillary Clinton   ===     ===>
Donald Trump      ===-----===>
____________      ===     ===>

Wenn es sich um etwas anderes handelt, schreiben Sie es in die dritte Zeile:

Hillary Clinton   ===     ===>
Donald Trump      ===     ===>
Oliver Ni         ===-----===>

(Technisch bin ich noch nicht 18 ...)

Denken Sie daran, das ist , also gewinnt der Code mit den wenigsten Bytes.


8
Nein "keine der oben genannten Optionen"? :)
Kritixi Lithos

@KritixiLithos Hm, nah ...
Oliver Ni

8
Gibt es eine maximale Länge für den Namen "etwas anderes"? (In Ihren Beispielen stehen 18 Zeichen vor dem ersten Gleichheitszeichen.)
Link Ng

1
Ist es case sensitive oder unempfindlich? Gemessen an den Testfällen gehe ich momentan von Sensibilität aus.
Kevin Cruijssen

@KritixiLithos aber das würde das System manipulieren!
OldBunny2800

Antworten:


6

Jelly, 55 53 Bytes

³ẇị⁾- x5⁾ =,”=x3¤j;”>ṭ
ṭ“Gụ©l⁴“%eŻƤ(»”_x12¤ṭQḣ3z⁶ZÇ€Y

Probieren Sie es online!

Erläuterung

³ẇị⁾- x5⁾ =,”=x3¤j;”>ṭ   Helper link. Argument: row
³ẇ                       Check if the user's vote is in this row
  ị⁾-                    Take "-" if it was, " " otherwise
      x5                 Take five of that character
        ⁾ =,”=           Take the array [" =", "="]
              x3         Turn it into ["   ===", "==="]
                ¤        Combine the two previous steps into a nilad
                 j       Join the list by the five character string
                  ;”>    Add ">"
                     ṭ   Prepend the original row

ṭ“Gụ©l⁴“%eŻƤ(»”_x12¤ṭQḣ3z⁶ZÇ€Y   Main link. Argument: vote
 “Gụ©l⁴“%eŻƤ(»                   Take the array ["Hillary Clinton", "Donald Trump"]
ṭ                                Add the user's vote to the list
              ”_                 Take "_"
                x12              Take twelve times that
                   ¤             Combine the two previous steps into a nilad
                    ṭ            Add that string to the list
                     Q           Remove duplicates
                      ḣ3         Take the three first items
                        z⁶       Transpose, padding with spaces
                          Z      Transpose back
                           ǀ    Apply the helper to each row
                             Y   Join with newlines

4

Python 2, 127 Bytes

X=['Hillary Clinton','Donald Trump']
i=input()
X+=[[i],['_'*12]][i in X]
for x in X:print x.ljust(18)+'==='+' -'[i==x]*5+'===>'


2

Java 7, 390 339 335 Bytes

String c(String s){String h="Hillary Clinton",d="Donald Trump",r=h+"   ===Q===>\n"+d+"      ===X===>\nZ===J===>";boolean H=h.equals(s),D=d.equals(s);for(int i=s.length();i++<18;s+=" ");return r.replace(H?"Q":D?"X":"J","-----").replace(H|D?"Z":"~","____________      ").replaceAll(H?"X|J":D?"Q|J":"Q|X","     ").replace(H|D?"~":"Z",s);}

Ungolfed & Testcode:

Probieren Sie es hier aus.

class M{
  static String c(String s){
    String h = "Hillary Clinton",
           d = "Donald Trump",
           r = h+"   ===Q===>\n"+d+"      ===X===>\nZ===J===>";
    boolean H = h.equals(s),
            D = d.equals(s);
    for(int i = s.length(); i++ < 18; s += " ");
    return r.replace(H?"Q":D?"X":"J", "-----")
            .replace(H|D?"Z":"~", "____________      ")
            .replaceAll(H?"X|J":D?"Q|J":"Q|X", "     ")
            .replace(H|D?"~":"Z", s);
  }

  public static void main(String[] a){
    System.out.println(c("Hillary Clinton"));
    System.out.println();
    System.out.println(c("Donald Trump"));
    System.out.println();
    System.out.println(c("Anyone else?.."));
    System.out.println();
    System.out.println(c("S"));
    System.out.println();
    System.out.println(c("Anyone who is willing to take the job"));
  }
}

Ausgabe:

Hillary Clinton   ===-----===>
Donald Trump      ===     ===>
____________      ===     ===>

Hillary Clinton   ===     ===>
Donald Trump      ===-----===>
____________      ===     ===>

Hillary Clinton   ===     ===>
Donald Trump      ===     ===>
Anyone else?..    ===-----===>

Hillary Clinton   ===     ===>
Donald Trump      ===     ===>
S                 ===-----===>

Hillary Clinton   ===     ===>
Donald Trump      ===     ===>
Anyone who is willing to take the job===-----===>

2

JavaScript (ES6), 149 Byte

s=>['Hillary Clinton','Donald Trump',0].map(S=>((S?S:s||'____________')+p+p+p+p+p).slice(0,18)+`===${!S^S==s?(s=0,'-----'):p}===>`,p='     ').join`
`

Demo


1

V , 104 Bytes

OHillary Clinton³ ³=µ ³=>YpRDonald Trump   p15r_ñ/^¨á« ᫾©.*î¨.*î©*\1
22|5r-Gdññ3GjéRDk@"Í_/ 
22|5r-

Probieren Sie es online!

Diese Antwort ist viel zu abgedreht und viel zu lang. Ich denke, das bekommen Sie, wenn Sie eine Golf-Sprache aus einem Texteditor entwerfen.¯\_(ツ)_/¯


Warten Sie, was macht O? Es sieht aus wie es funktionierti
Conor O'Brien

@conor Richtig, beide wechseln in den Einfügemodus. Der einzige Unterschied besteht darin, wo im Puffer der Cursor beginnt. Es gibt auch, iIaAoOsSRdass alle auf die eine oder andere Weise in den Einfügemodus wechseln
DJMcMayhem

0

Stapel, 210 Bytes

@set s=%1
@call:l %1 "Hillary Clinton"
@call:l %1 "Donald Trump"
@call:l %1 %s%
@exit/b
:l
@set v=     
@if %1==%2 set v=-----&set s=____________
@set t=%~2                  
@echo %t:~0,18%===%v%===^>

Anmerkung: Die Zeile @set v=enthält 5 nachgestellte Leerzeichen und die Zeile @set t=%~218. Akzeptiert Eingaben als Befehlszeilenparameter in Anführungszeichen.


0

266 Bytes

Golf gespielt:

string B(string s){var h="Hilary Clinton".PadRight(17);var d="Donald Trump".PadRight(17);var r="===     ===>\n";var c=r.Replace(" ", "-");var b="____________".PadRight(17);return s==h.Trim()?s.PadRight(17)+c+d+r+b+r:s==d.Trim()?h+r+d+c+b+r:h+r+d+r+s.PadRight(17)+c;}

Ungolfed:

public string B(string s)
{
  var h = "Hilary Clinton".PadRight(17);
  var d = "Donald Trump".PadRight(17);
  var r = "===     ===>\n";
  var c = r.Replace(" ", "-");
  var b = "____________".PadRight(17);
  return s == h.Trim() ? s.PadRight(17) + c + d + r + b + r :
    s == d.Trim() ? h + r + d + c + b + r :
      h + r + d + r + s.PadRight(17) + c;
}

Versucht, eine Funktion für alle diese PadRights zu erstellen ... Genau die gleiche Byteanzahl ...

Testen:

var printABallot = new PrintABallot();
Console.WriteLine(printABallot.B("Hilary Clinton"));

Hilary Clinton   ===-----===>
Donald Trump     ===     ===>
____________     ===     ===>


Console.WriteLine(printABallot.B("Donald Trump"));

Hilary Clinton   ===     ===>
Donald Trump     ===-----===>
____________     ===     ===>


Console.WriteLine(printABallot.B("Kanye West"));

Hilary Clinton   ===     ===>
Donald Trump     ===     ===>
Kanye West       ===-----===>


0

Pyth, 76 Bytes

V{+_tW!}zJ[*\_12"Donald Trump""Hillary Clinton")Jzs[.[Nd18K*\=3*?qzN\-d5K\>
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.