Aprentissage du C (Casio)[encore une fois]
Posté le 04/06/2014 21:48
Comme Darkysun et Eltoredo je me pose pas mal même énormément de questions pour programmer en C sur Casio.
Déjà (première question
) je ne comprend pas tout le code mis par défaut sur le SDK:
J'ai enlevé les commentaires mais je les ai très rapidement remplacés.
J'espère qu'il y aura un âme charitable pour m'aider
.
[brown]#include [gray]"fxlib.h"[/gray][/brown]
[purple]int[/purple] AddIn_main(int isAppli, unsigned short OptionNum) [green]//Que veut dire exactement cette ligne?[/green]
{
[purple]unsigned int[/purple] key;
Bdisp_AllClr_DDVRAM(); [green]//Je sais que ça efface l[gray]'écran mais j'ai compris qu'[/gray]il y avait plusieur couche (une pré-chargée?)[/green]
[green]//Ici ça va :) [/green]
locate(1,[maroon]4[/maroon]);
Print((unsigned char*)[gray]"This application is"[/gray]);
locate(1,[maroon]5[/maroon]);
Print((unsigned char*)[gray]" sample Add-In."[/gray]);
[green]//Une boucle infinie?[/green]
[b][blue]while[/blue][/b](1){
GetKey(&key); [green]//à quoi correspond ce Getkey[/green]
}
[b][blue]return[/blue][/b] 1;
}
[green]//A partir de là je suis complétement perdu[/green]
[brown]#pragma section _BR_Size[/brown]
unsigned long BR_Size;
[brown]#pragma section[/brown]
[brown]#pragma section _TOP[/brown]
[purple]int[/purple] InitializeSystem(int isAppli, unsigned short OptionNum)
{
[b][blue]return[/blue][/b] INIT_ADDIN_APPLICATION(isAppli, OptionNum);
}
[brown]#pragma section[/brown]
Je m'arrête la pour aujourd'hui
Merci d'avance pour vos réponses
Citer : Posté le 05/06/2014 20:03 | #
ah non
C'est une des lib de base du C non?
Citer : Posté le 05/06/2014 20:03 | #
presque
-Mon Fall Down
-Mon jeu de mains
-Mon starwars
-Mon dessinatout
-Mon niaiseux version 2.0
-Mon niaiseux version 3.0
-Inferno
-Mon super labyrinthe (en cours)
-Mon call of duty en 3D
-Casion (avec Az)
Citer : Posté le 05/06/2014 20:03 | #
Oui, mais il n'empêche qu'il faut le header, c'est dans les règles du C.
Citer : Posté le 05/06/2014 20:05 | #
Mais comment on fait pour afficher une variable qui évolue au cours d'un programme vu qu'on doit mettre sa valeur dans char buffer?
Y-a-t-il un autre moyen d'afficher une variable?
Citer : Posté le 05/06/2014 20:06 | #
Non, c'est le seul vrai moyen.
Si tu veux afficher une variable, il faut utiliser sprintf() et un buffer à chaque fois.
Citer : Posté le 05/06/2014 20:06 | #
non tu la remet dans le char puis tu la réaffiche
-Mon Fall Down
-Mon jeu de mains
-Mon starwars
-Mon dessinatout
-Mon niaiseux version 2.0
-Mon niaiseux version 3.0
-Inferno
-Mon super labyrinthe (en cours)
-Mon call of duty en 3D
-Casion (avec Az)
Citer : Posté le 05/06/2014 20:09 | #
Mais si par exemple dans une boucle on incrémente de 1 une variable à chaque tour on fait comment ?
Et que fait le char buffer? char c'est un type de variable?
Citer : Posté le 05/06/2014 20:11 | #
Oui, 1 char = 1 caractère. Et un tableau de char, c'est une chaîne de caractères, i.e. du texte.
À chaque tour de boucle, tu fais un sprintf() et un PrintMini().
Citer : Posté le 05/06/2014 20:15 | #
Sinon tu peux modifier le buffet directement
Citer : Posté le 05/06/2014 20:18 | #
Ce qui est équivalent à réécrire sprintf().
Je ne vois pas trop l'intérêt, ou alors je n'ai pas compris ce que tu voulais dire.
Citer : Posté le 05/06/2014 20:19 | #
Ce qui est équivalent à réécrire sprintf().
C'est pas plus rapide ?
Citer : Posté le 05/06/2014 20:21 | #
Oui, je ne vois pas l'intérêt de modifier le buffer directement. sprintf() est très rapide, et également très optimisée, comme toute la lib standard.
Citer : Posté le 05/06/2014 20:26 | #
Vu qu'il ne veut qu''incrémenter, je pensais que ca serait plus rapide (on peut incrémenter un char, non ?)
Citer : Posté le 05/06/2014 20:28 | #
Oui, mais avec les retenues... c'est pire que sprintf().
Citer : Posté le 05/06/2014 20:32 | #
Ok, au temps pour moi, je n'avais jamais testé
Citer : Posté le 05/06/2014 20:34 | #
Est-ce que c'est expliqué le buffer et le sprintf(buffer,"%d", variable) sur le site du zero?
Citer : Posté le 05/06/2014 20:37 | #
Non, ils utilisent printf() qui sort directement sur la console. Mais la présence d'un buffer en premier argument est la seule différence, donc toutes les histoires de formatage, avec les '%', les '\' c'est identique. Je te conseille d'aller y jeter un coup d'oeil.
Citer : Posté le 31/08/2014 15:42 | #
Il est temps de relancer ce topic
Je m'attaque a un plus ou moins(rassurez vous je ne vais le mettre sur le site ) et il y a des choses que je ne comprend pas ou je n'arrive pas.
Voila le code:
[brown]#include [gray]"fxlib.h"[/gray][/brown]
[brown]#include [gray]"stdio.h"[/gray][/brown]
static [purple]int[/purple] SysCallCode[] = {[maroon]0[/maroon]xD201422B,[maroon]0[/maroon]x60F20000,[maroon]0[/maroon]x80010070};
static [purple]int[/purple] (*SysCall)(int R4, [purple]int[/purple] R5, [purple]int[/purple] R6, [purple]int[/purple] R7, [purple]int[/purple] FNo ) = (void*)&SysCallCode;
[purple]int[/purple] AddIn_main(int isAppli, unsigned short OptionNum)
{
[green]//Variable [/green]
[purple]unsigned int[/purple] key;
[purple]int[/purple] nbrAlea =[maroon]0[/maroon];
[green]//Nombre aléatoire[/green]
srand(RTC_getTicks());
nbrAlea = rand_int_ab(1,[maroon]100[/maroon]);
[green]//Menu[/green]
locate(5,[maroon]2[/maroon]);
Print([gray]"Jeu du + ou -"[/gray]);
Bdisp_DrawLineVRAM(23,[maroon]16[/maroon],[maroon]103[/maroon],[maroon]16[/maroon]);
PrintMini(11,[maroon]40[/maroon],[gray]"Appuyer sur EXE pour jouer"[/gray],[maroon]0[/maroon]);
[b][blue]do[/blue][/b]{
GetKey(&key);[green]//Pourquoi il y a un & ? [/green]
}while(key != KEY_CTRL_EXE);[green]//est ce que c'est une constante qui renvoie une valeur(ou elle est)[/green]
Bdisp_AllClr_DDVRAM();
[green]//Jeu[/green]
PrintMini(1,[maroon]1[/maroon],[gray]"Choisi un nombre :"[/gray],[maroon]0[/maroon]);
[b][green]/*Apres il faut que je demande à l'utilisateur de saisir un nombre
Est ce que le getkey C fonctionne de la meme facon qu'en Basic?
Est ce utile de l'isoler?
Comment savoir si on a appuyer sur une touche quelconque?
Est ce que je dois faire un test pour chaque touche ou il existe une lib ou un tuto particulier?
Voila je crois que c'est tout ;)
*/[/green][/b]
[b][blue]do[/blue][/b]{
[b][blue]do[/blue][/b]{
GetKey(&key);
[green]//reconnaissance de la touche pressée[/green]
}while[green]//incomplet[/green]
}while[green]//incomplet[/green]
[b][blue]while[/blue][/b](1){
GetKey(&key);
}
[b][blue]return[/blue][/b] 1;
}
[purple]int[/purple] RTC_getTicks(){
[b][blue]return[/blue][/b] (*SysCall)(0, [maroon]0[/maroon], [maroon]0[/maroon], [maroon]0[/maroon], [maroon]0[/maroon]x3B);
}
[purple]int[/purple] rand_int_ab(int min, [purple]int[/purple] max){
[b][blue]return[/blue][/b] rand() % (max - min) + min;
}
Citer : Posté le 31/08/2014 15:44 | #
Silaxe, tu as lu le tuto du C sur le site du zéro jusqu'à la partie sur la SDL ?
Si c'est pas le cas, tu ferai mieux d'aller le lire
Citer : Posté le 31/08/2014 15:45 | #
non pas encore
Citer : Posté le 31/08/2014 17:05 | #
Franchement, c'est quoi cette manie épidémique de créer chacun son topic ? -_-
Qui ici connaît l'existence de ce topic, et surtout en a lu la première phrase ?