Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » Commande anti-triche Pendu
Poulpy Hors ligne Membre Points: 23 Défis: 0 Message

Commande anti-triche Pendu

Posté le 05/11/2018 18:09

Bonsoir, je suis actuellement en train de bosser sur un Pendu fonctionnant avec les string mais je cherche une commande permettant de détecter un caractère autre qu'une lettre ( % ou ÷ seraient détectés par exemple ) pour empêcher les joueurs de tricher ou une commande qui passe en mode d'écriture Alpha automatiquement sans avoir à le faire manuellement, laissant ainsi seulement la possibilité d'écrire les lettres. Merci pour votre réponse. Signé : Poulpy, un débutant de la programmation


1, 2 Suivante
Hackcell Hors ligne Maître du Puzzle Points: 1531 Défis: 11 Message

Citer : Posté le 05/11/2018 18:14 | #


Pour le second point, ce n'est pas possible (à ma connaissance)
Pour le premier, utilise strSearch(), avec en premier argument le caractère entré par le joueur et en second la liste des caractères autorisée
Zezombye Hors ligne Rédacteur Points: 1756 Défis: 13 Message

Citer : Posté le 05/11/2018 18:16 | #


Avec les strings, il faudrait itérer sur le string donné par l'utilisateur, pour chaque lettre (A-Z). Le code ressemblerait à ça :

"Lettre ? "->Str 1
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"->Str 2
0->A
For 1->I To 26
StrMid(Str 2, 1, 1)=Str 2 => 1->A
Next
A = 0 => "Tricheur"


Tu prends chaque caractère du Str 2 (avec le StrMid) et tu compares ce caractère au string entré, si tu as au moins un match alors c'est une lettre, sinon ça ne l'est pas.

