Forum Graph100

Forum Graph100

Vous n'êtes pas identifié.

Annonce

Bonjour et bienvenue sur le nouveau Forum Graph100 !
L'intégralité des données a été transférée sur un forum PunBB et tout les comptes sont fonctionnels avec le même nom d'utilisateur et mot de passe.
Un wiki est aussi disponible avec le même compte ! N'oubliez pas de remettre votre avatar, bon surf !
Pour plus d'informations, consultez ce post.

#1 29 May 2002 09:04:11

SisQo
Programmeur Graph100
Lieu: Paris 12
Date d'inscription: 14 May 2002
Messages: 294
Site web

Juste un piti nexemple...

Voila, comme j essaye de faire des programme en C, je voulais simplement demander de l aide:Y aurait il qqun qui prrait me filer la source du prog tres simple, consistant a diriger un caractere sur l ecran, avec les touches haut bas dr et gauche??
Merci d avance.

Au fait:Je programme un nouveau jeu en basic:le but est d entrer en discotheque et de se la jouer pr atteindre un haut niveau de notoriete.
Screenshots bientot dispos...


-------------------------------
http://b.attal.free.fr/banniere.gif

Hors ligne

 

#2 29 May 2002 10:22:26

casioworld
Programmeur Graph100
Lieu: Palaiseau (Essonne)
Date d'inscription: 08 Feb 2002
Messages: 1843
Site web

Re: Juste un piti nexemple...

#include <stdio.h>
#include <stdlib.h>

void key(void)
    {
    asm mov ah,08h;     /* attend qu'une touche soit pressé */
    asm int 21h;
    asm mov ah,01h;      /* si touche pressé, met dans le buffer */
    asm int 16;
/*erreur*/    asm mov,ah,10h;   /* lit la touche dans le buffer */
                asm 16h;               /* valeur de la touche dans AL */
    asm mov ah,07h     /* vide le buffer */
    asm int 21h;
}

int main ()
{ int A=1;
  int B=1;
  int touche=0;

do
{
  clrscr ();
  gotoxy(A,B);
  printf("x");
key();
retunr(_AL);
touche=_AL;

switch (touche)
{case '75':
A--;
break;
case '77':
A++;
break;
case '72':
B--;
break;
case '80':
B++;
break;}
}
while (touche!=1);
return (0);
}


normalement ca doit marcher mais turobo C me marque une erreur 'expression synthaxe'.
Pour la fonction clavier j'ai recopié le tuto de whyp betement mais je ne sais pas si ce que j'ai fais est correct. Apres 3 jour de C ont ne peut pas des miracles.
Pour les numeros des touche j'ai utlisé touche3.7
Sinon je n'ai pas trouvé de tuto qui explique comment faire des sprites pour sous doué donc je galere.
Ca serait qu'une personne corrige mes fautes !!!
          @+ et bon bas sysquo  wink


- http://www.casioworld.wb.st  --> plus grande base de données pour Graph100+
- http://efreidelirium.free.fr --> vive l'EFREI mdr

Hors ligne

 

#3 29 May 2002 11:09:28

casioworld
Programmeur Graph100
Lieu: Palaiseau (Essonne)
Date d'inscription: 08 Feb 2002
Messages: 1843
Site web

Re: Juste un piti nexemple...

voila apres avoir corrigé quelque connerie j'obitiens le code suivant:

#include <stdio.h>

void key(void)
{
asm mov ah,08h; /* attend qu'une touche soit pressé */
asm int 21h;
asm mov ah,01h; /* si touche pressé, met dans le buffer */
asm int 16h;
asm mov ah,10h; /* lit la touche dans le buffer */
asm int 16h;            /* valeur de la touche dans AL */
asm mov ah,07h  /* vide le buffer */
asm int 21h;
}

int main ()
{ int A=1;
int B=1;
int touche=0;

do
{
clrscr ();
gotoxy(A,B);
printf("x");
key();

touche=_AL;

switch (touche)
{case '75':
A--;
break;
case '77':
A++;
break;
case '72':
B--;
break;
case '80':
B++;
break;}
}
while (touche!=1);
return (0);
}
meme sans erruer de code, il ne se passe rien sur la casio; alors j'ai regardé la source de bomberman et j'ai trouvé un truc qui fonctionne:

#include <stdio.h>

#define K_ESC 1
#define K_LEFT 75
#define K_RIGHT 77
#define K_DOWN 80
#define K_UP 72

