Posté le 21/04/2014 18:14
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 146 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements
Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd
Citer : Posté le 12/05/2014 15:33 | #
Si, mais c'est plus propre dynamiquement : on alloue ce dont on a besoin
Citer : Posté le 12/05/2014 17:03 | #
wowow je n'ai pas tout compris ce que vous avez mis et je trouve mon truc plus simple
@drac je connais les switch mais dans ce cas là ca prends + de place et tu verrais sur code::blocs ya une indentation qui fait que tout est très clair
Ajouté le 12/05/2014 à 18:11 :
j'ai rerajouté des trucs je la posterais en version méga-finale
Ajouté le 12/05/2014 à 19:28 :
help code::blocks me met : code::blocs à cessé de fonctionner...
#include <stdlib.h>
#include <time.h>
#include <string.h>
int choix_joueur=0, choix_IA=0, quitter=0;
char *saisie;
int randomNum(int min, int max){
srand(time(NULL));
return ((float)(max-min)*rand()/RAND_MAX)+min;
}
int menu () {
choix_joueur=0;
printf("1=Pierre\n");
printf("2=Feuille\n");
printf("3=Ciseaux\n");
printf("4=Lezard\n");
printf("5=Spock\n");
while (choix_joueur<1 || choix_joueur>5) {
scanf ("%s", &saisie);
choix_joueur=atoi(saisie);
}
return choix_joueur;
}
int main()
{
while (quitter==0) {
quitter=0;
char *choix_joueur_txt;
char *choix_IA_txt;
choix_joueur=menu();
if (choix_joueur==1) choix_joueur_txt="pierre";
if (choix_joueur==2) choix_joueur_txt="feuille";
if (choix_joueur==3) choix_joueur_txt="ciseaux";
if (choix_joueur==4) choix_joueur_txt="lezard";
if (choix_joueur==5) choix_joueur_txt="spock";
choix_IA=randomNum(1,5);
if (choix_IA==1) choix_IA_txt="pierre";
if (choix_IA==2) choix_IA_txt="feuille";
if (choix_IA==3) choix_IA_txt="ciseaux";
if (choix_IA==4) choix_IA_txt="lezard";
if (choix_IA==5) choix_IA_txt="spock";
printf ("Vous avez choisi %s et l'ordi a choisi %s\n", choix_joueur_txt, choix_IA_txt);
if (choix_joueur<4 && choix_IA<4){
if (choix_IA==choix_joueur+1 || choix_IA==choix_joueur-2) printf ("Perdu...\n");
if (choix_IA==choix_joueur-1 || choix_IA==choix_joueur+2) printf ("Gagne !!!\n");
}
if (choix_joueur==4 && choix_IA==5) printf("Gagne !!!\n");
if (choix_joueur==5 && choix_IA==4) printf("Perdu...\n");
if (choix_joueur<4 && choix_IA>3){
if (choix_IA==choix_joueur+3 || choix_IA==4 && choix_joueur==3) printf("Gagne !!!\n");
else printf("Perdu...\n");
}
if (choix_joueur>3 && choix_IA<4){
if (choix_IA==choix_joueur-3 || choix_IA==3 && choix_joueur==4) printf("Perdu...");
else printf("Gagne !!!");
}
if (choix_IA==choix_joueur) printf ("Match nul.\n");
printf("Continuer ? 1=Oui 2=Non\n");
scanf("%d", &quitter);
quitter --;
}
return 0;
}
qui peut m'aider svp ?
-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 12/05/2014 19:31 | #
Plusieurs choses.
scanf ("%s", &saisie);
choix_joueur=atoi(saisie);
}
Tu pourrais simplement mettre
scanf ("%d", &choix_joueur);
}
Ensuite tu ne peux pas assigner une valeur à une chaîne avec '=' ! Donc il ne faut pas mettre
mais
Et enfin, plutôt que de mettre des char * pour tes choix, mets
pour les deux. Parce que là tu as des pointeurs mais pas de mémoire.
Citer : Posté le 12/05/2014 19:34 | #
mais pourtant pour le pierre feuille ciseaux tout court ca marchait avec ces trucs (j'ai quasi rien changé...) et le choix_IA_txt="pierre" marchait très bien... peux tu essayer le code avec ton IDE pour voir si ca marche stp ?
Ajouté le 12/05/2014 à 19:34 :
et le atoi c'est si la personne rentre du texte
-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 12/05/2014 19:37 | #
Ne t'inquiète pas, scanf() gère aussi même si c'est du texte. Et puis atoi() te renverrait aussi une valeur valide.
Je pourrais tester, mais je sais que ça ne fonctionnerait que par chance. Si tu te sers des chaînes comme ça, je peux t'assurer que tu n'ira pas loin avec.
Citer : Posté le 12/05/2014 21:46 | #
scanf() gère le txt je sais (je le fais d'ailleurs) mais je le met dans une str pasque je peux pas le mettre direct dans une int.
je vais essayer avec ta méthode. je reposte un message pour te dire si c'est bon ou non...
Ajouté le 12/05/2014 à 21:54 :
lephenénixnoir tu es un génie !!! merci Par contre ca m'éclate trop quand ya marqué "Vous avez choisi spock et l'ordi à choisi pierre : vous gagnez !!!"
-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 12/05/2014 21:56 | #
Par contre il faudrait revoir ton algo de test...
Citer : Posté le 13/05/2014 11:29 | #
quel algo de test ?
-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 13/05/2014 11:44 | #
Pour éviter les forets de if .. pas jolie jolie .. tu peux faire un tableau de pointeur sur fonction
C'est "complexe" mais si tu comprends ça rend le code plus jolie, plus optimiser etc ...
Citer : Posté le 13/05/2014 11:47 | #
a oui mais moi j'aime bien ma "forêt de if" comme tu dis
pis après je vais pas me compliquer la vie pour un jeu comme ca
-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 13/05/2014 11:52 | #
Certes
Mais il n’empêche que tu pourrai juste y jeter un petit coup d’œil, c'est assez cool
Citer : Posté le 13/05/2014 12:05 | #
oui j'ai pas encore vu ca mais ca va pas tarder
Ajouté le 13/05/2014 à 12:06 :
yeah 600 points 8)
-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 13/05/2014 15:45 | #
Des tableux de pointeurs sur des fonctions ?
Je veux bien, ils sont jolis et tout mais pour un pierre feuille ciseaux ? Faudrait pas éxagérer quand même.
Et puis Darkysun, si comme tu le dis tu débutes (et que tu as un peu de mal avec les strings, pointeurs par définition), ne t'embête pas avec de tels trucs, c'est vraiment des outils avancés du C.
Je parlais de faire un algo simple. Genre:
if(choixIA%3 == choixUser%3+1) printf("Gagne !\n");
else if(choixIA==choixUser) printf("Egalite !\n");
else printf("Perdu ! \n");
Citer : Posté le 13/05/2014 16:15 | #
a oui pour le pierre feuille ciseaux ca marche ca ( j'aurais jamais pensé à faire ca)
mais pas pour le léézard spock où ca rajoute plein de trucs et donc où ton algo est innaproprié
il est vrai que j'ai du mal avec les str : je n'ai même pas encore entamé ce chapitre : j'ai fait en bidouillant avec ce que mon cousin m'a montré mais il ne m'a pas tout expliqué : juste les fonctions de base et principalement le random
-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 13/05/2014 16:26 | #
L'algo que je t'ai mis est valable si choixIA et choixUser sont tous les deux inférieurs à 3. Ça permettrait déjà de réduire ta liste de if.
Et à quoi correspondent "lézard" et "spock" ?
Citer : Posté le 13/05/2014 16:28 | #
le pierre feuille ciseaux lézard spock à été inventé par big bang théorie : tu peux trouver les règles en tapant pierre feuille ciseaux lézard spock sur Google
Ajouté le 20/05/2014 à 20:51 :
alors voila : j'ai commencé le SDK mtn et j'ai des erreurs avec ca :
/* */
/* CASIO fx-9860G SDK Library */
/* */
/* File name : [ProjectName].c */
/* */
/* Copyright (c) 2006 CASIO COMPUTER CO., LTD. */
/* */
/*****************************************************************/
#include "fxlib.h"
//****************************************************************************
// AddIn_main (Sample program main function)
//
// param : isAppli : 1 = This application is launched by MAIN MENU.
// : 0 = This application is launched by a strip in eACT application.
//
// OptionNum : Strip number (0~3)
// (This parameter is only used when isAppli parameter is 0.)
//
// retval : 1 = No error / 0 = Error
//
//****************************************************************************
int AddIn_main(int isAppli, unsigned short OptionNum)
{
unsigned int key;
int IsKeyDown(int keycode);
Bdisp_AllClr_DDVRAM();
while(1) {
If(IsKeyDown(KEY_CTRL_EXE)==1){
PrintMini(50,30,"Salut !",2);
}else {
PrintMini(50,30,"EXE...",1);
}
}
while(1){
GetKey(&key);
}
return 1;
}
//****************************************************************************
//************** ****************
//************** Notice! ****************
//************** ****************
//************** Please do not change the following source. ****************
//************** ****************
//****************************************************************************
#pragma section _BR_Size
unsigned long BR_Size;
#pragma section
#pragma section _TOP
//****************************************************************************
// InitializeSystem
//
// param : isAppli : 1 = Application / 0 = eActivity
// OptionNum : Option Number (only eActivity)
//
// retval : 1 = No error / 0 = Error
//
//****************************************************************************
int InitializeSystem(int isAppli, unsigned short OptionNum)
{
return INIT_ADDIN_APPLICATION(isAppli, OptionNum);
}
#pragma section
Ce méchant SDK me réponds ca :
set SHC_INC=C:\SAV\ALEX\SDK\OS\SH\include
set PATH=C:\SAV\ALEX\SDK\OS\SH\bin
set SHC_LIB=C:\SAV\ALEX\SDK\OS\SH\bin
set SHC_TMP=C:\SAV\ALEX\SDK\essais\essais\Debug
"C:\SAV\ALEX\SDK\OS\SH\bin\shc.exe" -subcommand=C:\Users\AAAB\AppData\Local\Temp\hmk2C51.tmp
C:\SAV\ALEX\SDK\essais\essais\essai1.c(32) : C2500 (E) Illegal token "{"
C:\SAV\ALEX\SDK\essais\essais\essai1.c(33) : C1016 (W) Argument mismatch
C:\SAV\ALEX\SDK\essais\essais\essai1.c(34) : C2500 (E) Illegal token "else"
C:\SAV\ALEX\SDK\essais\essais\essai1.c(35) : C1016 (W) Argument mismatch
HMAKE MAKE UTILITY Ver. 1.1
Copyright (C) Hitachi Micro Systems Europe Ltd. 1998
Copyright (C) Hitachi Ltd. 1998
ERROR: Process failed with return code: 1
Build was not successful.
-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 20/05/2014 20:54 | #
Indente ton code.
Et c'est à cause du int IsKeyDown() qui n'a rien à faire dans le main et qui de toute manière est inutile vu que tu as inclus fxlib.h.
Citer : Posté le 21/05/2014 10:55 | #
Sinon plus facile qu'un tableau de pointeurs sur fonctions, pourquoi tu ne ferais pas des switch ?
Citer : Posté le 21/05/2014 12:19 | #
J'aimerais savoir pourquoi tu parles d'un tableau de fonctions. Il n'y en a nulle part dans ce code.
Et que veux-tu remplacer par un switch ?
Citer : Posté le 21/05/2014 15:09 | #
prof Lephenixnoir, j'ai indenté et ca ne marche toujours pas pourquoi ? (et déjà depuis quand faut indenter en C )
-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 21/05/2014 15:10 | #
Indenter c'est rajouter des tabulations ("Tab").
Petite illustration pour te montrer l'utilité:
#include "MonochromeLib.h"
#include "memory.h"
#include "AGBS.h"
#include "jeu.h"
#include <stdio.h>
#include <stdlib.h>
void monde_3()
{
unsigned int x_pointeur, x_fond;
unsigned int key, nbr, debloque;
unsigned char buffer[9];
int handle;
// LECTURE ET ANALYSE FICHIER
handle = memory_openfile("\\\\fls0\\angrysw.rgl",_OPENMODE_READ);
memory_readfile(handle,buffer,7,15);
memory_closefile(handle);
nbr = -1;
debloque = 0;
do{
nbr++;
if(buffer[nbr] == '1') debloque++;
else break;
}while(1);
x_pointeur = 0;
x_fond = 0;
do{
Bdisp_AllClr_DDVRAM();
ML_bmp_or_cl(fond, x_fond, 0, 191, 64);
ML_circle(10+12*x_pointeur, 31, 10, ML_BLACK);
ML_circle(11+12*x_pointeur, 32, 10, ML_BLACK);
for(nbr = debloque; nbr<7; nbr++){
ML_filled_circle(52+21*nbr+x_fond, 31, 8, ML_BLACK);
}
GetKey(&key);
if(key==KEY_CTRL_EXIT){
x_pointeur = 0;
x_fond = 0;
}
if(key==KEY_CTRL_LEFT && x_pointeur>0){
x_pointeur--;
x_fond += 9;
}
if(key==KEY_CTRL_RIGHT && x_pointeur<debloque+1){
x_pointeur++;
x_fond -= 9;
}
if(key==KEY_CTRL_EXE) break;
}while(1);
if(x_pointeur > 0) level(3, x_pointeur);
while(IsKeyDown(KEY_CTRL_EXE));
}
#include "MonochromeLib.h"
#include "memory.h"
#include "AGBS.h"
#include "jeu.h"
#include <stdio.h>
#include <stdlib.h>
void monde_3()
{
unsigned int x_pointeur, x_fond;
unsigned int key, nbr, debloque;
unsigned char buffer[9];
int handle;
// LECTURE ET ANALYSE FICHIER
handle = memory_openfile("\\\\fls0\\angrysw.rgl",_OPENMODE_READ);
memory_readfile(handle,buffer,7,15);
memory_closefile(handle);
nbr = -1;
debloque = 0;
do{
nbr++;
if(buffer[nbr] == '1') debloque++;
else break;
}while(1);
x_pointeur = 0;
x_fond = 0;
do{
Bdisp_AllClr_DDVRAM();
ML_bmp_or_cl(fond, x_fond, 0, 191, 64);
ML_circle(10+12*x_pointeur, 31, 10, ML_BLACK);
ML_circle(11+12*x_pointeur, 32, 10, ML_BLACK);
for(nbr = debloque; nbr<7; nbr++){
ML_filled_circle(52+21*nbr+x_fond, 31, 8, ML_BLACK);
}
GetKey(&key);
if(key==KEY_CTRL_EXIT){
x_pointeur = 0;
x_fond = 0;
}
if(key==KEY_CTRL_LEFT && x_pointeur>0){
x_pointeur--;
x_fond += 9;
}
if(key==KEY_CTRL_RIGHT && x_pointeur<debloque+1){
x_pointeur++;
x_fond -= 9;
}
if(key==KEY_CTRL_EXE) break;
}while(1);
if(x_pointeur > 0) level(3, x_pointeur);
while(IsKeyDown(KEY_CTRL_EXE));
}
Tu preferes lequel ?
Ca permet de rendre le code plus lisible mais ça ne change en rien le contenu pour le compilo
Pas de majuscule