Lancement console

dletozeun Messages postés 546 Date d'inscription vendredi 13 février 2004 Statut Membre Dernière intervention 9 janvier 2008 - 16 juin 2004 à 20:04
dletozeun Messages postés 546 Date d'inscription vendredi 13 février 2004 Statut Membre Dernière intervention 9 janvier 2008 - 18 juin 2004 à 11:44
bonjour,

j'ai fais un prog qui normalement au depart devrait ouvrir la console etme demander mon ip...
Ce prog apres cela doit initialiser allegro(librairie graphique) qui initialise directX et passe en plein ecran.

Le probleme c que la console s'ouvre et se referme aussi sec!!
elle n'attends meme pas l'entrée clavier que je lui ai demandé d'enregistrer( cin>>var;) et le system("pause"); apres ne lui fait aucun effet! elle se ferme direct!!

je ne vois vraiment pas pourquoi ? J'ai l'impression que le prog passse directement a la suite du prog: initialisation en plein ecran, sans faire gaffe au bout de code precedent! Mais cela parait impossible vu que c'est sequentiel...

Aidez moi SVP!! Merci!

9 réponses

cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 10
17 juin 2004 à 07:15
il est difficile de te repondre sans voir le code source en question !!!
Bob...

"La chance accorde ses faveur aux esprits avertis..."
0
dletozeun Messages postés 546 Date d'inscription vendredi 13 février 2004 Statut Membre Dernière intervention 9 janvier 2008 1
17 juin 2004 à 11:14
voici le code en question :

int init_reseau()
{
cout<<"quel est l'ip du serveur?"<<endl;
cin>>ip;
system("pause");
}

int main()
{
init_reseau();

//ensuite voila l'initialisation en mode plein ecran...

allegro_init();
set_color_depth(32);
set_gfx_mode(GFX_AUTODETECT,1024,768, 0, 0);
install_keyboard();
install_timer();
...
}

Finalement le prog s'arrete quand meme sur le system("pause"); mais pas sur le cin>>ip;
pourquoi?
0
cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 10
17 juin 2004 à 13:12
regarde deja ta fonction !!! une fonction int doit obligatoirement retourné une valeur (de type int)...
réécrit deja ta fonction comme ceci:

void init_reseau()
{
cout<<"quel est l'ip du serveur?"<<endl;
cin>>ip;
system("pause");
}

Bob...

"La chance accorde ses faveur aux esprits avertis..."
0
dletozeun Messages postés 546 Date d'inscription vendredi 13 février 2004 Statut Membre Dernière intervention 9 janvier 2008 1
17 juin 2004 à 14:26
j'ai beau mettre void ca change absolument rien...

le cin>>ip; n'est pas pris en compte!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 10
17 juin 2004 à 15:31
ecoute je ne sais pas trop, il faudrait voir la totalité de du code, mais tu sais ta fonction qui commence par int et qui ne retourne aucun valeur, normalement n'est pas compilé correctement !!!
Bob...

