Mach mir Sushi

11

Es ist Mittagszeit, ich habe Hunger und bin in Ihre Sushi-Bar gekommen. Sie sind der Sushi-Chef und müssen ein vollständiges Programm oder eine vollständige Funktion erstellen, um mir Sushi zu machen!

Geben Sie hier die Bildbeschreibung ein Credits: Wikipedia

Haftungsausschluss: Das Bild dient nur zu Illustrationszwecken und stellt nicht unbedingt das genaue Produkt dar.

Obwohl Sie nur begrenzte Zutaten haben (aufgrund eines Streiks der Lkw-Fahrer), ist das für mich in Ordnung.

Die Zutaten, die Sie haben (in ausreichender Menge), sind:

  • Nori - Algen (hergestellt mit: \/_¯|)
  • Roher Thunfisch ( T)
  • Roher Lachs ( S)
  • Rohe Avocado ( A)
  • Sushi Reis ( o)

Mit diesen Zutaten können Sie einige schöne Makis für Ihre Kunden machen.

Ihre Mindestbestellmenge beträgt 1 US-Dollar für 2 Makis. Sie machen Makis nur zu zweit und akzeptieren nur Ganzzahlen als Zahlungsmittel. Sie akzeptieren Bestellungen bis zu 50 USD pro Person (Gesamteingabe), weil Sie alleine sind und alle Ihre Kunden zufrieden stellen müssen.

Sie müssen die Bestellungen des Kunden von der Standardeingabe in einem angemessenen Format abrufen, zum Beispiel: [1,T],[2,S],[3,A]Dies bedeutet, dass Sie Folgendes ausgeben müssen:

  • Zwei Thunfisch-Makis
  • Vier Lachs Makis
  • Sechs Avocado Makis

Ein Maki ist genau so gemacht:

   _____  
  /ooooo\ 
 |ooTTToo|
 |\ooooo/|
 | ¯¯¯¯¯ |
  \_____/ 

Und da Sie ein guter Sushi-Koch sind, ordnen Sie die Makis immer mit den Stücken eines bestimmten Typs in einer quadratischen Form oder höchstens in einer rechteckigen Form (so nah wie möglich an einem Quadrat) ohne Lücken an. Die Gesamtform ist auch quadratisch oder rechteckig, so nah wie möglich an einem Quadrat angesichts der obigen Einschränkung, ohne Lücken.

Beispiel für Ein- / Ausgänge:

Input: [1,T],[2,S],[3,A]

Valid Output:
  _____    _____    _____    _____  
 /ooooo\  /ooooo\  /ooooo\  /ooooo\ 
|ooTTToo||ooTTToo||ooAAAoo||ooAAAoo|
|\ooooo/||\ooooo/||\ooooo/||\ooooo/|
| ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ |
 \_____/  \_____/  \_____/  \_____/ 
  _____    _____    _____    _____  
 /ooooo\  /ooooo\  /ooooo\  /ooooo\ 
|ooSSSoo||ooSSSoo||ooAAAoo||ooAAAoo|
|\ooooo/||\ooooo/||\ooooo/||\ooooo/|
| ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ |
 \_____/  \_____/  \_____/  \_____/ 
  _____    _____    _____    _____  
 /ooooo\  /ooooo\  /ooooo\  /ooooo\ 
|ooSSSoo||ooSSSoo||ooAAAoo||ooAAAoo|
|\ooooo/||\ooooo/||\ooooo/||\ooooo/|
| ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ |
 \_____/  \_____/  \_____/  \_____/ 

Valid Output:
  _____    _____    _____    _____  
 /ooooo\  /ooooo\  /ooooo\  /ooooo\ 
|ooAAAoo||ooAAAoo||ooSSSoo||ooSSSoo|
|\ooooo/||\ooooo/||\ooooo/||\ooooo/|
| ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ |
 \_____/  \_____/  \_____/  \_____/ 
  _____    _____    _____    _____  
 /ooooo\  /ooooo\  /ooooo\  /ooooo\ 