int main ()
{ int A=2;
  int B=2;
  int touche=0;

do
{
  clrscr ();
  gotoxy(A,B);
  printf("x");

touche=getch();

if(touche==K_DOWN){B++;}
    else if(touche==K_UP){B--;}
    else if(touche==K_RIGHT){A++;}
    else if(touche==K_LEFT){A--;}
}
while (touche=K_ESC);
return (0);
}

personnellement,je ne comprends ce qu'il fait avec "#define". En tout cas sa fonctionne. Appel à superNa, LArk, whyp ou bien Ktr pour nous ouvrir les yeux !!!


- http://www.casioworld.wb.st  --> plus grande base de données pour Graph100+
- http://efreidelirium.free.fr --> vive l'EFREI mdr

Hors ligne

 

#4 29 May 2002 13:57:11

2072
Programmeur Graph100
Lieu: Somewherebourg
Date d'inscription: 29 Jan 2002
Messages: 2056
Site web

Re: Juste un piti nexemple...

Define ne sert qu'à créer des macros, c'est le précompilateur qui s'en occupe

la fonction key() me paraît étrange, utilise plutôt getch()


Code:

#include <stdio.h> 

#define K_ESC    1 // K_ESC équivaut donc à 1 (K_ESC == 1)
#define K_LEFT    75
#define K_RIGHT 77
#define K_DOWN    80
#define K_UP    72

int main () 
{
    int A = 1, B = 1, touche, hold_A = 0, hold_B = 0;

    do 
    { 
    gotoxy(hold_A, hold_B);    printf(" "); //remplace l'ancien caractère par un espace
    gotoxy(A,B); printf("x"); //affiche le nouveau
    hold_A = A; hold_B = B;// sauvegarde la position

    if ((touche = getch()) == 0)//si touche étendu (>128)
    {
        touche = getch();
    }

    switch (touche) 
    {
        case K_LEFT:    A--;    break; 
        case K_RIGHT:   A++;    break; 
        case K_UP:        B--;    break; 
        case K_DOWN:    B++;    break;
        default:; // Toujours mettre un default dans un case pour sire ce qu'on fait par défaut
    } 
    } 
    while(touche != 1 && touche != 27);// 1 == touche [ESC] de CASIO et 27 == touche [ESCAPE] des PC

    return 0;
} 

voilà c'est une version corrigée.