"La chance accorde ses faveur aux esprits avertis..."
0
dletozeun Messages postés 546 Date d'inscription vendredi 13 février 2004 Statut Membre Dernière intervention 9 janvier 2008 1
17 juin 2004 à 18:15
en tout cas devcpp ne me fais aucun warnings...
Le reste du du code ne te sera d'aucune utilité...
Je vois pas ce que tu trouverais dedans vu que l'erreur est au debut...
mais bon le voila (il est incomprehensible car je l'ai pas commenté

#include
#include "hbomberman.h"
#include
#include<stdlib.h>

char ip[16];

void time()
{
timer++;
}
END_OF_FUNCTION(time);

void clear_explosion()
{
for(int x=0;x<11;x++)
{
for(int y=0;y<15;y++)
{
if(extincteur[clearexp[x][y]]<timer)
explosion[x][y]=0;
}
}

}

void onde2choc()
{
if(xbaccel!=-1);
{
for(int a=0;a<6;a++)
{
if(xbombe[a]==xbaccel && ybombe[a]==ybaccel)
boum[a]=timer+3;
}
}
xbaccel=-1;
}

void draw_bloc()
{
for(int y=0;y<15;y++)
{
for(int x=0;x<11;x++)
{
if(map[x][y]==1)
draw_sprite(buffer,bloc,(x*64)+15,(y*48)+32);
if(map[x][y]==2||(map[x][y]>3&&map[x][y]<6))
draw_sprite(buffer,bloc2,(x*64)+15,(y*48)+32);
if(map[x][y]==3)
draw_sprite(buffer,bombe,(x*64)+23,(y*48)+32);
if(map[x][y]==6)
draw_sprite(buffer,bonus_feu,(x*64)+23,(y*48)+32);
if(map[x][y]==7)
draw_sprite(buffer,bonus_bombe,(x*64)+23,(y*48)+32);
}
}
}

void draw_bomberman()
{
if(pos_bomber==1)
draw_sprite(buffer,bombermanf,xbon,ybon);

if(pos_bomber==2)
draw_sprite(buffer,bombermando,xbon,ybon);

if(pos_bomber==3)
draw_sprite(buffer,bombermang,xbon,ybon);

if(pos_bomber==4)
draw_sprite(buffer,bombermand,xbon,ybon);
}

void draw_exp()
{
for(int x=0;x<11;x++)
{
for(int y=0;y<15;y++)
{
if(explosion[x][y]==1)
{
draw_sprite(buffer,feuc,(x*64)+15,(y*48)+32);
}

if(explosion[x][y]==2)
{
draw_sprite(buffer,feulv,(x*64)+15,(y*48)+32);
}

if(explosion[x][y]==3)
{
draw_sprite(buffer,feub,(x*64)+15,(y*48)+32);
}

if(explosion[x][y]==4)
{
draw_sprite(buffer,feuh,(x*64)+15,(y*48)+32);
}

if(explosion[x][y]==5)
{
draw_sprite(buffer,feul,(x*64)+15,(y*48)+32);
}

if(explosion[x][y]==6)
{
draw_sprite(buffer,feud,(x*64)+15,(y*48)+32);
}

if(explosion[x][y]==7)
{
draw_sprite(buffer,feug,(x*64)+15,(y*48)+32);
}
}
}
clear_explosion();
}

void buffering()
{
clear_bitmap(buffer);
draw_sprite(buffer,sol,0,0);
draw_bloc();
draw_bomberman();
draw_exp();
draw_sprite(buffer,murb,0,752);
sprintf(str,"%d %d %d %d %d %d",xbon,ybon,xmap[1],ymap[1],timer,currentdep);
textout(buffer,font,str,700,4,makecol(255,0,0));
blit(buffer,screen,0,0,0,0,1024,768);

switch(npage)
{
case 1:buffer=page2;npage=2;break;
case 2:buffer=page3;npage=3;break;
case 3:buffer=page1;npage=1;break;
}
}

void init()
{

for(int a=0;a<4;a++)
{
for(int b=0;b<4;b++)
{
deplace[a][b]=8;
}
}

for(int a=0;a<6;a++)
{
boum[a]=-1;
p[a]=1;
decal[a]=1;
}


for(int a=0;a<11;a++)
{
for(int b=0;b<15;b++)
{
map[a][b]=0;
explosion[a][b]=0;
}
}
int p=1;
int q=1;
for(int x=1;x<10;x++)
{
for(int y=1;y<14;y++)
{
if(p==0)
{
map[x][y]=0;
p=1;
}
else if(q==1)
{
map[x][y]=1;
p=0;
}
}
q=q*-1;
}
srand((unsigned)time(NULL));


map[0][0]=-1;
map[1][0]=-1;
map[0][1]=-1;
map[10][14]=-1;
map[10][13]=-1;
map[9][14]=-1;

p=1;
q=1;
for(int y=0;y<15;y++)
{
for(int x=0;x<15;x++)
{
if((rand()%2==0||rand()%2==1||rand()%2==3)&&p==1&&map[x][y]!=-1)
{
map[x][y]=2;
}

if(q==-1)
p=(p*-1);
}
q=(q*-1);
p=1;
}

//disposition des bonus
p=1;
q=1;
for(int y=0;y<15;y++)
{
for(int x=0;x<15;x++)
{
if(rand()%5==0&&p==1&&map[x][y]==2)
{
map[x][y]=4;
}
else if(rand()%5==0&&p==1&&map[x][y]==2)
{
map[x][y]=5;
}
if(q==-1)
p=(p*-1);
}
q=(q*-1);
p=1;
}

map[0][0]=0;
map[1][0]=0;
map[0][1]=0;
map[10][14]=0;
map[10][13]=0;
map[9][14]=0;

}

void bouge_bon()
{

if(key[KEY_LEFT]&&(map[xmap[1]-1][ymap[1]]==0||map[xmap[1]-1][ymap[1]]==6||map[xmap[1]-1][ymap[1]]==7)&&xmap[1]>0&&deplace[0][0]==8&¤tdep==0)
{
deplace[0][0]=0;
xmap[1]=xmap[1]-1;
currentdep=1;
}
if(deplace[0][0]<8)
{
deplace[0][0]=deplace[0][0]+1;
pos_bomber=3;
xbon=xbon-8;
if(deplace[0][0]==8)
currentdep=0;
}

if(key[KEY_RIGHT]&&(map[xmap[1]+1][ymap[1]]==0||map[xmap[1]+1][ymap[1]]==6||map[xmap[1]+1][ymap[1]]==7)&&xmap[1]<10&&deplace[1][1]==8&¤tdep==0)
{
deplace[1][1]=0;
xmap[1]=xmap[1]+1;
currentdep=1;
}
if(deplace[1][1]<8)
{
deplace[1][1]=deplace[1][1]+1;
pos_bomber=4;
xbon=xbon+8;
if(deplace[1][1]==8)
currentdep=0;
}

if(key[KEY_UP]&&(map[xmap[1]][ymap[1]-1]==0||map[xmap[1]][ymap[1]-1]==6||map[xmap[1]][ymap[1]-1]==7)&&ymap[1]>0&&deplace[2][2]>5&¤tdep==0)
{
deplace[2][2]=0;
ymap[1]=ymap[1]-1;
currentdep=1;
}
if(deplace[2][2]<6)
{
deplace[2][2]=deplace[2][2]+1;
pos_bomber=2;
ybon=ybon-8;
if(deplace[2][2]==6)
currentdep=0;
}

if(key[KEY_DOWN]&&(map[xmap[1]][ymap[1]+1]==0||map[xmap[1]][ymap[1]+1]==6||map[xmap[1]][ymap[1]+1]==7)&&ymap[1]<14&&deplace[3][3]>5&¤tdep==0)
{
deplace[3][3]=0;
ymap[1]=ymap[1]+1;
currentdep=1;
}
if(deplace[3][3]<6)
{
deplace[3][3]=deplace[3][3]+1;
pos_bomber=1;
ybon=ybon+8;
if(deplace[3][3]==6)
currentdep=0;
}

if(map[xmap[1]][ymap[1]]==6)
{
map[xmap[1]][ymap[1]]=0;
if(pmax<12)
pmax=pmax+1;
}
if(map[xmap[1]][ymap[1]]==7)
{
map[xmap[1]][ymap[1]]=0;
if(bombemax<6)
bombemax=bombemax+1;
}
}

int bomberman_is_dead()
{
bomberman_alive=0;
return 0;
}

void draw_explosion(int xexp,int yexp)
{

int decale=decal[pos];


if(p[pos]!=pmax)
{
explosion[xexp][yexp]=1;
clearexp[xexp][yexp]=pos;
}


if((map[xexp-decale][yexp]==2||map[xexp-decale][yexp]==4||map[xexp-decale][yexp]==5)&&lockg[pos]==0)
peteblocg[pos]=-1;
if((map[xexp+decale][yexp]==2||map[xexp+decale][yexp]==4||map[xexp+decale][yexp]==5)&&lockd[pos]==0)
peteblocd[pos]=-1;
if((map[xexp][yexp-decale]==2||map[xexp][yexp-decale]==4||map[xexp][yexp-decale]==5)&&lockh[pos]==0)
petebloch[pos]=-1;
if((map[xexp][yexp+decale]==2||map[xexp][yexp+decale]==4||map[xexp][yexp+decale]==5)&&lockb[pos]==0)
peteblocb[pos]=-1;

if((map[xexp-1][yexp]!=1&&xexp!=0)||(map[xexp+1][yexp]!=1&&xexp!=10))
{

if(peteblocg[pos]<1)
{
if(xexp-decale>0&&decale!=p[pos]&&peteblocg[pos]!=-1&&p[pos]!=pmax+1)
{
explosion[xexp-decale][yexp]=5;
clearexp[xexp-decale][yexp]=pos;
}
else if(xexp-decale>-1&&explosion[xexp-decale][yexp]!=5&&explosion[xexp-decale][yexp]!=1)
{
explosion[xexp-decale][yexp]=7;
clearexp[xexp-decale][yexp]=pos;
}
if(map[xexp-decale][yexp]==3)
{
xbaccel=xexp-decale;
ybaccel=yexp;
}

}

if(peteblocd[pos]<1)
{
if(xexp+decale<10&&decale!=p[pos]&&peteblocd[pos]!=-1&&p[pos]!=pmax+1)
{
explosion[xexp+decale][yexp]=5;
clearexp[xexp+decale][yexp]=pos;
}
else if(xexp+decale<11&&explosion[xexp+decale][yexp]!=5&&explosion[xexp+decale][yexp]!=1)
{
explosion[xexp+decale][yexp]=6;
clearexp[xexp+decale][yexp]=pos;
}
if(map[xexp+decale][yexp]==3)
{
xbaccel=xexp+decale;
ybaccel=yexp;
}
}

if(peteblocg[pos]<1)
{
if(xexp-decale>-1&&map[xexp-decale][yexp]<3)
map[xexp-decale][yexp]=0;
else if(map[xexp-decale][yexp]==4&&xexp-decale>-1)
map[xexp-decale][yexp]=6;
else if(map[xexp-decale][yexp]==5&&xexp-decale>-1)
map[xexp-decale][yexp]=7;
}

if(peteblocd[pos]<1)
{
if(xexp+decale<11&&map[xexp+decale][yexp]<3)
map[xexp+decale][yexp]=0;
else if(map[xexp+decale][yexp]==4&&xexp+decale<11)
map[xexp+decale][yexp]=6;
else if(map[xexp+decale][yexp]==5&&xexp+decale<11)
map[xexp+decale][yexp]=7;
}

if((xexp-decale==xmap[1]&&yexp==ymap[1]&&peteblocg[pos]!=1)||(xexp+decale==xmap[1]&&yexp==ymap[1]&&peteblocd[pos]!=1))
bomberman_is_dead();

}

if((map[xexp][yexp-1]!=1&&yexp!=0)||(map[xexp][yexp+1]!=1&&yexp!=14))
{

if(petebloch[pos]<1)
{
if(yexp-decale>0&&decale!=p[pos]&&petebloch[pos]!=-1&&p[pos]!=pmax+1)
{
explosion[xexp][yexp-decale]=2;
clearexp[xexp][yexp-decale]=pos;
}
else if(yexp-decale>-1&&explosion[xexp][yexp-decale]!=2&&explosion[xexp][yexp-decale]!=1)
{
explosion[xexp][yexp-decale]=4;
clearexp[xexp][yexp-decale]=pos;
}
if(map[xexp][yexp-decale]==3)
{
xbaccel=xexp;
ybaccel=yexp-decale;
}
}

if(peteblocb[pos]<1)
{
if(yexp+decale<14&&decale!=p[pos]&&peteblocb[pos]!=-1&&p[pos]!=pmax+1)
{
explosion[xexp][yexp+decale]=2;
clearexp[xexp][yexp+decale]=pos;
}
else if(yexp+decale<15&&explosion[xexp][yexp+decale]!=2&&explosion[xexp][yexp+decale]!=1)
{
explosion[xexp][yexp+decale]=3;
clearexp[xexp][yexp+decale]=pos;

}
if(map[xexp][yexp+decale]==3)
{
xbaccel=xexp;
ybaccel=yexp+decale;
}
}

if(petebloch[pos]<1)
{
if(yexp-decale>-1&&map[xexp][yexp-decale]<3)
map[xexp][yexp-decale]=0;
else if(map[xexp][yexp-decale]==4&&yexp-decale>-1)
map[xexp][yexp-decale]=6;
else if(map[xexp][yexp-decale]==5&&yexp-decale>-1)
map[xexp][yexp-decale]=7;
}

if(peteblocb[pos]<1)
{
if(yexp+decale<15&&map[xexp][yexp+decale]<3)
map[xexp][yexp+decale]=0;
else if(map[xexp][yexp+decale]==4&&yexp+decale<15)
map[xexp][yexp+decale]=6;
else if(map[xexp][yexp+decale]==5&&yexp+decale<15)
map[xexp][yexp+decale]=7;
}

if((xexp==xmap[1]&&yexp-decale==ymap[1]&&petebloch[pos]!=1)||(xexp==xmap[1]&&yexp+decale==ymap[1]&&peteblocb[pos]!=1))
bomberman_is_dead();

}

if(peteblocg[pos]==-1)
{
peteblocg[pos]=1;
lockg[pos]=1;
}
if(peteblocd[pos]==-1)
{
peteblocd[pos]=1;
lockd[pos]=1;
}
if(petebloch[pos]==-1)
{
petebloch[pos]=1;
lockh[pos]=1;
}
if(peteblocb[pos]==-1)
{
peteblocb[pos]=1;
lockb[pos]=1;
}

sprintf(str,"%d %d %d %d",peteblocg[pos],peteblocd[pos],petebloch[pos],peteblocb[pos]);
textout(buffer,font,str,800,50,makecol(255,0,0));

}

int install_bombe()
{
if(map[xmap[1]][ymap[1]]!=3)
{
for(int a=0;apmax)
{
p[pos]=1;
boum[pos]=-1;
decal[pos]=1;
peteblocg[pos]=0;
peteblocd[pos]=0;
petebloch[pos]=0;
peteblocb[pos]=0;
lockg[pos]=0;
lockd[pos]=0;
lockh[pos]=0;
lockb[pos]=0;
}
else
{
if(decal[pos]==p[pos])
{
p[pos]=p[pos]+1;


}
else
decal[pos]=decal[pos]+1;

draw_explosion(xbombe[pos],ybombe[pos]);
}
}
}
}

void init_reseau()
{
cout<<"quel est l'ip du serveur?"<<endl;
cin>>ip;
system("pause");
}

int main()
{
init_reseau();

allegro_init();
set_color_depth(32);
set_gfx_mode(GFX_AUTODETECT,1024,768, 0, 0);
install_keyboard();
install_timer();

install_int_ex(time,MSEC_TO_TIMER(10));
LOCK_VARIABLE(timer);
LOCK_FUNCTION(time);

page1=create_bitmap(1024,768);
page2=create_bitmap(1024,768);
page3=create_bitmap(1024,768);
buffer=page1;

bloc=load_bitmap("Tiles/bloc.bmp",NULL);
bloc2=load_bitmap("Tiles/bloc2.bmp",NULL);
sol=load_bitmap("Tiles/sol.bmp",NULL);
bombermanf=load_bitmap("Tiles/bomberman/bomberman face.bmp",NULL);
bombermando=load_bitmap("Tiles/bomberman/bomberman dos.bmp",NULL);
bombermang=load_bitmap("Tiles/bomberman/bomberman gauche.bmp",NULL);
bombermand=load_bitmap("Tiles/bomberman/bomberman droite.bmp",NULL);
bombe=load_bitmap("Tiles/bombe.bmp",NULL);
feuc=load_bitmap("Tiles/feu centre all.bmp",NULL);
feug=load_bitmap("Tiles/feu gauche.bmp",NULL);
feud=load_bitmap("Tiles/feu droit.bmp",NULL);
feul=load_bitmap("Tiles/feu long.bmp",NULL);
feulv=load_bitmap("Tiles/feu long v.bmp",NULL);
feub=load_bitmap("Tiles/feub.bmp",NULL);
feuh=load_bitmap("Tiles/feuh.bmp",NULL);
murb=load_bitmap("Tiles/mur bas.bmp",NULL);
bonus_feu=load_bitmap("Tiles/bonus feu.bmp",NULL);
bonus_bombe=load_bitmap("Tiles/bonus bombe.bmp",NULL);

int relache=1;

init();
strcpy(str,"Waiting for a client to connect...");
textout(buffer,font,str,200,300,makecol(255,0,0));
buffering();
connection();

while(!key[KEY_ESC]&&bomberman_alive==1)
{
buffering();
bouge_bon();

if(key[KEY_SPACE])
install_bombe();

pete_bombe();
onde2choc();

if(senddat==1)
{
senddat=0;
SendData(xmap[1],ymap[1]);
}
}

int a=timer+200;
while(timer<a)
{

}
destroy_bitmap(buffer);
destroy_bitmap(page1);
destroy_bitmap(page2);
destroy_bitmap(page3);
destroy_bitmap(bombermanf);
destroy_bitmap(bombermando);
destroy_bitmap(bombermang);
destroy_bitmap(bombermand);
destroy_bitmap(bloc);
destroy_bitmap(bloc2);
destroy_bitmap(sol);
destroy_bitmap(murb);
destroy_bitmap(feuc);
destroy_bitmap(feud);
destroy_bitmap(feug);
destroy_bitmap(feuh);
destroy_bitmap(feub);
destroy_bitmap(feul);
destroy_bitmap(feulv);
destroy_bitmap(bombe);
destroy_bitmap(bonus_feu);
destroy_bitmap(bonus_bombe);

remove_int(time);
allegro_exit();

return 0;
}

// Some Allegro magic to deal with WinMain().
END_OF_MAIN();
0
cs_JediMaster Messages postés 91 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 31 août 2004
17 juin 2004 à 23:00
Il me semble que dérriere le cin le system("pause") ne sert a rien. Essaye sans et dis nous si ca va.

JediMaster
0
cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 10
18 juin 2004 à 07:59
cela ne changeras rien a son probleme... si sa fonction été executé, bah il entrerai l'adresse ip et apres avoir validé bah il fodra rappuyer sur une touche pour passé le system("pause");
Bob...

"La chance accorde ses faveur aux esprits avertis..."
0
dletozeun Messages postés 546 Date d'inscription vendredi 13 février 2004 Statut Membre Dernière intervention 9 janvier 2008 1
18 juin 2004 à 11:44
oui tout a fait d'accord... Mais voila quoi ! ca marche po!
0