¡Imprima una boleta!

16

Como todos saben, ¡hoy es el día de las elecciones!

Su tarea hoy es imprimir una boleta, dada una entrada.

Si la entrada es Hillary Clinton, imprima:

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

Sin embargo, si la entrada es Donald Trump, imprima:

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

Si es algo más, escríbalo en la tercera línea:

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

(Técnicamente, todavía no tengo 18 años ...)

Recuerde, este es el , por lo que gana el código con la menor cantidad de bytes.

Oliver Ni
fuente
8
No "ninguna de las opciones anteriores"? :)
Kritixi Lithos
@KritixiLithos Hm, nah ...
Oliver Ni
8
¿Alguna longitud máxima en el nombre de "otra cosa"? (Hay 18 caracteres antes del primer signo igual en sus ejemplos)
Enlace del
1
¿Es sensible a mayúsculas o minúsculas? A juzgar por los casos de prueba, estoy asumiendo que soy sensible en este momento.
Kevin Cruijssen
@KritixiLithos, ¡pero eso sería manipular el sistema!
OldBunny2800

Respuestas:

6

Jalea, 55 53 bytes

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

Pruébalo en línea!

Explicación

³ẇị⁾- 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
fuente
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
fuente
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 y código de prueba:

Pruébalo aquí

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

Salida:

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
fuente
2

JavaScript (ES6), 149 bytes

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

Manifestación

Arnauld
fuente
1

V , 104 bytes

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

Pruébalo en línea!

Esta respuesta es demasiado hacky y demasiado larga. Supongo que eso es lo que obtienes cuando diseñas un lenguaje de golf a partir de un editor de texto.¯\_(ツ)_/¯

DJMcMayhem
fuente
espera que hace O? Parece que funciona comoi
Conor O'Brien
@conor Eso es correcto, ambos ingresan al modo de inserción. La única diferencia es dónde comienza el cursor en el búfer. También hay iIaAoOsSRque todos ingresan al modo de inserción de una manera u otra
DJMcMayhem
0

Lote, 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%===^>

Nota: la línea @set v=tiene 5 espacios finales y la línea @set t=%~2tiene 18. Acepta la entrada como un parámetro de línea de comando entre comillas.

Neil
fuente
0

C #, 266 bytes

Golfizado:

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

Sin golf:

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

Intenté crear un Func para todos esos PadRights ... Exactamente el mismo número de bytes ...

Pruebas:

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

Utiliza las nuevas cadenas f de 3.6 .

kirbyfan64sos
fuente
0

Pyth, 76 bytes

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