en gros le a a ladresse de b?
moi et les pointeurs aussi ^^
jai pas vraiment eu l´occasion de m´en servir ^^
" en gros le a a ladresse de b?"
pas du tout, b est un membre de la classe dont a est une instance.
si tu ne comprend pas ce que je dit, va lire les tuto de jyy.
mmmmmm , je comprend un peu mais je vais en lire un peu plus sur les pointeurs la
il ny a pas quelqun qui connait un site qui explique bien les pointeurs?
ah oui, j´ai oublié de ^réciser que a c´était un pointeur vers une instance de la classe dont b est un membre.
commence par le site de jyy sinon va sur celui de casteyde.
Re. Je voulais savoir quel était le meilleur bouquin pour commencer le c++ :
le livre de Jesse Liberty ou c++ pour les nuls..
Merci ![]()
http://images-eu.amazon.com/images/P/2744013471.08.LZZZZZZZ.jpg
pour le livre de Liberty.
Je repose ma question, le but est de savoir quel livre est le plus adapté aux débutants..
merci bien, @+ tard
le livre le plus adapté aux debutants...n´est pas un livre, en effet il est inutile de dépenser de l´argent dans des bouquins au contenu douteux alors que tu disposes de documentation de qualité en accès libre sur le web, notemment le site de christian casteyde, les cours de developpez, les forums d´entraide, les tutos en tout genre...
garde ton argent pour quand tu auras besoin de doc sur un truc pointu, c´est mon conseil..
Svp quelqu´un peut répondre!
1) Je sais pas se que je doit choisire en premier dans C/C++ il me propose projet et...
2) quan j´ai taper ses codes ! Je n´arrive pas a le tester car a chaque fois il me mes des lignes en rouge!
3) Pourquoi?
4) Voici mes codes! Pour faire le jeux Snake!
/ /
--------------------------------------------------
---------
/ /
--------------------------------------------------
---------
typedef struct coords
{
int x;
int y;
} coords;
coords snakepositions[256];
coords headposition;
coords nourriture;
int taillesnake;
int direction; / / 0=droite, 1=bas, 2=gauche, 3=haut
int state; / / Etat du snake 0=ok 1=mort
int flip;
int scrollingvalue;
const char scrolling[] = " Snake, by Adrien de Bosset. Le but du jeu est d´attraper la nourriture. Plus le snake mange, plus il grossi. La partie est terminee si le snake se mords la queue ou si il percute un bords... " ;
/ /
--------------------------------------------------
---------
void snakevivant();
void snakemort();
int isCoordsOnSnake( coords Coordonnees);
void PositionneNourriture();
void AfficheBordClignotant();
void snakeintro();
/ /
--------------------------------------------------
---------
void InitialiseGame()
{
int i;
taillesnake=4;
direction=0;
for ( i=0; i<256; i++)
snakepositions[i].x=-1; / / Toutes les cases sont inactives
snakepositions[0].x=17;
snakepositions[0].y=9;
snakepositions[1].x=16;
snakepositions[1].y=9;
snakepositions[2].x=15;
snakepositions[2].y=9;
snakepositions[3].x=14;
snakepositions[3].y=9;
headposition.x=17;
headposition.y=9;
state=2;
flip=0;
scrollingvalue=0;
PositionneNourriture();
}
/ /
--------------------------------------------------
---------
void GameLoop()
{
if ( state==0)
snakevivant();
else if ( state==1)
snakemort();
else if ( state==2)
snakeintro();
}
/ /
--------------------------------------------------
---------
void snakevivant()
{
int i;
char stringtaille[3];
/ / Recupere les entree
if ( KGetRight() )
direction=0;
else if ( KGetDown() )
direction=1;
else if ( KGetLeft() )
direction=2;
else if ( KGetUp() )
direction=3;
/ / Deplace les elements du snake
for ( i=taillesnake-1; i>0; i--) {
snakepositions[i].x=snakepositions[i-1].x;
snakepositions[i].y=snakepositions[i-1].y;
}
/ / Deplace la case de tete
if ( direction==0)
headposition.x+=1;
if ( direction==2)
headposition.x-=1;
if ( direction==1)
headposition.y+=1;
if ( direction==3)
headposition.y-=1;
/ / Test la mort contre le bord
if ( ( headposition.x==0) || ( headposition.x==29) || ( headposition.y==0) || ( headposition.y==19) )
state=1;
/ / Test la mort contre lui meme
if ( isCoordsOnSnake( headposition ) )
state=1;
for ( i=0; i<taillesnake; i++) {
if ( ( headposition.x==snakepositions[i].x) && ( headposition.y==snakepositions[i].y) )
state=1;
}
/ / Ajoute la tete dans le tableau
snakepositions[0].x=headposition.x;
snakepositions[0].y=headposition.y;
/ / Test si on gobe
if ( ( nourriture.x==headposition.x) && ( nourriture.y==headposition.y) ) {
PositionneNourriture();
taillesnake+=2;
}
/ / Affiche cadre
AfficheBordClignotant();
/ / Affiche la nourriture
KSetDisplayColor(GREEN);
KPrintSquare( nourriture.x, nourriture.y ) ;
/ / Affiche le snake
KSetDisplayColor(RED);
for ( i=0; i<taillesnake; i++) {
if ( snakepositions[i].x!=-1) {
if ( ( i%2)==0 )
KSetDisplayColor(PURPLE);
else
KSetDisplayColor(RED);
KPrintBall( snakepositions[i].x, snakepositions[i].y ) ;
}
}
KSetDisplayColor(WHITE);
KPrintBall( headposition.x, headposition.y ) ;
/ / Affiche la taille
sprintf(stringtaille, " %03d", taillesnake);
KPrintString(stringtaille, 30-4, 19);
}
/ /
--------------------------------------------------
---------
void snakemort()
{
int x,y;
int color;
x = rand() % 30;
y = rand() % 20;
color = rand() % MAXCOLOR;
KSetDisplayColor(color);
KPrintSquare(x,y);
x = rand() % 30;
y = rand() % 20;
color = rand() % MAXCOLOR;
KSetDisplayColor(color);
KPrintSquare(x,y);
x = rand() % 30;
y = rand() % 20;
color = rand() % MAXCOLOR;
KSetDisplayColor(color);
KPrintSquare(x,y);
KPrintString("Press Space to Restart", ( 30-22)/2, 9);
/ / Affiche cadre
AfficheBordClignotant();
/ / Test si on veut recommencer
if ( KGetSpace() )
{
InitialiseGame();
state=0; / / Passe direct au jeu
}
}
/ /
--------------------------------------------------
---------
int isCoordsOnSnake( coords Coordonnees)
{
int i;
for ( i=0; i<taillesnake; i++) {
if ( ( Coordonnees.x==snakepositions[i].x) && ( Coordonnees.y==snakepositions[i].y) )
return 1;
}
return 0;
}
/ /
--------------------------------------------------
---------
void PositionneNourriture()
{
do
{
nourriture.x=( rand() % 26)+2;
nourriture.y=( rand() % 16)+2;
} while ( isCoordsOnSnake(nourriture) ) ;
}
/ /
--------------------------------------------------
---------
/ /
--------------------------------------------------
---------
void AfficheBordClignotant()
{
int i;
/ / La variable flip alterne entre 0 et 1
if ( flip==0) flip=1;
else flip=0;
for ( i=0; i<30; i++) { / / On cree une boucle de 0 a 29, on va l´utiliser pour les 4 coins
if ( ( ( i+flip)&0x01)==0 ) { / / Si boucle + flip = paire, on rempli le haut et la barre de gauche
KSetDisplayColor(YELLOW);
KPrintSquare(i,0);
if ( i<=19) {
KPrintSquare(0,i);
}
KSetDisplayColor(BLUE);
KPrintSquare(i,19);
if ( i<=19) {
KPrintSquare(29,i);
}
} else / / Si boucle + flip = impaire, on rempli le bas et la barre de droite
{
KSetDisplayColor(YELLOW);
KPrintSquare(i,19);
if ( i<=19) {
KPrintSquare(29,i);
}
KSetDisplayColor(BLUE);
KPrintSquare(i,0);
if ( i<=19) {
KPrintSquare(0,i);
}
}
}
}
/ /
--------------------------------------------------
---------
/ /
--------------------------------------------------
---------
void snakeintro()
{
char localstring[30];
KSetDisplayColor(BLUE);
KPrintString("Snake", ( 30-5)/2, 7);
KPrintString("Press Space to Start", ( 30-20)/2, 9);
/ / Scrolling
strncpy(localstring, &[scrollingvalue], 30);
KPrintString(localstring, 0, 16);
scrollingvalue++;
if ( scrollingvalue>(int)strlen(scrolling)-30)
scrollingvalue=0;
/ / Affiche le bord
AfficheBordClignotant();
/ / Test si on veut recommencer
if ( KGetSpace() )
{
InitialiseGame();
state=0;
}
}
Merci d´avance!!!
Signé : Adrien si jamais mon msn: letireurfloue@msn.com
. ..
t´as essaye de compiler le projet le plus dur du NGCK , alors que tu as jamais programme un hello world ( ou alors , j´ai mal compris le :1) Je sais pas se que je doit choisire en premier dans C/C++ il me propose projet et...
2) quan j´ai taper ses codes ! Je n´arrive pas a le tester car a chaque fois il me mes des lignes en rouge!
3) Pourquoi?
"
alors , deja , c´est pas la faute du code , parceque c´est la correction de lapintade . ..
c´est pas la faute du compilo non plus ![]()
qu´est ce qu´il reste ?
bon ok , y a plusieurs solutions :
ou , tu as mal choisi la version du ngck : en effet , lapintade a gracieusement developpe une version dev-cpp en plus de la visual ![]()
donc , si tu utilises dev-cpp , pas la peine d´essaye celle de visual
en fait , je vois pas d´autre solution
puisque tu as juste a aller
dans " exercices" puis " projet"
me rappelle plus des noms exacts
mais , tu dois ouvrir un " dev-cpp project " , une icone VIOLETTE en fait , pas BLEUE .
tu effaces les codes deja mis , tu colles celui la , tu appuies sur la touche F9 , tu joues un peu
, puis tu vas sur www.fvirtman.fr.st pour apprendre les bases du c++ ![]()
marrant , j´ai retrouve mon premier programme ![]()
" essai " de programme plutot ^^
vous auriez pu me mettre en topic mythique , sur le forum programmation . ..
"
jejej Posté le 25 octobre 2004 à 15:06:56
Bon je me suis rendu compet que c t peut etre un peu trop gros pour commencer
j´ai voulu faire un programme tipique , qui lance helo world
donc :
[
cout<< " hello world";
return 0;
]
j´ai pas mis de #include ni de int main au debut , parceque il afficeh plein de messages d´erreurs
"
je vous assure que je rigolais pas en disant ca hein , je croyais bien faire , c´etait pas une blague ![]()
jai fait les classse et les pointeurs aussi , les whiles if tableuax a 1 2 3 dimenssions , chars int , les fonctions , avec ou sans void ect......
le mot qui menerve la c instance ^^
c´était un pointeur vers une instance de la classe dont b est un membre.
ok , mais que veut tu dire en disant une instance? ( ce nest ni classe ni pointeur qu me gene dans cette phrase ^^)
instance ? si mes souvenirs sont bons , c´est juste une donnée membre d´une classe
chu plus sur
oops
j´ai rien dit alors
on va faire comme ca :
tu as ca :
class machin
{
public:
int B;
}
Machin *pb;
pb = new Machin;
pb->B=3;
voila , la SDL , ca fonctionne comme ca
le -> , c´est juste un signe " simplifié " pour eviter d´avoir a utiliser ( int)*B , ou un truc comme ca . ..
alors , instance , c´est pb , et B , c´est le membre de la classe
je crois ^^
jejej && sonic66 >
non, une instance, c´est une " copie" si j´ose dire . ..
Si on ramene ça sur des int :
int a;
int b;
on " pourrait" dire que a est une instance de int, et b est une autre instance de int...
Pareil :
ma_classe a;
ma_classe b;
voici 2 instances ( a et b) de la classe ma_classe...
je " croi" comprendre ce que tu veux dire
exemple la
struct exemple
{
int i
}
la donc , i est une instance de int qui est lui meme une instance de exemple?
a!!!
quand tu veu dire copie , tu veut dire que dans int i , i copie int car i est un int!
donc
qui est lui meme une instance de exemple
c faut!
non, si i est une instance de int, i n´est pas une instance de exemple.
Si tu fais :
exemple e;
alors e est une instance de exemple...
C´est tout bete faut pas accrocher la dessus :
X a;
est une instance de X...
Si tu crées une classe " perso" et que tu as besoin de mettre 25 persos dans ton jeu, tu crées 25 instances de perso... ah mais ![]()
Faut pas rendre compliqué ce qui ne l´est pas ! ![]()