|ooAAAoo||ooAAAoo||ooSSSoo||ooSSSoo|
|\ooooo/||\ooooo/||\ooooo/||\ooooo/|
| ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ |
 \_____/  \_____/  \_____/  \_____/ 
  _____    _____    _____    _____  
 /ooooo\  /ooooo\  /ooooo\  /ooooo\ 
|ooAAAoo||ooAAAoo||ooTTToo||ooTTToo|
|\ooooo/||\ooooo/||\ooooo/||\ooooo/|
| ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ |
 \_____/  \_____/  \_____/  \_____/   

Not Valid Output:
  _____    _____    _____    _____  
 /ooooo\  /ooooo\  /ooooo\  /ooooo\ 
|ooTTToo||ooAAAoo||ooSSSoo||ooAAAoo|
|\ooooo/||\ooooo/||\ooooo/||\ooooo/|
| ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ |
 \_____/  \_____/  \_____/  \_____/ 
  _____    _____    _____    _____  
 /ooooo\  /ooooo\  /ooooo\  /ooooo\ 
|ooSSSoo||ooAAAoo||ooTTToo||ooAAAoo|
|\ooooo/||\ooooo/||\ooooo/||\ooooo/|
| ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ |
 \_____/  \_____/  \_____/  \_____/ 
  _____    _____    _____    _____  
 /ooooo\  /ooooo\  /ooooo\  /ooooo\ 
|ooSSSoo||ooSSSoo||ooAAAoo||ooAAAoo|
|\ooooo/||\ooooo/||\ooooo/||\ooooo/|
| ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ |
 \_____/  \_____/  \_____/  \_____/ 

Not Valid Output:
  _____    _____    _____    _____    _____    _____    _____    _____    _____    _____    _____    _____
 /ooooo\  /ooooo\  /ooooo\  /ooooo\  /ooooo\  /ooooo\  /ooooo\  /ooooo\  /ooooo\  /ooooo\  /ooooo\  /ooooo\
|ooTTToo||ooTTToo||ooSSSoo||ooSSSoo||ooSSSoo||ooSSSoo||ooAAAoo||ooAAAoo||ooAAAoo||ooAAAoo||ooAAAoo||ooAAAoo|
|\ooooo/||\ooooo/||\ooooo/||\ooooo/||\ooooo/||\ooooo/||\ooooo/||\ooooo/||\ooooo/||\ooooo/||\ooooo/||\ooooo/|
| ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ |
 \_____/  \_____/  \_____/  \_____/  \_____/  \_____/  \_____/  \_____/  \_____/  \_____/  \_____/  \_____/ 


Not Valid Output:
  _____    _____    _____    _____    _____    _____    _____
 /ooooo\  /ooooo\  /ooooo\  /ooooo\  /ooooo\  /ooooo\  /ooooo\
|ooTTToo||ooTTToo||ooSSSoo||ooSSSoo||ooSSSoo||ooSSSoo||ooAAAoo|
|\ooooo/||\ooooo/||\ooooo/||\ooooo/||\ooooo/||\ooooo/||\ooooo/|
| ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ |
 \_____/  \_____/  \_____/  \_____/  \_____/  \_____/  \_____/ 
  _____    _____    _____    _____    _____  
 /ooooo\  /ooooo\  /ooooo\  /ooooo\  /ooooo\ 
|ooAAAoo||ooAAAoo||ooAAAoo||ooAAAoo||ooAAAoo|
|\ooooo/||\ooooo/||\ooooo/||\ooooo/||\ooooo/|
| ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ |
 \_____/  \_____/  \_____/  \_____/  \_____/ 


Input: [1,S]

Valid Output:
  _____    _____  
 /ooooo\  /ooooo\ 
|ooSSSoo||ooSSSoo|
|\ooooo/||\ooooo/|
| ¯¯¯¯¯ || ¯¯¯¯¯ |
 \_____/  \_____/ 