-~2072~-
Paid Emails
[URL=http://www.2072productions.com]2072productions.com[/URL]
[URL=http://www.casiocalc.org]casiocalc.org[/URL]

Hors ligne

 

#5 29 May 2002 16:31:43

casioworld
Programmeur Graph100
Lieu: Palaiseau (Essonne)
Date d'inscription: 08 Feb 2002
Messages: 1843
Site web

Re: Juste un piti nexemple...

c'est bien getch mais c'est hyper lent (autant que le basic)!!! faut utiliser "peekb"(que j'ai decuvert dans pong fait par whyp). ca va telement vite que je croyait que mon programme buggait !
au fait la fonction scanf ne fonctionne pas sur graph100!
apres avoir taper un chiffre, la pression de la touche exe ne fait rien. quelqu'un pourait m'eclairer !!! (depuis que j'ai debuté la C, j'ai plein d'idée et je ne lache pas ma casio... c'est mauvais pour le bac)


- http://www.casioworld.wb.st  --> plus grande base de données pour Graph100+
- http://efreidelirium.free.fr --> vive l'EFREI mdr

Hors ligne

 

#6 29 May 2002 17:09:54

KTr
Haut fonctionnaire graph100.com
Lieu: Saint Etienne
Date d'inscription: 19 Mar 2002
Messages: 1909
Site web

Re: Juste un piti nexemple...

Effectivement la fonctions scanf ne marche pas !! Il faut ke tu créé une fonction ou ke t'en pike une keke part !


(¯`·.¸¸.·´¯`·.¸¸.-> www.ktr.fr.fm  ktr@fr.fm <-.¸¸.·´¯`·.¸¸.·´¯)

Hors ligne

 

#7 29 May 2002 20:43:53

2072
Programmeur Graph100
Lieu: Somewherebourg
Date d'inscription: 29 Jan 2002
Messages: 2056
Site web

Re: Juste un piti nexemple...

Regarde dans les sources de TOUCHE 3.45 y'a des fonctions pour taper des nombres ou écrir des chaînes de caractère.


-~2072~-
Paid Emails
[URL=http://www.2072productions.com]2072productions.com[/URL]
[URL=http://www.casiocalc.org]casiocalc.org[/URL]

Hors ligne

 

#8 30 May 2002 07:01:41

casioworld
Programmeur Graph100
Lieu: Palaiseau (Essonne)
Date d'inscription: 08 Feb 2002
Messages: 1843
Site web

Re: Juste un piti nexemple...

merci, je vais voir ça !


- http://www.casioworld.wb.st  --> plus grande base de données pour Graph100+
- http://efreidelirium.free.fr --> vive l'EFREI mdr

Hors ligne

 

#9 31 May 2002 10:58:33

Guest
Invité

Re: Juste un piti nexemple...

Les codes de touches de la g100 ne st pas standard, donc scanf ne les reconnait pas. Si tu veux utiliser scanf, il faut que tu lances d'abord 'Enter.com' de Roeoender. Si tu ne l'as pas, je peux te l'envoyer.

 

#10 31 May 2002 15:26:03

nykosledieu
Team G100
Lieu: Strasbourg
Date d'inscription: 29 Jan 2002
Messages: 3028
Site web

Re: Juste un piti nexemple...

enter.com est-il résident?


Nykosledieu
nykosJEMMERDELESPAM@graph100.com - http://team.graph100.com
Venez sur le chat !!

Hors ligne

 

#11 31 May 2002 15:38:01

KTr
Haut fonctionnaire graph100.com
Lieu: Saint Etienne
Date d'inscription: 19 Mar 2002
Messages: 1909
Site web

Re: Juste un piti nexemple...

Oui il est résident (enfin j'en suis preske sur !) le problème avec enter.com c ke tu pe pa l'inclure a un prog : si tu fais un jeu ki l'utilise et ke tu le passe a kelkun ki l'a pa ca marchera pa !!


(¯`·.¸¸.·´¯`·.¸¸.-> www.ktr.fr.fm  ktr@fr.fm <-.¸¸.·´¯`·.¸¸.·´¯)

Hors ligne

 

#12 01 Jun 2002 08:08:28

Guest
Invité

Re: Juste un piti nexemple...

Exact, il est résident donc il faut faire un reboot après non?

 

#13 01 Jun 2002 10:23:28

deather
Membre Communauté Graph100
Lieu: Banlieue parisienne (Fresnes)
Date d'inscription: 05 May 2002
Messages: 909

Re: Juste un piti nexemple...

oulala. pkoi vs dite ke getch est trop lent ? moi je lutilise et sa va c assé rapide ... sinon c koa peekb et scanf (g lu scanf dans mon bouk1 de C g rriieenn kapish) sinon g un prog tout simple pour deplacer un carac :

Code:

#include <stdio.h>
#include <casio2b.h>
#define K_ESC   1 
#define K_LEFT   75 
#define K_RIGHT 77 
#define K_DOWN   80 
#define K_UP   72 

char key,a,b;    //defini les 3 variables
main(){
key=getkey();
if(key==K_UP) a--;
if(key==K_DOWN) a++;
if(key==K_LEFT) b--;
if(key==K_RIGHT) b++;
if(key==K_ESC) exit(0);
gotoxy(a,b);   //amene au caractere {a,b}
printf("O");
goto debut;
}

bon ya des hence ke sa marche pas bien je lai pas teste. bone chence !



..:: Deather ::..
deather.dede@gmail.com.NO.SPAM

Hors ligne

 

#14 01 Jun 2002 11:07:37

Superna
Ex-Trouvetou G100
Lieu: Sous Linux ^^
Date d'inscription: 01 Feb 2002
Messages: 2275
Site web

Re: Juste un piti nexemple...

Ppour un debutant vous avez pas du code plus compliqué ?
A mon avis, juste savoir afficher un carac, et un pixel lui suffirais, non ?

Hors ligne

 

#15 01 Jun 2002 11:32:39

deather
Membre Communauté Graph100
Lieu: Banlieue parisienne (Fresnes)
Date d'inscription: 05 May 2002
Messages: 909

Re: Juste un piti nexemple...

ben pour se kil a demendé on lui répond. g essayé de faire simple mé bon le c au debut c dur. sinon g oublié de faire éffacé l'ancien carac mé bon tu trouvera. a+


..:: Deather ::..
deather.dede@gmail.com.NO.SPAM

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr