bonjour, j'aimerais savoir on quoi consiste le code E0 224 pour commenter mon code, car j'ai été obligé de passer par la pour répond au attente de l'exo que je devais réaliser. cependant comme c'est tiré de recherche j'aimerais plus en savoir a ce sujet.
merci de votre compréhension
bien cordialement victor
- Edité par VictorHuguet 5 décembre 2019 à 19:27:09
Au dela de 127, c'est soit de l'ASCII étendu, soit de l'UTF8.
Mais ta question est mal posée, ici tu parles du code 224 (E0) généré pour les touches spéciales du clavier pour getchar() sous Windows.
En effet, quand tu appuies sur le clavier, un code est généré. Si ce code n'est pas 0 ou E0 (224), alors c'est directement un code ASCII qui est généré. Si c'est 224, alors un second code est généré pour les touches spéciales (par exemple 72 pour flèche UP).
Pour les entrées clavier sous Windows, la valeur 224 est donc réservée pour annoncer qu'on appuie sur une touche spéciale.
Au dela de 127, c'est soit de l'ASCII étendu, soit de l'UTF8.
Mais ta question est mal posée, ici tu parles du code 224 (E0) généré pour les touches spéciales du clavier pour getchar() sous Windows.
En effet, quand tu appuies sur le clavier, un code est généré. Si ce code n'est pas 0 ou E0 (224), alors c'est directement un code ASCII qui est généré. Si c'est 224, alors un second code est généré pour les touches spéciales (par exemple 72 pour flèche UP).
Pour les entrées clavier sous Windows, la valeur 224 est donc réservée pour annoncer qu'on appuie sur une touche spéciale.
ascii etendu oui
en gros j'ai du l'utilisé pour reussir l'exo que je devais realiser sans pour autant connaitre parfaitement a quoi ça consistait car j'ai fais des recherche dessus ce n'était pas dans le cours du prof.
merci de la reponse je vais pouvoir commenté cette partie de mon programme
en parlant de ça voila mon programme en question :
/*
* jeu_de_dame.c
*
*
* Created on: Nov 9, 2019
* Author: Victor HUGUET
*/
#include <stdio.h>
#include <stdlib.h>
#define NBLC 8
#define NOMBREDEPIONS 1
#define angleHautGauche 218
#define angleHautDroit 191
#define angleBasGauche 192
#define angleBasDroite 217
#define T 194
#define Tinverse 193
#define TcoteDroit 180
#define TcoteGauche 195
#define BarreVerticale 179
#define BarreHorizontale 196
#define croix 197
#define PION 88
#define ESCAPE 27
#define EXTENDED_KEY_1 0 // NULL
#define EXTENDED_KEY_2 224 // permet d'utiliser les touches clavier
#define ARROWUP 72
#define ARROWDOWN 80
#define ARROWLEFT 75
#define ARROWRIGHT 77
struct pion // structure pour indices de position du pion
{
int x;
int y;
};
// fonction afficherTable permet d'afficher le damier vide dans un premier temps
// puis avec le pion une fois la fonction poserPion executé
// le damier est tracer a l'aide de code ascii
//
void afficherTable(int table[NBLC][NBLC])
{
system("cls");
int i, j, k;
printf("%c%c%c%c", angleHautGauche, BarreHorizontale, BarreHorizontale, BarreHorizontale);
for(i = 0; i < NBLC - 1; i++) {
printf("%c%c%c%c", T, BarreHorizontale, BarreHorizontale, BarreHorizontale);
}
printf("%c\n", angleHautDroit);
for(i = 0; i < NBLC; i++) {
for(j = 0; j < NBLC; j++) {
printf("%c %c ", BarreVerticale, table[i][j]);
}
printf("%c\n", BarreVerticale);
if(i < NBLC - 1) {
printf("%c%c%c%c", TcoteGauche, BarreHorizontale, BarreHorizontale, BarreHorizontale);
for(k = 0; k < NBLC - 1; k++) {
printf("%c%c%c%c", croix, BarreHorizontale, BarreHorizontale, BarreHorizontale);
}
printf("%c\n", TcoteDroit);
}
else {
printf("%c%c%c%c", angleBasGauche, BarreHorizontale, BarreHorizontale, BarreHorizontale);
for(k = 0; k < NBLC - 1; k++) {
printf("%c%c%c%c", Tinverse, BarreHorizontale, BarreHorizontale, BarreHorizontale);
}
printf("%c\n", angleBasDroite);
}
}
}
// fonction permettant de placer le pion
void poserPions(int table[NBLC][NBLC], struct pion pion[], char numPion)
{
int i=1,j=1;
printf("Ou voulez vous placez le pions %c ?\n", numPion);
do
{
printf("Choisissez la lignes:\n");
scanf("%d",&i);
if(i<1 || i>NBLC) printf("\nIl n'y a pas de ligne numero %d\n",i);
}
while(i<1 || i>NBLC);
do
{
printf("Choisissez la colonne:\n");
scanf("%d",&j);
if(j<1 || j>NBLC) printf("\nIl n'y a pas de colonne numero %d\n",j);
}
while(j<1 || j>NBLC);
if(table[i-1][j-1]==1)
{
printf("\t\tDesole il y a deja un pion a cet emplacement\n\n");
return;
}
else
{
table[i-1][j-1]=numPion;
pion[numPion-1].y = i-1;
pion[numPion-1].x = j-1;
}
}
// fonction permettant de déplacer le pion
void movePions(int table[NBLC][NBLC], struct pion pion[], char numPion)
{
int c;
struct pion pion_new = {pion[numPion-1].x, pion[numPion-1].y}; // position du pion apres deplacement
struct pion pion_old = {pion[numPion-1].x,pion[numPion-1].y};// position du pion avant deplacement
afficherTable(table);
while((c = getch()) != ESCAPE)// tant que la touche échap n'est pas executé le programme tourne
{
table[pion_old.y][pion_old.x] = 0;
if(c == EXTENDED_KEY_1 || c == EXTENDED_KEY_2)
{
switch(getch())
{
case ARROWUP:
if(pion_new.y > 0) --pion_new.y; // le pion bouge vers le haut quand ton appuie sur la fleche du haut
break;
case ARROWDOWN:
if(pion_new.y < NBLC - 1) ++pion_new.y; // le pion bouge vers le bas quand ton appuie sur la fleche du bas
break;
case ARROWLEFT:
if(pion_new.x > 0) --pion_new.x;// le pion bouge vers la gauche quand ton appuie sur la fleche gauche
break;
case ARROWRIGHT:
if(pion_new.x < NBLC - 1) ++pion_new.x; // le pion bouge vers la droite quand ton appuie sur la fleche de droite
break;
}
if(pion_old.x != pion_new.x || pion_old.y != pion_new.y)
{
table[pion_old.y = pion_new.y][pion_old.x = pion_new.x] = numPion;// permet d'afficher le pion a ça nouvelle position
afficherTable(table);// reaffiche le damier avec le pion au nouvel coordonnée
}
}
}
}
// fonction permettant d'afficher le tableau
int main(void)
{
int continuer=1; // permet d'execution du programme
char numPion = PION; // le Pion sous l'apparrence d'un 1
int table[NBLC][NBLC] = {0}; // initialisation de toute les cases du tableaux avec des 0
struct pion pion[NOMBREDEPIONS]; // structure parametré pour le nombre de pion a affiché
afficherTable(table);
poserPions(table, pion, numPion);
do
{
movePions(table, pion, numPion);
}
while(continuer);
return EXIT_SUCCESS; // return 0
}
y'a un warning au niveau du getch mais ça je sais pas vraiment si je peux le resoudre et puis le code est fonctionnel et repond a l'exo du coup je m'en preoccupe pas trop meme s'il me triger un peu xD.
- Edité par VictorHuguet 5 décembre 2019 à 18:58:38
y'a un warning au niveau du getch mais ça je sais pas vraiment si je peux le resoudre
___
Il y a ce warning parce que tu as supprimé la ligne
#include <conio.h>
On se demande pourquoi !
Ha mdr pas fais exprès merci xD
en quoi consiste le code E0 224
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Recueil de code C et C++ http://fvirtman.free.fr/recueil/index.html
Recueil de code C et C++ http://fvirtman.free.fr/recueil/index.html