12.09.2009 - 38 19:30 KillerMapper - Posté : 03-12-2009 Signaler un contenu inapproprié
Salut, j'ai dans mon programme une boucle while qui s'effectue tant qu'une variable (nommée bool_enter) ne vaut pas 1. Dans cette boucle je fais un ngetchx que je test. Si on appuie sur esc ou enter, la variable bool_enter est mise à 1, puis la boucle continue et revient au début. Donc là, logiquement, la boucle ne devrait pas être exécutée puisque la variable testée vaut bien 1. Mais la boucle est toujours faite une fois (là si je réappuie sur entrer ou esc, la boucle est stoppée). Donc je voudrais savoir pourquoi la boucle continue d'être exécutée une fois de trop. Je mets mes codes sources pour que vous puissiez voir (elle ne marche pas la balise hide? là ça fait gonfler la page, désolé...): Le fichier main: // C Source File - Main // Created 28/10/2009; 11:37:49 #include <tigcclib.h> #include "pics.h" #define FULLSCREEN (&(SCR_RECT){{0,0,159,99}}) short menu_principal(short selection); // Main Function void _main(void) { LCD_BUFFER sauvegarde_ecran; LCD_save(sauvegarde_ecran); clrscr(); BitmapPut(0, 0, &bitmap, FULLSCREEN, A_NORMAL); DrawStr (50, 65, "Version 0.1", A_NORMAL); DrawStr (20, 80, "appuyez sur une touche", A_NORMAL); ngetchx(); clrscr(); menu_principal(0); printf("%d", menu_principal(0)); ngetchx(); LCD_restore(sauvegarde_ecran); } //Main menu fonction short menu_principal(short selection) { char select_actuel = 1; char bool_enter = 0; short action = 0; short select_x = 15, select_y = 25, select_x2 = 135; clrscr(); BitmapPut(25, 9, &crate, FULLSCREEN, A_NORMAL); DrawStr (40, 10, "MENU PRINCIPAL", A_NORMAL); BitmapPut(130, 9, &crate, FULLSCREEN, A_NORMAL); DrawStr (35, 25, "Nouvelle partie", A_NORMAL); DrawStr (50, 40, "Continuer", A_NORMAL); DrawStr (55, 55, "Credits", A_NORMAL); DrawStr (55, 70, "Quitter", A_NORMAL); BitmapPut(select_x, select_y, &player, FULLSCREEN, A_NORMAL); //drawing the first stickmans BitmapPut(select_x2, select_y, &player, FULLSCREEN, A_NORMAL); while (bool_enter != 1) { action = ngetchx(); if (action == 337) select_actuel--; if (action == 340) select_actuel++; if (action == 264 || action == 13) bool_enter = 1; DrawStr (select_x, select_y, " ", A_REPLACE); //Clearing the stickmans DrawStr (select_x2, select_y, " ", A_REPLACE); switch (select_actuel) { case 1: select_x = 15; select_y = 25; select_x2 = 135; selection = 1; break; case 2: select_x = 30; select_y = 40; select_x2 = 120; selection = 2; break; case 3: select_x = 35; select_y = 55; select_x2 = 110; selection = 3; break; case 4: select_x = 35; select_y = 70; select_x2 = 110; selection = 4; default: break; } BitmapPut(select_x, select_y, &player, FULLSCREEN, A_NORMAL); //drawing the stickmans BitmapPut(select_x2, select_y, &player, FULLSCREEN, A_NORMAL); } clrscr(); return selection; } Le fichier des images: // Header File - Pics & Sprites // Created 01/11/2009; 17:56:09 //Player sprite static BITMAP player = { 8,8, { 0x18, 0x3C, 0x3C, 0x18, 0x7E, 0x18, 0x24, 0x24 }}; //Brick sprite static BITMAP brick = { 8,8, { 0x22, 0xFF, 0x88, 0xFF, 0x22, 0xFF, 0x88, 0xFF }}; //Crate sprite static BITMAP crate = { 8,8, { 0xFF, 0xC3, 0xA5, 0x99, 0x99, 0xA5, 0xC3, 0xFF }}; //Title screen picture static BITMAP bitmap = { 100,160, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x07,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x0F,0xFF,0x00,0x7F,0xF0,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x1F,0xBF,0x01,0xFF,0xF8,0x0F,0x80,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x3C,0x0F,0x03,0xFF,0xFC,0x0F,0x81,0xF8,0x0F,0xFE,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x7C,0x0F,0x07,0xE0,0x7C,0x1F,0x03,0xF0,0x3F,0xFF,0x01,0xFF,0xF8,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x7C,0x0E,0x0F,0xC0,0x7E,0x1F,0x0F,0xC0,0x7F,0xFF,0x81,0xFF,0xFC,0x00,0x3E,0x00,0x00,0x00,0x00, 0x00,0x7E,0x00,0x1F,0x80,0x7E,0x3E,0x1F,0x80,0xFC,0x0F,0x83,0xE3,0xFC,0x00,0x7E,0x00,0x70,0x00,0x00, 0x00,0x7F,0xC0,0x1F,0x00,0x3E,0x3E,0x3E,0x01,0xF8,0x0F,0xC3,0xE0,0x7C,0x00,0xFF,0x00,0xF8,0x03,0x80, 0x00,0x3F,0xF0,0x3E,0x00,0x7C,0x3E,0xFC,0x03,0xF0,0x0F,0xC7,0xE0,0x7C,0x01,0xFF,0x00,0xF8,0x07,0x80, 0x00,0x0F,0xF8,0x3E,0x00,0x7C,0x7D,0xF8,0x03,0xE0,0x07,0xC7,0xC0,0xF8,0x03,0xFF,0x01,0xFC,0x0F,0x80, 0x00,0x01,0xFC,0x7E,0x00,0x7C,0x7F,0xF8,0x07,0xC0,0x0F,0x87,0xC0,0xF8,0x03,0xDF,0x01,0xFC,0x0F,0x00, 0x01,0xC0,0x7C,0x7C,0x00,0xF8,0xFF,0xF8,0x07,0xC0,0x0F,0x8F,0xF7,0xF0,0x07,0x9F,0x03,0xFC,0x0F,0x00, 0x03,0xC0,0x7C,0x7C,0x00,0xF8,0xFE,0xFC,0x0F,0xC0,0x0F,0x8F,0xFF,0xC0,0x0F,0x9F,0x03,0xFC,0x1E,0x00, 0x03,0xC0,0x78,0x7C,0x01,0xF0,0xF8,0x7C,0x0F,0x80,0x1F,0x1F,0xFF,0xC0,0x1F,0x1F,0x03,0xFE,0x1E,0x00, 0x07,0xC0,0xF8,0x7C,0x03,0xF1,0xF0,0x7C,0x0F,0x80,0x1F,0x1F,0x1F,0xE0,0x3E,0x1F,0x07,0x9E,0x1E,0x00, 0x03,0xFF,0xF0,0x7E,0x07,0xE1,0xF0,0x7E,0x0F,0x80,0x3E,0x1F,0x03,0xE0,0x7C,0x1F,0x07,0x9E,0x3C,0x00, 0x03,0xFF,0xE0,0x7F,0xBF,0xC3,0xF0,0x7E,0x0F,0x80,0x7E,0x3E,0x03,0xE0,0xFE,0x1F,0x0F,0x1E,0x3C,0x00, 0x01,0xFF,0x80,0x3F,0xFF,0x03,0xE0,0x7E,0x0F,0xC0,0xFC,0x3E,0x03,0xE0,0xFF,0xFF,0x0F,0x1F,0x78,0x00, 0x00,0x00,0x00,0x1F,0xFE,0x03,0xE0,0x3E,0x0F,0xF7,0xF8,0x7E,0x07,0xE1,0xFF,0xFF,0x0F,0x0F,0x78,0x00, 0x00,0x00,0x00,0x01,0xE0,0x03,0xC0,0x3E,0x07,0xFF,0xE0,0x7F,0x9F,0xC3,0xE3,0xFF,0x1E,0x0F,0x78,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x03,0xFF,0xC0,0x7F,0xFF,0x87,0xE0,0x1F,0x1E,0x0F,0xF0,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x00,0x7F,0xFF,0x07,0xC0,0x1F,0x3E,0x07,0xF0,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x07,0x80,0x1F,0x3C,0x07,0xE0,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x3C,0x07,0xE0,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x07,0xC0,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x80,0x00, 0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x07,0xFC,0x00,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x0F,0xFE,0x07,0xFE,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x1F,0xBE,0x0F,0xFF,0x07,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x3E,0x1E,0x1F,0xBF,0x07,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x7C,0x1E,0x3E,0x0F,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0xF8,0x00,0x3C,0x0F,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0xF9,0x00,0x3C,0x0F,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x01,0xFF,0xF0,0x3C,0x1E,0x1E,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x01,0xFF,0xF0,0x3F,0xFC,0x1E,0x7E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x03,0xFD,0xF8,0x1F,0xF8,0x3C,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x03,0xF0,0xF8,0x7F,0xF8,0x3D,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x03,0xE0,0x78,0xF9,0xF8,0x7B,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x03,0xC0,0xF9,0xE0,0x7C,0x7F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x03,0xC0,0xF3,0xC0,0x78,0x7F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x07,0xE1,0xE3,0xC0,0x78,0xFB,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x03,0xFF,0xE3,0xC0,0xF8,0xF3,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x03,0xFF,0xC3,0xFF,0xF1,0xF3,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x01,0xFF,0x03,0xFF,0xE1,0xE3,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x01,0xFF,0x81,0xE1,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x01,0xC1,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE6,0x33,0x80,0x22,0x54,0x00,0xCC,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x29,0x4C,0xC0,0x2C,0x14,0x00,0xCC,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x4A,0x54,0x80,0x38,0x55,0xDE,0xD7,0xCE,0x38,0xEF, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xD2,0x9C,0x80,0x78,0xAA,0x51,0x5E,0x52,0x49,0x28, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x12,0x97,0x8C,0x58,0xAB,0xD1,0x69,0xD2,0x49,0xE8, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x14,0xA9,0x00,0x48,0xAA,0x51,0xEE,0xD4,0x51,0x28, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x98,0xCE,0x00,0x89,0x53,0xA2,0xDF,0xBC,0xF1,0xD0, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x80,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,0x00,0x00 } }; Voilà merci
Programmeur sur TI82, et bientôt sur 89! | |