Posté le 29/03/2023 20:24
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 150 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
Citer : Posté le 29/03/2023 20:26 | # | Fichier joint
Et voici mon main.h !
Citer : Posté le 29/03/2023 23:05 | #
Yo, ton code a l'air clean ou en tous cas c'est ce que mon cerveau un peu fatigué à 23 heures prétend. Peux-tu joindre une copie complète du projet qu'on puisse le compiler et le tester stp ?
Citer : Posté le 30/03/2023 12:38 | #
Comment est ce que je peux joindre tout mon projet ? Un seul fichier est autorisé, non ?
Citer : Posté le 30/03/2023 12:47 | #
Tu fais un zip ou une archive que tu joins au message
Citer : Posté le 30/03/2023 15:04 | # | Fichier joint
Voici le projet, il est compressé (merci Slyvtt !). En faisant quelques tests je me suis rendu compte de deux choses :
1) Trois pions sont dessinés dans le coin en bas à droite sans raison
2) La touche Shift ne marche pas, pourtant mon code ne diffère pas par rapport aux flèches directionnelles mais elle n'est pas détectée...
Citer : Posté le 30/03/2023 16:10 | #
Bon j'ai fait quelques test et je crois que c'est pas mal ! Le problème venait bien de la touche Shift, quand je remplace par Exe tout fonctionne presque bien !
Reste encore le problème des trois pions dessinés sans raison et ça sera bien !EDIT : Problème résolu : j'avais inversé les lignes et les colonnes dans l'initialisation de mon tableauP.S : Si quelqu'un pourvait m'expliquer pourquoi Shift ne va pas ça serait cool
Citer : Posté le 30/03/2023 16:31 | #
Les touches SHIFT et ALPHA sont des modifieurs de touches, il faut jouer avec la fonction getkey_opt
Il faut faire :
et pour ALPHA
et pour les deux :
sinon tes touches SHIFT et ALPHA ne sont pas traitées comme des touches "indépendantes"
Citer : Posté le 30/03/2023 16:40 | #
Aaah ok ! Merci beaucoup Slyvtt !
Citer : Posté le 30/03/2023 16:42 | #
Ca marche avec Shift du coup maintenant ?
Car j'ai fait de tête, j'ai pas ma machine pour coder pour vérifier.
Citer : Posté le 30/03/2023 17:03 | #
Oui parfaitement ! Maintenant je passe aux la vérifications de fin de jeu !
Citer : Posté le 30/03/2023 17:06 | #
Parfait, continue bien alors.
Citer : Posté le 13/04/2023 17:01 | # | Fichier joint
Salut ! Je continue mon puissance 4 et je suis tombé sur un nouveau problème : la vérifications des diagonales...
Pour vous expliquer mon système de vérifications des lignes et des colonnes je vais prendre en exemple les lignes mais ça revient au même pour les colonnes (ça facilitera l'explication )
Donc... En fait je ne vérifie que la ligne du pion qui vient d'être posé. Cela m'évite d'avoir à parcourir tous le tableau. J'envoie la position y du pion fraichement posé à ma fonction end_check et je parcours la ligne de la gauche vers la droite.
Comme vous vous en doutez j'ai donc une variable v_end_check que j'incrémente à chaque fois que je croise un pion de la bonne couleur et que je remet à 0 quand je croise soit un vide soit un pion de la mauvaise couleur. Quand v_end_chek == 4 c'est qu'on a un gagnant
Voici donc mon problème : pour la ligne j'utilise la position y du nouveau pion et pour la colonne la position x pour faire mes vérifications. Mais pour les diagonales je ne peux pas ! Si mon pion est en 3;0 sur la grille il faut que j'aille en 0;3 pour la vérification et s'il est en 5;2 il faut que j'aille en 3;4... (ma grille fait 6 cases en longueur sur 4 en hauteur, je la met en pièce jointe)
J'aimerais donc savoir s'il existe une solution... J'avais pensé à tout rentrer à la main, mais je me serais fait bannir à vie de Planet Casio pour motif de code horrible
{
xcheck = 0;
ycheck = 3;
}
et ça 53 fois
J'espère avoir bien expliqué mon problème...
Voilà voilà... Merci d'avance
Citer : Posté le 13/04/2023 17:24 | #
Et tu ne peux pas incrémenter/décrémenter x en même temps que y du pion, ou j'ai mal compris quelque chose ?
EDIT :
En gros faire la même chose que pour les lignes mais en incrémentant/décrémentant x dans la boucle.
libMicrofx : https://www.planet-casio.com/Fr/forums/topic17259-2-libmicrofx-remplacez-fxlib-pour-faire-des-add-ins-tres-legers.html !
Racer3D : https://www.planet-casio.com/Fr/programmes/programme4444-1-racer3d-mb88-jeux-add-ins.html
Citer : Posté le 13/04/2023 17:33 | #
En fait ce que je veux c'est me positionner en bas à gauche de la diagonale pour pouvoir la parcourir sans problème. Mais je ne trouve pas de "formule" pour trouver la case tout en bas d'une diagonale en fonction de la position du pion qui vient d'être posé.
Je pense que ça n'est clair que pour moi ...
Citer : Posté le 13/04/2023 17:37 | #
Et bien tu fais x++ et y++ jusqu'à ce que le pion est de la mauvaise couleur, et le bas de la diagonale est donc à (x-1; y-1). Si la diagonale va vers la gauche par contre, c'est x-- et y++, et le bas de la diagonale est donc à (x+1; y-1).
J'espère que j'ai bien compris cette fois
libMicrofx : https://www.planet-casio.com/Fr/forums/topic17259-2-libmicrofx-remplacez-fxlib-pour-faire-des-add-ins-tres-legers.html !
Racer3D : https://www.planet-casio.com/Fr/programmes/programme4444-1-racer3d-mb88-jeux-add-ins.html
Citer : Posté le 13/04/2023 18:01 | #
Donc il faudrait que je fasse une boucle while du type :
ycheck = y; //y est la position y du pion posé
while(xchek != 0 && ycheck != 4)
{
xcheck--;
ycheck++;
}
//La diagonale va du bas gauche vers le haut droit
C'est ça ?
Citer : Posté le 13/04/2023 18:03 | #
Sans typo c'est ça
EDIT :
C'est mieux pour la sécurité
libMicrofx : https://www.planet-casio.com/Fr/forums/topic17259-2-libmicrofx-remplacez-fxlib-pour-faire-des-add-ins-tres-legers.html !
Racer3D : https://www.planet-casio.com/Fr/programmes/programme4444-1-racer3d-mb88-jeux-add-ins.html
Citer : Posté le 13/04/2023 18:12 | #
Sans typo ? Désolé je suis un peu nouveau ...
Merci beaucoup @Mb88 pour ton aide !
Citer : Posté le 13/04/2023 19:35 | #
Sans typo = sans faute de frappe : t'avais écrit "xchek" au lieu de "xcheck".
Et alors, ça fonctionne ?
libMicrofx : https://www.planet-casio.com/Fr/forums/topic17259-2-libmicrofx-remplacez-fxlib-pour-faire-des-add-ins-tres-legers.html !
Racer3D : https://www.planet-casio.com/Fr/programmes/programme4444-1-racer3d-mb88-jeux-add-ins.html