PDA

View Full Version : حرفه ای: مشکل در برنامه موش به زبان C++



rezapoohpooh
دوشنبه 19 اردیبهشت 1390, 20:09 عصر
سلام دوستان
یک برنامه موش دارم که کامل هستش فقط یک چیز جدید باید بهش اضافه بشه اون چیزی که بهش باید اضافه بشه اینه که موشه از مبدا شروع میکنه تا را های مختلف رو بره تا به مقصد برسه حالا میخوام که تو راه برای موش پنیر بزارم همین نمیدونم چه جوری این کار رو باید انجام بدم لطفا کسانی که میتونند کمکم کنن ممنون میشم
فقط کاربردی شو میخوام نه کلی مرسی

#include<iostream.h>
#include<conio.h>
#include<dos.h>
#include<graphics.h>
#include<stdlib.h>
int a[10][10];
void khone()
{
int x=80,y=80;
for(int i=0;i<10;i++)
{
x=80;
for(int j=0;j<10;j++)
{
rectangle(x,y,x+30,y+30);
x=x+30;
}
y=y+30;
}
rectangle(357,357,375,375);
}
void mane()
{
int x=85,y=85,v,g,f;
for(int i=0;i<10;i++)
{
x=85;
for(int j=0;j<10;j++)
{
v=random(2);
a[i][j]=v;
if(a[9][9]==0) a[9][9]=1;
if(a[i][j]==0)
{
setfillstyle(SOLID_FILL,5);
floodfill(x,y,WHITE);
}
if(a[i][j]==1)
{
setfillstyle(SOLID_FILL,2);
floodfill(x,y,WHITE);
}
x+=30;
}
y+=30;
}

/*int g,f;
int c=0;
while(1)
{
g=random[10];
f=random[10];
if(a[g][f]==0)
{
a[g][f]=7;
setfillstyle(2,14);
floodfill(x+(f*30),y+(g*30),WHITE);
c++;
if(c==3) break;
}
}*/
}
void random1()
{
int m,n,x1=85,y1=85;
while(1)
{
n=random(10);
m=random(10);
a[9][9]=4;
if(a[n][m]==0)
{
a[n][m]=3;
break;
}
}
if(a[n][m]==3)
{
setfillstyle(9,7);
floodfill(x1+(m*30),y1+(n*30),15);
}
for(int n1=0;n1<10;n1++)
{
for(int m=0;m<10;m++)
{
if(a[n][m]==3)
{
int i=0,j=0;
int x=x1+8+(m*30),y=y1+8+(n*30);
circle(x,y,7);
setfillstyle(SOLID_FILL,6);
floodfill(x+2,y+2,WHITE);
while(x>80 && y>80 && x<380 && y<380)
{
circle(x,y,7);
setfillstyle(SOLID_FILL,6);
floodfill(x+2,y+2,WHITE);
if(kbhit())
{
char ch=getch();
if(ch==27) exit(0);
if(ch=='r')
{
cleardevice();
khone();
mane();
/* for(int i=0;i<10;i++)
{
for(int j=0;j<10;j++)
{
cout<<a[i][j]<<' ';
}
cout<<"\n";
}*/
random1();
}
if(ch==0)
{
char d=getch();
if(d==72)
{
n--;
if(a[n][m]==1){y-=30;circle(x,y,7);a[n+1][m]+=1;}
else n++;
}
if(d==80)
{
n++;
if(a[n][m]==1){y+=30;circle(x,y,7);a[n-1][m]+=1;}
else n--;
}
if(d==75)
{
m--;
if(a[n][m]==1){x-=30;circle(x,y,7);a[n][m+1]+=1;}
else m++;
}
if(d==77)
{
m++;
if(a[n][m]==1){x+=30;circle(x,y,7);a[n][m-1]+=1;}
else m--;
}
}
}
}
}

}
if(a[n][m]==4)
{
cout<<"you win";
}
else
cout<<"you lose";
}
/* int x=x1+8+(m*30),y=y1+8+(n*30);
if(x>=350 && x<=380 && y>=350 && y<=380)
{
cout<<" you win";

exit(0);
}*/

}
void main()
{
int d=0,m=0;
initgraph(&d,&m," ");
randomize();
khone();
mane();

/* for(int i=0;i<10;i++)
{
for(int j=0;j<10;j++)
{
cout<<a[i][j]<<' ';
}
cout<<"\n";
}*/

random1();
getch();
}

tdkhakpur
دوشنبه 19 اردیبهشت 1390, 23:50 عصر
حالا میخوام که تو راه برای موش پنیر بزارم همین نمیدونم چه جوری این کار رو باید انجام بدم لطفا کسانی که میتونند کمکم کنن

باید از ساختار استفاده کنید و همان آرایه رو برای این ساختار تعریف کنید و داخل ساختار میتونید یک متغییر قرار بدید که نشون بده داخل این نود که در حال حرکت هست چه چیزی وجود دارد خالی هست یا پنیر و یا ...