[nosmile]
Salut à tout les pro du C
Voila je suis un newbie qui essaye d'apprendre le C (avec le tuto de squale92 ki est nikel) pour faire un petit prog de rien du tout (je suppose) mais trop dure pour moi en C (j'y arrive en TI BASIC).
Voila en quoi il consiste :
- Ca va dans la fenetre prgmIO ou sinon une vierge ( clrscr(); )
- Ca écrit ENTER THE PASSWORD (ça je sais pas comment ca marche un genre de InputStr)
- J'entre le password (xyzt) et le prog le crypt (****) (je ne sais pas le faire en TI BASIC)
- si c'est bon ca efface l'écran puis affiche une toolbar sinon ca remet la demande de pass..
Ensuite je me débrouille pour la toolbar je pense m'en sortir (j'espère surtout).
- Sinon comment faire un label (Lbl en TI BASIC) j'ai pas trouvé :/
- Peux on lancé un programme avec un programme en C ? ( ex : gametetris89() )
Merci à tout ce qui m'aiderons.
PS : je n'ai pas une connection illimité donc je pourrais pas réagir désuite :'(
[edit]Edité par DoGerMaN le 28-11-2001 à 14:49:49[/edit]
Miles Le 28/11/2001 à 08:21 Pour entrer le mot de passe, essaie les boîtes de dialogue, c'est sympa comme truc.
On peut très bien utiliser goto en C. Je ne vois pas pourquoi certaines instructions seraient "interdites". Mais normalement, un:
do {
puts("Mot de passe: ")
InputStr(passwd,100);
} while (strcmp(passwd,correct_passwd))
devrait suffir.
le goto, c'est un truc qui est redouté par les "puristes"...
Cela dit, il est PARFOIS indispensable.
natto Le 28/11/2001 à 20:50 il esy debile ce prof car ds certains cas un goto est bcp plus simple qd on veut optimoiser au maximum (g pas d'exemple en tet)

納 豆パワー!
I becamed a natto!!!1!one!
Miles Le 29/11/2001 à 13:20 Quand y'a des trucs comme ça, je m'arrange pour les mettre dans une fonction, comme ça, avec un return le problème est réglé.
#define OPTIMIZE_ROM_CALLS // Optimisation de la vitesse
#define SAVE_SCREEN // Sauvegarde l'écran, pour le restituer à la fin du programme
#include <tigcclib.h> // Inclu Tous les fichiers
short _ti89, _ti92plus; // Créer un fichier pour la TI-89 .89Z et TI-92 Plus .9XZ
// ----------------------- InputStr addon -----------------------
void InputStr(char *buffer, short maxlen)
{
SCR_STATE ss;
short key, captured, i=0;
void CaptureHandler (EVENT *ev)
{
if (ev->Type == CM_STRING)
captured = *(ev->extra.pasteText);
}
buffer[0] = 0;
SaveScrState (&ss);
do
{
MoveTo (ss.CurX, ss.CurY);
printf ("%s_ ", buffer);
// Note that two spaces are required if F_4x6 font is used
key = ngetchx();
if (key == KEY_CHAR && i < maxlen)
{
EVENT ev;
ev.Type = CM_KEYPRESS;
ev.extra.Key.Code = key;
EV_captureEvents (CaptureHandler);
EV_defaultHandler (&ev);
EV_captureEvents (NULL);
buffer[i++] = captured;
}
if (key >= ' ' && key <= '~' && i < maxlen) buffer[i++] = key;
if (key == KEY_BACKSPACE && i) i--;
buffer[i] = 0;
} while (key != KEY_ENTER);
}
// ----------------------- Game Menu ToolBar -----------------------
void gamemenu(void) // Debut du programme game menu
{
HANDLE menugame= MenuNew(2, LCD_WIDTH, 18); // Déclare le menu "non-exécutable" cad le tableau..
HANDLE menugame_exec; // Déclare le "menu exécutable".
short valeur_menu = 0; // Pa variable de la valeur qui sera retournée par le menu.
MenuAddText(menugame, -1, "Half-Life", 1, 0); // F1 --> Half-Life
MenuAddText(menugame, -1, "Landerz", 2, 0); // F2 --> Landerz
MenuAddText(menugame, -1, "Tetris", 3, 0); // F3 --> Tetris
MenuAddText(menugame, -1, "Thunder", 4, 0); // F4 --> Thunder
menugame_exec = MenuBegin(HeapDeref(menugame), 0, 0, 0); // Permet d'obtenir le "menu-exécutable".
valeur_menu = MenuKey(menugame_exec, ngetchx()); // Active le menu, et stocke la valeur choisie dans la variable valeur_menu.
if (valeur_menu==1) // Si on appuye sur F1
{
clrscr(); // Ca réinitialise l'écran
setFold(game) // Choisi le repertoire game en TI BASIC (je voudrais en C)
halflife(); // Lance HL
setFold(main) // Choisi le repertoire main en TI BASIC (je voudrais en C)
gamemenu(); // Relance la toolbar
}
if (valeur_menu==2)
{
clrscr(); // Ca réinitialise l'écran
setFold(game) // Choisi le repertoire game en TI BASIC (je voudrais en C)
landerz(); // Lance HL
setFold(main) // Choisi le repertoire main en TI BASIC (je voudrais en C)
gamemenu(); // Relance la toolbar
}
if (valeur_menu==3)
{
clrscr(); // Ca réinitialise l'écran
setFold(game) // Choisi le repertoire game en TI BASIC (je voudrais en C)
CopyVar tetris98,mainteris98 // Copi tetris98 dans main
maintetris89(); // Lance Tetris
Unarchiv tetris89
Delvar tetris89
MoveVar tetris89,main,game
setFold(main) // Choisi le repertoire main en TI BASIC (je voudrais en C)
gamemenu(); // Relance la toolbar
}
if (valeur_menu==4)
{
si vous me faite le debut je pense ke je serais faire celui la
}
else // Si aucune de ces valeurs
{
gamemenu(); // Relance la toolbar
}
HeapUnlock (menugame); // Deblock le HANDLE
HeapFree(menugame); // Efface le HANDLE
}
// ----------------------- Password Request -----------------------
void password(void)
{
FontSetSys(F_8x10); // Mets la plus grande écriture
DrawStrXY(7, 20, "ENTER THE PASSWORD",A_NORMAL); // Ecrit ENTER THE PASSWORD
MoveTo(60,50); // Change les X et Y pour l'endroit d'écriture
FontSetSys(F_6x8); // Mets l'écriture en Médium
InputStr("abcdefghijklmnopqrstuvwxyz", 6); // Execute l'addon InputStr que je sais pas faire marcher
gamemenu(); // Execute la toolbar Game Menu pas de if car pas de InputStr
}
// ----------------------- Main Program -----------------------
void _main(void)
{
clrscr(); // Efface l'écran et réinitialise les paramettres
password(); // Exucute le petit prog Password Request
}
[nosmile]
[edit]Edité par DoGerMaN le 30-11-2001 à 07:15:50[/edit]
meeeeeeeeerde ne me dit pas que tu as fait tout ca a partir de rien, rien que pour lui expliquer ????!
Koi ?
C'est le prog que je veux faire puis personne ne me repond il son parti avec leur goto je montre ou j'en suis et je voudrais ke me corrige des trucs et que me le complete
pr le goto:
--code--
monlabel:
--code--
goto monlabel;
--code--
et le goto est souvent tres pratique:
on a pas inventé le ompteur programme pour rien!

fabetal_ > Hier, je me suis fait monter par un pote
redangel > et en chevals, ça donne quoi?
Nil> OMG I think I'm gay
Kelso Le 04/12/2001 à 20:13 c koi cette histoire de Goto interdits? C super utile goto,
quand on peut pas utiliser de do, fo juste pas en abuser comme en basic.
the car's on fire and there's no driver at the wheel
and the sewers are all muddied with a thousand lonely suicides
and a dark wind blows
GYBE! Dead Flag Blue
Miles Le 04/12/2001 à 21:49 Il n'afficherait pas 5 par hasard ?
c'est vrai que sur cet exemple, on voit bien les avantages du goto