In một lá phiếu!


16

Như các bạn đã biết, hôm nay là ngày bầu cử!

Nhiệm vụ của bạn hôm nay là in ra một lá phiếu, đưa ra một đầu vào.

Nếu đầu vào là Hillary Clinton, in:

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

Tuy nhiên, nếu đầu vào là Donald Trump, in:

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

Nếu nó là một cái gì đó khác, viết nó trên dòng thứ ba:

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

(Về mặt kỹ thuật, tôi chưa 18 tuổi ...)

Hãy nhớ rằng, đây là , vì vậy mã có ít byte nhất sẽ thắng.


8
Không "không có lựa chọn nào ở trên"? :)
Kritixi Lithos

@KritixiLithos Hừm, ...
Oliver Ni

8
Bất kỳ độ dài tối đa trên tên của "cái gì khác"? (Có 18 ký tự trước dấu bằng đầu tiên trong ví dụ của bạn)
Liên kết Ng

1
Là trường hợp nhạy cảm hoặc không nhạy cảm? Đánh giá bằng các trường hợp thử nghiệm Tôi cho rằng nhạy cảm vào lúc này.
Kevin Cruijssen

@KritixiLithos nhưng đó sẽ là hệ thống gian lận!
OldBunny2800

Câu trả lời:


6

Thạch, 55 53 byte

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

Hãy thử trực tuyến!

Giải trình

³ẇị⁾- 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 byte

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 byte

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

Mã thử nghiệm & mã hóa:

Hãy thử nó ở đây.

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

Đầu ra:

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

Bản giới thiệu


1

V , 104 byte

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

Hãy thử trực tuyến!

Câu trả lời này là cách quá hack, và cách quá dài. Tôi đoán đó là những gì bạn nhận được khi bạn thiết kế một ngôn ngữ chơi golf của trình soạn thảo văn bản.¯\_(ツ)_/¯


chờ đợi những gì không Olàm? Có vẻ như nó hoạt động nhưi
Conor O'Brien

@conor Đúng vậy, cả hai đều vào chế độ chèn. Sự khác biệt duy nhất là nơi con trỏ bắt đầu. Ngoài ra còn iIaAoOsSRcó tất cả các chế độ chèn theo cách này hay cách khác
DJMcMayhem

0

Mẻ, 210 byte

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

Lưu ý: dòng @set v=có 5 dấu cách và dòng @set t=%~2có 18. Chấp nhận đầu vào dưới dạng tham số dòng lệnh được trích dẫn.


0

C #, 266 byte

Chơi gôn

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

Ung dung:

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

Đã thử tạo Func cho tất cả các PadRights đó ... Chính xác là cùng một số byte ...

Kiểm tra:

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

Bình thường, 76 byte

V{+_tW!}zJ[*\_12"Donald Trump""Hillary Clinton")Jzs[.[Nd18K*\=3*?qzN\-d5K\>
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.