Valid Output:
  _____  
 /ooooo\ 
|ooSSSoo|
|\ooooo/|
| ¯¯¯¯¯ |
 \_____/ 
  _____  
 /ooooo\ 
|ooSSSoo|
|\ooooo/|
| ¯¯¯¯¯ |
 \_____/ 


Input: [1,A],[1,T],[1,S]

Valid Output:
  _____    _____    _____  
 /ooooo\  /ooooo\  /ooooo\ 
|ooAAAoo||ooTTToo||ooSSSoo|
|\ooooo/||\ooooo/||\ooooo/|
| ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ |
 \_____/  \_____/  \_____/ 
  _____    _____    _____  
 /ooooo\  /ooooo\  /ooooo\ 
|ooAAAoo||ooTTToo||ooSSSoo|
|\ooooo/||\ooooo/||\ooooo/|
| ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ |
 \_____/  \_____/  \_____/ 

Valid Output:
  _____    _____    _____  
 /ooooo\  /ooooo\  /ooooo\ 
|ooTTToo||ooTTToo||ooAAAoo|
|\ooooo/||\ooooo/||\ooooo/|
| ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ |
 \_____/  \_____/  \_____/ 
  _____    _____    _____  
 /ooooo\  /ooooo\  /ooooo\ 
|ooSSSoo||ooSSSoo||ooAAAoo|
|\ooooo/||\ooooo/||\ooooo/|
| ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ |
 \_____/  \_____/  \_____/ 

Input: [1,T],[1,A],[2,S]

Valid Output:
  _____    _____    _____    _____  
 /ooooo\  /ooooo\  /ooooo\  /ooooo\ 
|ooTTToo||ooTTToo||ooAAAoo||ooAAAoo|
|\ooooo/||\ooooo/||\ooooo/||\ooooo/|
| ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ |
 \_____/  \_____/  \_____/  \_____/ 
  _____    _____    _____    _____  
 /ooooo\  /ooooo\  /ooooo\  /ooooo\ 
|ooSSSoo||ooSSSoo||ooSSSoo||ooSSSoo|
|\ooooo/||\ooooo/||\ooooo/||\ooooo/|
| ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ |
 \_____/  \_____/  \_____/  \_____/ 

Valid Output:
  _____    _____    _____    _____  
 /ooooo\  /ooooo\  /ooooo\  /ooooo\ 
|ooTTToo||ooTTToo||ooSSSoo||ooSSSoo|
|\ooooo/||\ooooo/||\ooooo/||\ooooo/|
| ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ |
 \_____/  \_____/  \_____/  \_____/ 
  _____    _____    _____    _____  
 /ooooo\  /ooooo\  /ooooo\  /ooooo\ 
|ooAAAoo||ooAAAoo||ooSSSoo||ooSSSoo|
|\ooooo/||\ooooo/||\ooooo/||\ooooo/|
| ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ |
 \_____/  \_____/  \_____/  \_____/     

Valid Output:
  _____    _____  
 /ooooo\  /ooooo\ 
|ooAAAoo||ooAAAoo|
|\ooooo/||\ooooo/|
| ¯¯¯¯¯ || ¯¯¯¯¯ |
 \_____/  \_____/ 
  _____    _____  
 /ooooo\  /ooooo\ 
|ooSSSoo||ooSSSoo|
|\ooooo/||\ooooo/|
| ¯¯¯¯¯ || ¯¯¯¯¯ |
 \_____/  \_____/ 
  _____    _____  
 /ooooo\  /ooooo\ 
|ooSSSoo||ooSSSoo|
|\ooooo/||\ooooo/|
| ¯¯¯¯¯ || ¯¯¯¯¯ |
 \_____/  \_____/ 
  _____    _____  
 /ooooo\  /ooooo\ 
|ooTTToo||ooTTToo|
|\ooooo/||\ooooo/|
| ¯¯¯¯¯ || ¯¯¯¯¯ |
 \_____/  \_____/   


Input: [1,T],[1,S],[7,A]

Valid Output:
  _____    _____    _____    _____    _____    _____    _____    _____    _____  
 /ooooo\  /ooooo\  /ooooo\  /ooooo\  /ooooo\  /ooooo\  /ooooo\  /ooooo\  /ooooo\ 
|ooSSSoo||ooSSSoo||ooAAAoo||ooAAAoo||ooAAAoo||ooAAAoo||ooAAAoo||ooAAAoo||ooAAAoo|
|\ooooo/||\ooooo/||\ooooo/||\ooooo/||\ooooo/||\ooooo/||\ooooo/||\ooooo/||\ooooo/|
| ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ |
 \_____/  \_____/  \_____/  \_____/  \_____/  \_____/  \_____/  \_____/  \_____/ 
  _____    _____    _____    _____    _____    _____    _____    _____    _____  
 /ooooo\  /ooooo\  /ooooo\  /ooooo\  /ooooo\  /ooooo\  /ooooo\  /ooooo\  /ooooo\ 
|ooTTToo||ooTTToo||ooAAAoo||ooAAAoo||ooAAAoo||ooAAAoo||ooAAAoo||ooAAAoo||ooAAAoo|
|\ooooo/||\ooooo/||\ooooo/||\ooooo/||\ooooo/||\ooooo/||\ooooo/||\ooooo/||\ooooo/|
| ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ |
 \_____/  \_____/  \_____/  \_____/  \_____/  \_____/  \_____/  \_____/  \_____/    

 Valid Output:
  _____    _____     
 /ooooo\  /ooooo\    
|ooAAAoo||ooAAAoo|   
|\ooooo/||\ooooo/|   
| ¯¯¯¯¯ || ¯¯¯¯¯ |   
 \_____/  \_____/    
  _____    _____     
 /ooooo\  /ooooo\    
|ooAAAoo||ooAAAoo|   
|\ooooo/||\ooooo/|   
| ¯¯¯¯¯ || ¯¯¯¯¯ |   
 \_____/  \_____/    
  _____    _____     
 /ooooo\  /ooooo\    
|ooAAAoo||ooAAAoo|   
|\ooooo/||\ooooo/|   
| ¯¯¯¯¯ || ¯¯¯¯¯ |   
 \_____/  \_____/    
  _____    _____     
 /ooooo\  /ooooo\    
|ooAAAoo||ooAAAoo|   
|\ooooo/||\ooooo/|   
| ¯¯¯¯¯ || ¯¯¯¯¯ |   
 \_____/  \_____/    
  _____    _____     
 /ooooo\  /ooooo\    
|ooAAAoo||ooAAAoo|   
|\ooooo/||\ooooo/|   
| ¯¯¯¯¯ || ¯¯¯¯¯ |   
 \_____/  \_____/    
  _____    _____     
 /ooooo\  /ooooo\    
|ooAAAoo||ooAAAoo|   
|\ooooo/||\ooooo/|   
| ¯¯¯¯¯ || ¯¯¯¯¯ |   
 \_____/  \_____/    
  _____    _____     
 /ooooo\  /ooooo\    
|ooAAAoo||ooAAAoo|   
|\ooooo/||\ooooo/|   
| ¯¯¯¯¯ || ¯¯¯¯¯ |   
 \_____/  \_____/        
  _____    _____     
 /ooooo\  /ooooo\    
|ooSSSoo||ooSSSoo|   
|\ooooo/||\ooooo/|   
| ¯¯¯¯¯ || ¯¯¯¯¯ |   
 \_____/  \_____/    
  _____    _____       
 /ooooo\  /ooooo\  
|ooTTToo||ooTTToo|
|\ooooo/||\ooooo/|
| ¯¯¯¯¯ || ¯¯¯¯¯ |
 \_____/  \_____/   

Regeln:

