Wydrukuj kartę do głosowania!

16

Jak wszyscy wiecie, dziś jest dzień wyborów!

Twoim zadaniem dzisiaj jest wydrukowanie karty do głosowania, biorąc pod uwagę wkład.

Jeśli dane wejściowe to Hillary Clinton, wydrukuj:

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

Jeśli jednak dane wejściowe to Donald Trump, wydrukuj:

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

Jeśli jest to coś innego, napisz to w trzecim wierszu:

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

(Technicznie nie mam jeszcze 18 lat ...)

Pamiętaj, to jest , więc wygrywa kod z najmniejszą liczbą bajtów.

Oliver Ni
źródło
8
Nie ma „żadnej z powyższych opcji”? :)
Kritixi Lithos
@KritixiLithos Hm, nah ...
Oliver Ni
8
Dowolna maksymalna długość nazwy „coś innego”? (W twoich przykładach jest 18 znaków przed pierwszym znakiem równości)
Link Ng
1
Czy wielkość liter ma znaczenie czy nie? Sądząc po przypadkach testowych, zakładam, że w tej chwili jestem wrażliwy.
Kevin Cruijssen
@KritixiLithos, ale to byłoby oszustwo w systemie!
OldBunny2800,

Odpowiedzi:

6

Galaretka, 55 53 bajtów

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

Wypróbuj online!

Wyjaśnienie

³ẇị⁾- 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
źródło
4

Python 2, 127 bajtów

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
źródło
2

Java 7, 390 339 335 bajtów

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);}

Kod niepoznany i testowy:

Wypróbuj tutaj.

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"));
  }
}

Wynik:

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
źródło
2

JavaScript (ES6), 149 bajtów

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`
`

Próbny

Arnauld
źródło
1

V , 104 bajtów

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

Wypróbuj online!

Ta odpowiedź jest zdecydowanie zbyt zuchwała i zbyt długa. Wydaje mi się, że to właśnie dostajesz, projektując język golfa z edytora tekstu.¯\_(ツ)_/¯

DJMcMayhem
źródło
czekaj co robi O? Wygląda na to, że działa jaki
Conor O'Brien
@conor Zgadza się, oba wchodzą w tryb wstawiania. Jedyną różnicą jest to, gdzie w buforze zaczyna się kursor. Jest też tak, iIaAoOsSRże wszyscy w taki czy inny sposób wchodzą w tryb wstawiania
DJMcMayhem
0

Partia, 210 bajtów

@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%===^>

Uwaga: wiersz @set v=ma 5 końcowych spacji, a wiersz @set t=%~2ma 18. Akceptuje dane wejściowe jako cytowany parametr wiersza polecenia.

Neil
źródło
0

C #, 266 bajtów

Gra w golfa:

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;}

Nie golfowany:

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;
}

Próbowałem stworzyć Func dla wszystkich PadRights ... Dokładnie taka sama liczba bajtów ...

Testowanie:

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
źródło
0

Python 3.6, 132 bajty

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}===>')

Wykorzystuje nowe ciągi F 3.6 .

kirbyfan64sos
źródło
0

Pyth, 76 bajtów

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