Mach ein Janken-Spiel in einer Zeile (Python)

Nur Python3.8 +

Code

print("a|b|c"*-~-((a:=input("a:Par\nb:Choki\nc:Schmiere\n"))in"abc")or"Draw"*((b:=__import__("random").choice("abc"))==a)or"You "+"lwoisne"[b+a in"abbcca"::2],f"\nyou:{a} pc:{b}")

185 Bytes

Kommentar

Zuallererst kann es vielleicht kürzer sein ...

Gut, um es verständlicher zu machen

import random

a = input("a:Par\nb:Choki\nc:Schmiere")
b = random.choice("abc")
if -~-(a in "abc"):
    print("a|b|c")
elif a == b:
    print("Draw")
else:
    print("win" if b+a in "abbcca" else "lose")
print(f"you:{a} pc:{b}")

Ist es so Ich ändere es ein wenig.

Das wahrscheinlich mysteriöseste ist - ~ -. Dies bedeutet, dass ~ -ist -1 (- ~ ist +) und es ist weiter-. Wenn a in" abc " True ist (weil bool eine Unterklasse von int ist), ist es -1 und wird-, also wird es -0, dh 0, und wenn False, wird es 1. Kurz gesagt bedeutet dies, dass nicht 〇〇 kurz geschrieben ist. (Im Fall der Unterseite wird es länger, aber im Fall der Oberseite wird es kürzer)

Ist es dann b + a in" abbcca "? Dies ist ein Urteil über das Gewinnen oder Verlieren. Es ist möglicherweise einfacher zu verstehen, wenn Sie es von ab / bc / ca. trennen.

__import__ ist eine Funktion, die das durch das Argument angegebene Modul importiert und das Objekt zurückgibt. (Ist es nicht korrekt?) Weitere Informationen finden Sie unter hier.

Ist es so etwas wie "~~~ * ~~~ oder ~~~ * ~~~ oder ..."? Dies basiert auf der Tatsache, dass eine leere Zeichenfolge in Python zu False wird. Normalerweise möchte ich es wie "str * bool" verwenden.

Schließlich

Fühlen Sie sich frei zu kommentieren, wenn Sie Fragen haben, wenn Sie kürzer schreiben können oder wenn Sie klarer schreiben können: Lächeln:

Recommended Posts

Mach ein Janken-Spiel in einer Zeile (Python)
Segfo Python in einer Zeile
Fizzbuzz in Python (in einer Zeile)
Erstellen Sie ein Lesezeichen in Python
CGI Server (1) Python Edition in einer Zeile
Lassen Sie uns mit Python ein Shiritori-Spiel machen
Zerlegen Sie Befehlsargumente in einer Zeile in Python
[Python] Bool-Wertinversion in einer Zeile
Lassen Sie uns eine Kombinationsberechnung mit Python durchführen
Lass uns ein Squashspiel machen
Ein Liner in Python
Ich habe versucht, mit Python ein Tippspiel zu spielen
Ich möchte ein Spiel mit Python machen
Kopieren Sie die Liste in Python
Machen Sie mit Python eine Joyplot-ähnliche Handlung von R.
Hinweise Ich habe nachgeschlagen, um Befehlszeilentools in Python zu erstellen
Mach ein Spiel im Tetris-Stil!
Kombinieren Sie sich wiederholende Zeichenfolgen mit regulären Python-Ausdrücken zu einer.
Versuchen Sie, ein Python-Modul in C-Sprache zu erstellen
Geben Sie in Python einen Unterbefehl als Befehlszeilenargument an
[LINE Messaging API] Erstellen Sie mit Python ein umfangreiches Menü
Erstellen Sie einen einfachen Slackbot mit einer interaktiven Schaltfläche in Python
Versuchen Sie, ein einfaches Spiel mit Python 3 und iPhone zu erstellen
[Zum Spielen] Versuche Yuma zu einem LINE Bot zu machen (Python)
Lassen Sie Python in einer Zeile segfo, ohne ctypes zu verwenden
[Super einfach] Machen wir einen LINE BOT mit Python.
Machen Sie einen Screenshot in Python
Erstellen Sie eine Funktion in Python
Erstellen Sie ein Wörterbuch in Python
DMD in Python 1D
Versuchen Sie LINE Notify mit Python
Mach nicht test.py in Python!
Machen Sie einen LINE BOT (Chat)
Machen Sie eine Lotterie mit Python
Stellen Sie Opencv in Python zur Verfügung
Segfo Python in 2 Zeilen
Zeichne ein Herz in Python
Ich habe ein einfaches Tippspiel mit tkinter of Python gemacht
[In einer Zeile] Visualisiere wie ein Rasen mit nur Pandas
Erstellen Sie eine Multiplikationstabelle für jedes Element in einer Tabelle (Python).
Entschlüsseln Sie eine Codezeile in Python Lambda, Karte, Liste
Ich habe mit Tkinter of Python ein Puzzlespiel (wie) gemacht
Ich habe eine Stoppuhr mit tkinter mit Python gemacht
Ich möchte eine schöne Ergänzung zu input () in Python hinzufügen
Wahrscheinlich in einer Nishiki-Schlange (Originaltitel: Vielleicht in Python)
Schreiben Sie eine Dichotomie in Python
[Python] Erstelle deinen eigenen LINE-Bot
[Python] Verwalten Sie Funktionen in einer Liste
Drücken Sie einen Befehl in Python (Windows)
Lassen Sie uns eine GUI mit Python erstellen.
Zeichnen Sie eine Streudiagrammmatrix mit Python
ABC166 in Python A ~ C Problem
Schreiben Sie A * (A-Stern) -Algorithmen in Python
Machen Sie die Standardausgabe in Python nicht blockierend
Implementierung eines Lebensspiels in Python