(enfin bon, s'il entre un caractère autre qu'une lettre, il n'y aura juste pas de match et donc il perdra un point inutilement non ?)
Divers jeux : Puissance 4 - Chariot Wars - Sokoban
Ecrivez vos programmes basic sur PC avec BIDE
Poulpy Hors ligne Membre Points: 23 Défis: 0 Message

Citer : Posté le 05/11/2018 18:17 | #


Hackwell je programme sur une Casio Graph 35+ et je ne crois pas que ma calculette possède cette commande
Souriez, tant que vous le pouvez encore
Zezombye Hors ligne Rédacteur Points: 1756 Défis: 13 Message

Citer : Posté le 05/11/2018 18:19 | #


Si ta calculatrice a les strings (donc la fonction Str) elle a forcément les fonctions annexes (StrSearch, StrMid etc).
Si elle n'a pas de Str (ton OS est en 01.XX.XXXX) c'est que tu n'utilises pas de strings, et il faudra trouver une autre méthode
Divers jeux : Puissance 4 - Chariot Wars - Sokoban
Ecrivez vos programmes basic sur PC avec BIDE
Hackcell Hors ligne Maître du Puzzle Points: 1531 Défis: 11 Message

Citer : Posté le 05/11/2018 18:20 | #


Écoute pas Zz, en utilisant strSearch(), tu obtiens directement 0 si le caractère du joueur est pas dans les caractères autorisée, donc tu fais juste un tesr d'égalité

"lettre"?->str 1
if strSearch (str1, "ABCD...Z") ≠0
then locate 1,1,"tricheur"
ifend
Poulpy Hors ligne Membre Points: 23 Défis: 0 Message

Citer : Posté le 05/11/2018 18:21 | #


Zezombye merci pour cette idée ( de génie ) qui va me permettre d'enfin achever mon programme et pour ton histoire de points mon programme est fait en sorte que les lettres soi entre détectées mais que si le 1er joueur tape un symbole, le jeu sera impossible pourgent le 2ème joueur, tout simplement.
Souriez, tant que vous le pouvez encore
Kikoodx Hors ligne Ancien labélisateur Points: 3039 Défis: 11 Message

Citer : Posté le 05/11/2018 18:22 | #


Hackcell a écrit :
Écoute pas Zz, en utilisant strSearch(), tu obtiens directement 0 si le caractère du joueur est pas dans les caractères autorisée, donc tu fais juste un tesr d'égalité

"lettre"?->str 1
if strSearch (str1, "ABCD...Z") ≠0
then locate 1,1,"tricheur"
ifend

Euh... Pourquoi le ≠0 ? C'est implicite.

Ajouté le 05/11/2018 à 18:23 :
Nooon Poulpy lis Hackcell !

Ajouté le 05/11/2018 à 18:24 :
Et en plus son code n'est pas fonctionnel (celui de Zezombye)
On ne peut pas comparer deux Str avec l'opérateur =
ouais ouais
Poulpy Hors ligne Membre Points: 23 Défis: 0 Message

Citer : Posté le 05/11/2018 18:28 | #


Hackcell, je viens d'essayer ton programme mais le mot "Tricheur" ne s'affiche toujours pas quand je mets un symbole comme ÷ dans le mot de départ.
Souriez, tant que vous le pouvez encore
Lephenixnoir Hors ligne Administrateur Points: 24574 Défis: 170 Message

Citer : Posté le 05/11/2018 18:29 | #


En fait le code d'Hackcell vérifie qu'il y a *au moins une* lettre... au lieu de vérifier qu'il n'y a *que* des lettres. Sur ce point-là Zezombye s'approche plus de la solution.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Kikoodx Hors ligne Ancien labélisateur Points: 3039 Défis: 11 Message

Citer : Posté le 05/11/2018 18:43 | #


Lephenixnoir a écrit :
En fait le code d'Hackcell vérifie qu'il y a *au moins une* lettre... au lieu de vérifier qu'il n'y a *que* des lettres. Sur ce point-là Zezombye s'approche plus de la solution.
Poulpy a écrit :
Hackcell, je viens d'essayer ton programme mais le mot "Tricheur" ne s'affiche toujours pas quand je mets un symbole comme ÷ dans le mot de départ.

J'avais cru comprendre qu'il cherchait à savoir si l'entrée utilisateur est dans la liste !
En gros juste un caractère.
Mais bon... Je retourne lire le tuto.
ouais ouais
Zezombye Hors ligne Rédacteur Points: 1756 Défis: 13 Message

Citer : Posté le 05/11/2018 18:58 | #


Ouaip : "CD" est considéré comme valide, par exemple

La solution de hackcell est meilleure certes mais il manque juste un check sur la longueur (StrLen(Str 1) = 1).
Divers jeux : Puissance 4 - Chariot Wars - Sokoban
Ecrivez vos programmes basic sur PC avec BIDE
Poulpy Hors ligne Membre Points: 23 Défis: 0 Message

Citer : Posté le 05/11/2018 19:02 | #


Oui mais ça ne fonctionne qu'avec une lettre, moi je veux éviter que l'on puisse mettre des symboles dans le mot entier
Souriez, tant que vous le pouvez encore
Zezombye Hors ligne Rédacteur Points: 1756 Défis: 13 Message

Citer : Posté le 05/11/2018 19:08 | #


En fait je crois que tu t'es mal exprimé : je pensais que tu voulais éviter des symboles dans les essais, et les essais c'est forcément 1 lettre.

Du coup pour vérifier si un string ne contient que des lettres, suffit d'adapter un peu mon code :

"Mot ? "->Str 1
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"->Str 2
0->A
For 1->H To StrLen(Str 1)
0->A
For 1->I To 26
Not StrCmp(StrMid(Str 2, 1, 1),Str 2) => 1->A
Next
Not A => Break
Next
A = 0 => "Tricheur"


On parcourt chaque caractère du Str 1 (1ère boucle for), et pour chaque caractère on vérifie s'il est dans l'alphabet.
Divers jeux : Puissance 4 - Chariot Wars - Sokoban
Ecrivez vos programmes basic sur PC avec BIDE
Poulpy Hors ligne Membre Points: 23 Défis: 0 Message

Citer : Posté le 05/11/2018 20:48 | #


Zezombye parfait c exactement ce qu'il me fallait mais peux tu m'expliquer à quoi correspondent les Not et leur utilité stp ( si tu as les temps ). PS: Je débute en programmation
Souriez, tant que vous le pouvez encore
Manolo Hors ligne Membre Points: 910 Défis: 13 Message

Citer : Posté le 05/11/2018 21:00 | #


d’ailleurs, c'est quoi une string? (ça pèse dans ma calto...)
Kikoodx Hors ligne Ancien labélisateur Points: 3039 Défis: 11 Message

Citer : Posté le 05/11/2018 21:02 | #


Poulpy a écrit :
Zezombye parfait c exactement ce qu'il me fallait mais peux tu m'expliquer à quoi correspondent les Not et leur utilité stp ( si tu as les temps ). PS: Je débute en programmation

Tu sais il n'est pas tout seul ici
Not inverse le résultat de ta condition, par exemple Not 1=1 est faux, car 1=1 est vrai.
Not 1=0 est lui vrai

Pour des informations plus précises (mais moins explicites) : https://www.planet-casio.com/Fr/reference_basic_casio/commande_basic.php?fonc=16

@Manolo : Lis ça https://www.planet-casio.com/Fr/programmation/tutoriels.php?id=73

Ajouté le 05/11/2018 à 21:05 :
Ah, et aussi, deux liens très très utiles à consulter (selon moi) avant de poser des questions :
https://www.planet-casio.com/Fr/reference_basic_casio/ (La liste des commandes du Basic Casio.)
https://www.planet-casio.com/Fr/programmation/ (Le tutoriel. Lisez-le en entier.)
ouais ouais
Poulpy Hors ligne Membre Points: 23 Défis: 0 Message

Citer : Posté le 05/11/2018 21:06 | #


Wow c tres compliqué je viens de regarder dans le guide du site ils disent que je peux remplacer Not A par A=0 . Est ce que ça marche ? Ça me servitait bien, simplement pour la compréhension de mon programme
Souriez, tant que vous le pouvez encore
Ninestars Hors ligne Membre Points: 2462 Défis: 24 Message

Citer : Posté le 05/11/2018 21:07 | #


Mon meilleur conseil est d'utiliser cette méthode
https://www.planet-casio.com/Fr/forums/topic11721-1-Saisie-en-temps-reel-(sans-le-)-avec-un-code-court-.html
Kikoodx Hors ligne Ancien labélisateur Points: 3039 Défis: 11 Message

Citer : Posté le 05/11/2018 21:13 | #


Poulpy a écrit :
Wow c tres compliqué je viens de regarder dans le guide du site ils disent que je peux remplacer Not A par A=0 . Est ce que ça marche ? Ça me servitait bien, simplement pour la compréhension de mon programme

Oui ça fonctionne
ouais ouais
Hackcell Hors ligne Maître du Puzzle Points: 1531 Défis: 11 Message

Citer : Posté le 06/11/2018 07:26 | #


C'est parceque j'ai mis ≠0 au lieu de =0 :facepalm :
1, 2 Suivante

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 245 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd