[Turbo C++] Fonciton containing for are not expanded inline
Bonjour je tente de réaliser un pitit jeu de serpent... depuis pas mal de temps deja [ j'ai deja bien tourmenté le forum avec ca... mé bon... ]
et voila mon bout de code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159
| // Jeu de Serpent by THeAnGelZ alias N.Mngale
// Email: theangelofcrys@free.fr
#include <stdio.h>
#include <dos.h>
#include <bios.h>
#include <conio.h>
#include <iostream.h>
//--definition-de-la-classe-principale--------------------------------------
class Serpent
{
private:
char *SerpentCorps[1000];
int Serpentx[1000];
int Serpenty[1000];
int TailleSerpent;
public:
// Modificationdes variable Set
void SetSerpentCorps(int k,char *serpv)
{
SerpentCorps[k] = serpv;
}
void SetSerpentx(int k,int serpv)
{
Serpentx[k] = serpv;
}
void SetSerpenty(int k,int serpv)
{
Serpenty[k] = serpv;
}
// Accesseurs
char *GetSerpentCorps(int nbT)
{ return SerpentCorps[nbT]; }
int GetSerpentx(int nbT)
{ return Serpentx[nbT]; }
int GetSerpenty(int nbT)
{ return Serpenty[nbT]; }
int GetTailleSerpent()
{ return TailleSerpent; }
// Constructeur & Destructeur
Serpent()
{
TailleSerpent=4;
for(int k=0; k==1000; k++)
{
if(k==0)
SerpentCorps[k]="þ";
else if(k<=4)
{
Serpentx[k] = (40 + k);
Serpenty[k] = 12;
SerpentCorps[k] = "²";
}
else
{
Serpentx[k] =-1;
Serpenty[k] =-1;
SerpentCorps[k] = " ";
}
}
}
// Fonctions Principale
void SerpentPlusUn(int x,int y)
{
for(TailleSerpent=0; TailleSerpent==1000; TailleSerpent++)
{
if(SerpentCorps[TailleSerpent]==" ")
break;
}
SerpentCorps[TailleSerpent]="²";
Serpentx[TailleSerpent]=x;
Serpenty[TailleSerpent]=y;
}
void SerpentBouge(int x,int y)
{
for(int k=0; k==TailleSerpent; k++)
{
SerpentCorps[k+1] = SerpentCorps[k];
Serpentx[k+1] = Serpentx[k];
Serpenty[k+1] = Serpenty[k];
}
SerpentCorps[TailleSerpent+1]=" ";
Serpentx[TailleSerpent+1]=-1;
Serpenty[TailleSerpent+1]=-1;
SerpentCorps[0]="@";
Serpentx[0]=x;
Serpenty[0]=y;
}
};
//------------------------------------------------------------------------------------------------
int main()
{
//--definition-des-variable-----------------------------------------------------------------------
int x=40;
int y=12;
int cget;
char quit=0;
// --
Serpent serpent;
// --
//------------------------------------------------------------------------------------------------
_setcursortype(_NOCURSOR); // enleve le curseur
while(!quit)
{
//--affichage-du-serpent
for(int k=0; k=serpent.GetTailleSerpent(); k++) // ici Possibly incorect assignement in fonction main()....
{
gotoxy(serpent.GetSerpentx(k),serpent.GetSerpenty(k));
cout << serpent.GetSerpentCorps(k); // 254 -> þ 178 -> ²
}
//----------------------
if(kbhit()!=0)
{
delay(10);
if(getch!=NULL)
cget=getch();
switch(cget)
{
case 72: serpent.SerpentBouge(serpent.GetSerpentx(0),(--serpent.GetSerpenty(0))); // Lvalue required in fonction main
break;
case 80: y++; // j'en suis la
break;
case 75: x--;
break; // c pas fini la hein ?
case 77: x++;
break;
case 59: quit=1;
break;
}
clrscr();
}
delay(50);
switch(cget)
{
case 72: y--;
break;
case 80: y++;
break;
case 75: x--;
break;
case 77: x++;
break;
case 59: quit=1;
break;
}
clrscr();
}
return 0;
} |
Il ya quelquchose qui m'énerve c que Turbo C++ maffiche des warning [ 3/4 fois.. ]:
Fonctions sontaining for are not expanded inline
je ne comprend pas pourquoi... pourquoi ??
mais aussi :
Possibly incorect assignement in fonction main()
&
Lavlue required in fonction main()
Ben voila je vous ai tout dis de mes problème....
J'utilise Turbo C++...
Merci d'avance pour votre aide @+
Functions containing for are not expanded inline
Bonjour,
Les fonctions qui contiennent des boucles ( for, do while, while ) et
aussi je pense aux sélecteurs de cas ( switch, case ) ne sont pas
développées en ligne (inline). Or votre classe Serpent se sert d'un
contructeur et d'autres méthodes (SerpentBouge, et SerpentPLusUn ) qui ne ne respectent pas cette régle.
Solution pour ne plus avoir ces avertissements:
Développer vos méthodes qui contiennent des boucles, hors ligne, en
dehors de la définition de classe.
votre constructeur
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
class Serpent
{ public :
Serpent() ; décarations du prototype içi, développement hors ligne
~Serpent() {}
autres méthodes...
};
méthode hors ligne pour le contructeur
Serpent::Serpent()
{
TailleSerpent=4;
for(int k=0; k==1000; k++)
{
if(k==0)
SerpentCorps[k]="þ";
else if(k<=4)
{
Serpentx[k] = (40 + k);
Serpenty[k] = 12;
SerpentCorps[k] = "²";
}
else
{
Serpentx[k] =-1;
Serpenty[k] =-1;
SerpentCorps[k] = " ";
}
}
} |
Cordialement.