Créez un jeu Janken en une seule ligne (python)

python3.8 + uniquement

code

print("a|b|c"*-~-((a:=input("a:Par\nb:Choki\nc:Goo\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 octets

Commentaire

Tout d'abord, peut-être que cela peut être plus court ...

Eh bien pour faciliter la compréhension

import random

a = input("a:Par\nb:Choki\nc:Goo")
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}")

C'est comme ça? Je le change un peu.

La chose la plus mystérieuse est probablement "- ~ -". Cela signifie que ~ -est -1 (- ~ est +) et il est plus loin-. Si ʻa dans "abc" ʻest True (parce que bool est une sous-classe de int), il vaut -1 et devient-, donc il devient -0, c'est-à-dire 0, et si False, il devient 1. En bref, cela signifie que non 〇〇 est écrit court. (Dans le cas du bas, il devient plus long, mais dans le cas du haut, il devient plus court)

Alors, est-ce b + a dans" abbcca "? C'est un jugement de gagner ou de perdre. Il peut être plus facile à comprendre si vous le séparez de ab / bc / ca.

__import__ est une fonction qui importe le module spécifié par l'argument et renvoie l'objet. (N'est-ce pas correct?) Eh bien, voir ici pour plus de détails.

Est-ce quelque chose comme ~~~ * ~~~ ou ~~~ * ~~~ ou ...? Ceci est basé sur le fait qu'une chaîne de caractères vide devient False en python. J'ai généralement envie de l'utiliser comme str * bool.

finalement

N'hésitez pas à commenter si vous avez des questions, si vous pouvez écrire plus court ou si vous pouvez écrire plus clairement: souriez:

Recommended Posts

Créez un jeu Janken en une seule ligne (python)
Segfo python en une ligne
Fizzbuzz en Python (en une ligne)
Créer un bookmarklet en Python
CGI Server (1) édition python en une ligne
Faisons un jeu de shiritori avec Python
Décomposer les arguments de commande en une seule ligne en Python
[Python] Inversion de valeur booléenne en une ligne
Faisons un calcul de combinaison avec Python
Faisons un jeu de squash
Une doublure en Python
J'ai essayé de jouer à un jeu de frappe avec Python
Je veux faire un jeu avec Python
Copiez la liste en Python
Créez un tracé de R semblable à un joyplot avec python
Notes J'ai recherché la création d'outils de ligne de commande en Python
Créez un jeu à la Tetris!
Combinez des chaînes répétitives en une seule avec des expressions régulières Python.
Essayez de créer un module Python en langage C
Spécifiez une sous-commande comme argument de ligne de commande en Python
[API LINE Messaging] Créez un menu riche avec Python
Créez un Slackbot simple avec un bouton interactif en python
Essayez de créer un jeu simple avec Python 3 et iPhone
[Pour jouer] Essayez de faire de Yuma un robot LINE (Python)
Laissez Python segfo sur une ligne sans utiliser de ctypes
[Super facile] Faisons un LINE BOT avec Python.
Prendre une capture d'écran en Python
Créer une fonction en Python
Créer un dictionnaire en Python
DMD en Python 1D
Essayez LINE Notify avec Python
Ne faites pas test.py en Python!
Créer un LINE BOT (chat)
Faites une loterie avec Python
Rendre Opencv disponible en Python
Segfo python en 2 lignes
Dessinez un cœur en Python
J'ai fait un jeu de frappe simple avec tkinter de Python
[En une seule ligne] Visualisez comme une pelouse avec seulement des pandas
Créer un tableau de multiplication de chaque élément dans une feuille de calcul (Python)
Décrypter une ligne de code en Python lambda, carte, liste
J'ai fait un jeu de puzzle (comme) avec Tkinter of Python
J'ai fait un chronomètre en utilisant tkinter avec python
Je veux ajouter un joli complément à input () en python
Probablement dans un serpent Nishiki (Titre original: Peut-être en Python)
Ecrire une dichotomie en Python
[Python] Créez votre propre bot LINE
[python] Gérer les fonctions dans une liste
Appuyez sur une commande en Python (Windows)
Faisons une interface graphique avec python.
Dessinez une matrice de diagramme de dispersion avec python
ABC166 en Python A ~ C problème
Ecrire des algorithmes A * (A-star) en Python
Rendre la sortie standard non bloquante en Python
Implémentation du jeu de vie en Python