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.

Oliver Ni
quelle
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
PurkkaKoodari
quelle
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+'===>'
TFeld
quelle
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===-----===>
Kevin Cruijssen
quelle
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

Arnauld
quelle
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.¯\_(ツ)_/¯

DJMcMayhem
quelle
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.

Neil
quelle
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       ===-----===>
Pete Arden
quelle
0

Python 3.6, 132 Bytes

i=input()
s=['Hillary Clinton','Donald Trump','_'*12]
if x not in s:s[2]=i
for k in s:print(f'{k:18}==={" -"[k==i]*5}===>')

Verwendet die neuen F-Strings von 3.6 .

kirbyfan64sos
quelle
0

Pyth, 76 Bytes

V{+_tW!}zJ[*\_12"Donald Trump""Hillary Clinton")Jzs[.[Nd18K*\=3*?qzN\-d5K\>
kirbyfan64sos
quelle