Mario
quelle
3
"Du bist der Sushi-Mann": Ich glaube, dass die Annahme, dass der Leser männlich ist, eine Manifestation unbewusster geschlechtsspezifischer Vorurteile ist, die dazu beiträgt, dass Frauen und nicht-binäre Menschen sich in technischen Kontexten unwillkommen fühlen.
Greg Martin
2
@ GregMartin danke für deinen Kommentar. Du hast recht. Ich habe den Titel und den Text geändert, um Geschlechtsangaben zu vermeiden.
Mario
Super, ich mag die Änderungen!
Greg Martin
[1,T],[2,S],[3,A]Ist es im ersten Testfall gültig oder ungültig, sie so anzuordnen, dass die obere Reihe TTSA, die zweite Reihe SSSA und die untere Reihe AAAA ist? Es ist nicht klar, ob dies "alle ähnlichen Typen nahe beieinander" erfüllt; sie berühren sich sicherlich.
Greg Martin
@GregMartin Nein, es ist nicht gültig, wie Sie vorgeschlagen haben. Sie müssen jede einzelne Gruppe in Quadrate oder Rechtecke anordnen. In Ihrem Fall sind dies S und A nicht. Dies kann beispielsweise SSSS, TAAA, TAAA sein.
Mario

Antworten:

2

Python 3, 314 313 Bytes

l=["  _____  "," /ooooo\ ","|oo%s%s%soo|","|\ooooo/|","| ¯¯¯¯¯ |"," \_____/ "];T=('T',)*3;S=('S',)*3;A=('A',)*3;i=eval('['+input()+']');x=sum(map(lambda x:x[0],i));m=[]
for f in i:m+=[f[1]]*f[0]
for p in 1,0:
    for j in l:
        for k in range(x):print((j%m[k]if '%s' in j else j),end='')
        print()

Mein Versuch bei dieser Herausforderung. Es ist schwer!

Beispielausgabe:

[1,T],[1,S],[7,A]
  _____    _____    _____    _____    _____    _____    _____    _____    _____  
 /ooooo\  /ooooo\  /ooooo\  /ooooo\  /ooooo\  /ooooo\  /ooooo\  /ooooo\  /ooooo\ 
|ooTTToo||ooSSSoo||ooAAAoo||ooAAAoo||ooAAAoo||ooAAAoo||ooAAAoo||ooAAAoo||ooAAAoo|
|\ooooo/||\ooooo/||\ooooo/||\ooooo/||\ooooo/||\ooooo/||\ooooo/||\ooooo/||\ooooo/|
| ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ |
 \_____/  \_____/  \_____/  \_____/  \_____/  \_____/  \_____/  \_____/  \_____/ 
  _____    _____    _____    _____    _____    _____    _____    _____    _____  
 /ooooo\  /ooooo\  /ooooo\  /ooooo\  /ooooo\  /ooooo\  /ooooo\  /ooooo\  /ooooo\ 
|ooTTToo||ooSSSoo||ooAAAoo||ooAAAoo||ooAAAoo||ooAAAoo||ooAAAoo||ooAAAoo||ooAAAoo|
|\ooooo/||\ooooo/||\ooooo/||\ooooo/||\ooooo/||\ooooo/||\ooooo/||\ooooo/||\ooooo/|
| ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ || ¯¯¯¯¯ |
 \_____/  \_____/  \_____/  \_____/  \_____/  \_____/  \_____/  \_____/  \_____/ 
Niemand ist hier
quelle
Anstatt Tabulatoren zu verwenden, können Sie Leerzeichen für Einrückungen der Ebene 1 und Tabulatoren für Einrückungen der Ebene 2 verwenden. Dadurch sparen Sie insgesamt 2 Bytes.
Post Rock Garf Hunter
Der Platz in '%s' inist auch unnötig.
Post Rock Garf Hunter
Sie brauchen den Platz danach nicht mehr if. Python2 würde Ihnen einen Einzug und auch die Eingabe der Druckanzeige ersparen. Karten sind länger als Verständnis, wenn Sie Lambdas verwenden müssen.
Maltysen