CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Python] "Press any key to continue"

[hard]ware
[hard]ware
Niveau 14
14 février 2015 à 20:24:35

Salut :hap:

J'ai du temps à perdre, donc je suis en train de coder un p'tit truc en m'inspirant de ça :
http://danstonchat.com/8565.html
:hap:

Je rencontre cependant un petit problème.
Je fais un simple

input("Press any key to continue...")

Le truc c'est que l'utilisateur doit donc forcément appuyer sur "Enter", même si juste avant il a tapé "espace" ou une lettre....
Du coup ça casse un peu le truc :hap:

Du coup, comment faire pour "passer à la suite" dès que l'utilisateur a tapé quelque chose, une seule touche ?
Et pour aller plus loin, je voudrais aussi stocker cette touche dans une liste (ou un dictionnaire... Lequel serait le plus approprié ?), facile donc si l'utilisateur a tapé "a" par exemple, mais s'il a tapé "tab", "shift"... Plus difficile :hap:

Voilà voilà, si quelqu'un a du temps à tuer pour m'aider je lui en serait reconnaissant :ok:

:merci:

PS : C'est pas inutile non plus, ça reste de l'apprentissage, ça me resservira très probablement plus tard.

moxo75
moxo75
Niveau 6
14 février 2015 à 20:53:17

En partant du principe que tu veux faire un programme en ligne de commande il faut que tu passe ton terminal en mode raw et que tu mette min input a 1.

https://docs.python.org/2/library/tty.html

[hard]ware
[hard]ware
Niveau 14
14 février 2015 à 21:32:09

Le 14 février 2015 à 20:53:17 moxo75 a écrit :
En partant du principe que tu veux faire un programme en ligne de commande il faut que tu passe ton terminal en mode raw et que tu mette min input a 1.

https://docs.python.org/2/library/tty.html

Merci je ne comprends pas du tout ton truc :hap:
Je ne comprends pas à quoi ça sert et je ne comprends pas la syntaxe, je sais pas quoi écrire.... :(

Ace_Attorney
Ace_Attorney
Niveau 10
14 février 2015 à 22:25:55

Le 14 février 2015 à 20:53:17 moxo75 a écrit :
En partant du principe que tu veux faire un programme en ligne de commande il faut que tu passe ton terminal en mode raw et que tu mette min input a 1.

https://docs.python.org/2/library/tty.html

Je pense que tu te prends méchamment la tête.
https://pypi.python.org/pypi/getch

[hard]ware
[hard]ware
Niveau 14
14 février 2015 à 23:43:46

Le 14 février 2015 à 22:25:55 Ace_Attorney a écrit :

Le 14 février 2015 à 20:53:17 moxo75 a écrit :
En partant du principe que tu veux faire un programme en ligne de commande il faut que tu passe ton terminal en mode raw et que tu mette min input a 1.

https://docs.python.org/2/library/tty.html

Je pense que tu te prends méchamment la tête.
https://pypi.python.org/pypi/getch

Pas mal du tout :ok:

:merci:

[hard]ware
[hard]ware
Niveau 14
15 février 2015 à 15:22:18

Je suis trop fier de mon petit programme inutile :hap:

Pour ceux que ça intéresse (qui sait... :hap: )

import msvcrt as m
import random as r
print("Press Any Key To Continue...")
a=[]
a.append(m.getch())
print("Not this one.")
send=["Not this one either","Try again...","BZZZZT ! Wrong again","Are you retarded or something ?","Haha. No.","Congratulations, you found it ! Haha, just kidding. You suck, try again.","You really suck at this","Still not. Funny, isn't it ?","Don't give up, you will eventually find","Noob."]
while 1:
	b=m.getch()
	if b not in a :
		a.append(b)
		print(send[r.randint(0,9)])
	else :
		print("You have already tried this key!")

Des suggestions pour l'améliorer ? :hap:
En particulier pour l'ajout de phrases dans le genre :hap:

[hard]ware
[hard]ware
Niveau 14
15 février 2015 à 17:50:24

Heu, je viens de remarquer un bug, que je ne comprends pas :doute:

Pour certaines touches, le programme me renvoie DEUX messages ! :doute:

Ce sont ces touches :
http://i.gyazo.com/a5a02d62343fa945f37ee99bae060648.jpg

+ ctrl, alt, shift, capslock ne sont pas prises en compte, comme si on n'appuyait sur rien.

Une solution ? :hap:

:merci:

Ace_Attorney
Ace_Attorney
Niveau 10
15 février 2015 à 19:10:49

C'est normal.
Car la fonction getch va juste prendre un unique caractère, problème, c'est que les touches que tu as appuyé sont codés sur plusieurs octets.

[hard]ware
[hard]ware
Niveau 14
15 février 2015 à 19:52:13

Ah d'accord.
Y'a une solution à ça ? :hap:

Ti-samu
Ti-samu
Niveau 10
16 février 2015 à 08:09:45

Pourquoi vous lui faites faire tout ça ? :hap:

tu import os (import os)

Et tu appel os.system("PAUSE") à la fin de ton programme. :noel:

Certains critiqueront cette méthode mais elle n'a rien de mal à être utilisé, faut juste s'en méfier si tu viens à vouloir compiler ton programme (Compiler du python ? :rire: )

:noel:

[hard]ware
[hard]ware
Niveau 14
16 février 2015 à 19:15:41

Le 15 février 2015 à 22:48:57 CitroenDSKatre a écrit :
print(send[r.randint(0,9)])

Mets plutôt ça (si tu veux garder randint) :
print(send[r.randint(0,len(send)-1)])
Sinon ça :
print(r.choice(send))

Sinon ça va te soûler de changer le truc à chaque fois que tu ajouteras une phrase. :hap:

Ah oui c'est pas bête ça.

Le 16 février 2015 à 08:09:45 Ti-samu a écrit :
Pourquoi vous lui faites faire tout ça ? :hap:

tu import os (import os)

Et tu appel os.system("PAUSE") à la fin de ton programme. :noel:

Certains critiqueront cette méthode mais elle n'a rien de mal à être utilisé, faut juste s'en méfier si tu viens à vouloir compiler ton programme (Compiler du python ? :rire: )

:noel:

Erm, je connaissais déjà ce truc, cependant, je pensais que ça fonctionnait que avec "Enter" ?
De plus, comment comptabiliser les touches de cette façon ?

Ti-samu
Ti-samu
Niveau 10
16 février 2015 à 19:43:11

Ah mince pour comptabiliser de cette manière je ne sais pas. :(

Autrement tu peux utiliser pygame juste pour sa partie Event handling. :oui:

[hard]ware
[hard]ware
Niveau 14
17 février 2015 à 17:48:59

Bof bof, je préfère utiliser ce qui est déjà intégré :(

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment