PDA

View Full Version : سورس بازی دوز



sajedi
یک شنبه 31 اردیبهشت 1385, 15:43 عصر
#include <iostream.h>
#include <stdlib.h>
#include <conio.h>
#include <graphics.h>
#include <dos.h>
#define tb textbackground
#define br break
void form(void);
void choice(void);
void asli(void);
void hosh(void);
void rang(int a,int b,int r);
void choos(int x,int y,int r,int t);
int a[3][3],rec=0,s=0,te=0,scom,nobat,p1,p2;
main()
{
clrscr();
int a;
form();
for(;;)
{
p1=3;p2=3;
nobat=0;
asli();
gotoxy(1,3);
cout<<nobat;
if(nobat==1)
hosh();
if(kbhit())
{
a=getch();
if(a==27) break;
}
}
return 0;
}
//*******************
void asli(void)
{
int g,t=0;
g=getch();
if(g==27)exit(0);
if(g==55)
{
if(a[0][0]==1 && t==0)
{
a[0][0]=0;
choos(0,0,0,2);
t=1;s--;
}
if(s<3)
if(a[0][0]==0 && t==0)
{
a[0][0]=1;
choos(0,0,5,2);
t=1; s++;nobat=1;
}
}
if(g==56)
{
if(a[0][1]==1 && t==0)
{
a[0][1]=0;
choos(0,1,0,2);
t=1; s--;
}
if(s<3)
if(a[0][1]==0 && t==0)
{
a[0][1]=1;
choos(0,1,5,2);
t=1;s++;nobat=1;
}
}
if(g==57)
{
if(a[0][2]==1 && t==0)
{
a[0][2]=0;
choos(0,2,0,2);
t=1; s--;
}
if(s<3)
if(a[0][2]==0 && t==0)
{
a[0][2]=1;
choos(0,2,5,2);
t=1; s++;nobat=1;
}
}
if(g==52)
{
if(a[1][0]==1 && t==0)
{
a[1][0]=0;
choos(1,0,0,2);
t=1; s--;
}
if(s<3)
if(a[1][0]==0 && t==0)
{
a[1][0]=1;
choos(1,0,5,2);
t=1; s++;nobat=1;
}
}
if(g==53)
{
if(a[1][1]==1 && t==0)
{
a[1][1]=0;
choos(1,1,0,2);
t=1; s--;
}
if(s<3)
if(a[1][1]==0 && t==0)
{
a[1][1]=1;
choos(1,1,5,2);
t=1; s++;nobat=1;
}
}
if(g==54)
{
if(a[1][2]==1 && t==0)
{
a[1][2]=0;
choos(1,2,0,2);
t=1; s--;
}
if(s<3)
if(a[1][2]==0 && t==0)
{
a[1][2]=1;
choos(1,2,5,2);
t=1; s++;nobat=1;
}
}
if(g==49)
{
if(a[2][0]==1 && t==0)
{
a[2][0]=0;
choos(2,0,0,2);
t=1; s--;
}
if(s<3)
if(a[2][0]==0 && t==0)
{
a[2][0]=1;
choos(2,0,5,2);
t=1; s++;nobat=1;
}
}
if(g==50)
{
if(a[2][1]==1 && t==0)
{
a[2][1]=0;
choos(2,1,0,2);
t=1; s--;
}
if(s<3)
if(a[2][1]==0 && t==0)
{
a[2][1]=1;
choos(2,1,5,2);
t=1; s++;nobat=1;
}
}

if(g==51)
{
if(a[2][2]==1 && t==0)
{
a[2][2]=0;
choos(2,2,0,2);
t=1; s--;
}
if(s<3)
if(a[2][2]==0 && t==0)
{
a[2][2]=1;
choos(2,2,5,2);
t=1; s++;nobat=1;
}
}

}
//******************************* form ***********************
void form(void)
{
int col=2,i,j;
for(i=20;i<60;i++)
{
gotoxy(i,4); tb(col); cprintf(" ");
gotoxy(i,9); tb(col); cprintf(" ");
gotoxy(i,14);tb(col); cprintf(" ");
gotoxy(i,19);tb(col); cprintf(" ");
}
for(j=4;j<20;j++)
{
gotoxy(20,j);tb(col); cprintf(" ");
gotoxy(33,j);tb(col); cprintf(" ");
gotoxy(46,j);tb(col); cprintf(" ");
gotoxy(59,j);tb(col); cprintf(" ");

}
gotoxy(23,23);
cout<<"<<to exit game press ESC please...>>";
gotoxy(29,24);
cout<<"THIS GAME DIRECTED BY:";
gotoxy(28,25);
cout<<" <<yaser sajedi>>";
}
//**************************** rang******************
void rang(int a,int b,int r)
{
gotoxy(a,b); tb(r); cprintf(" ");
gotoxy(a,b+1); tb(r); cprintf(" ");
}
//************************| choos **********************
void choos(int x,int y,int r,int t)
{
if(t==2)
{
if(x==0 && y==0)
{
rec=1;
rang(23,6,r);
if(r==6) a[0][0]=2;
if(r==0) a[0][0]=0;
}
if(x==1 && y==0)
{
rec=1;
rang(23,11,r);
if(r==6) a[1][0]=2;
if(r==0) a[1][0]=0;
}

if(x==2 && y==0)
{
rec=1;
rang(23,16,r);
if(r==6) a[2][0]=2;
if(r==0) a[2][0]=0;
}

if(x==0 && y==1)
{
rec=1;
rang(36,6,r);
if(r==6) a[0][1]=2;
if(r==0) a[0][1]=0;
}

if(x==1 && y==1)
{
rec=1;
rang(36,11,r);
if(r==6) a[1][1]=2;
if(r==0) a[1][1]=0;
}

if(x==2 && y==1)
{
rec=1;
rang(36,16,r);
if(r==6) a[2][1]=2;
if(r==0) a[2][1]=0;
}

if(x==0 && y==2)
{
rec=1;
rang(49,6,r);
if(r==6) a[0][2]=2;
if(r==0) a[0][2]=0;
}
if(x==1 && y==2)
{
rec=1;
rang(49,11,r);
if(r==6) a[1][2]=2;
if(r==0) a[1][2]=0;
}
if(x==2 && y==2)
{
rec=1;
rang(49,16,r);
if(r==6) a[2][2]=2;
if(r==0) a[2][2]=0;
}
}
}
//********************************choice
void choice(void)
{
int i,j;
if(a[1][1]==0 && te==0)
if(p1!=1 || p2!=1)
{
choos(1,1,6,2);
te=1;
a[1][1]=2;
}
for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(a[i][j]==0 && te==0)
{
a[i][j]=2;
choos(i,j,6,2);
te=1;
}
}
//********************hosh
void hosh(void)
{
int i,j,s1=0,temp=0,ab[8],cd[8];
if(scom==3)
for(i=2;i>=0;i--)
for(j=2;j>=0;j--)
if(a[i][j]==2 && temp==0)
{
a[i][j]=0;
p1=i;p2=j;
choos(i,j,0,2);
scom--;
temp=1;
}
delay(500);
if(scom<3)
{
for(i=0;i<8;i++){ab[i]=0;}
for(i=0;i<3;i++)
{
if(a[0][i]==1) ab[0]++;
if(a[1][i]==1) ab[1]++;
if(a[2][i]==1) ab[2]++;
if(a[i][0]==1) ab[3]++;
if(a[i][1]==1) ab[4]++;
if(a[i][2]==1) ab[5]++;
if(a[i][i]==1) ab[6]++;
if(a[i][2-i]==1) ab[7]++;
}
//*****************tashkhis
for(i=0;i<8;i++)
if(ab[i]==3)
{
gotoxy(20,2);
cout<<"*** YOU WON ***";
getch();
exit(0);
}
if((ab[0]+ab[1]+ab[2]==1) && s1==0)
{
choice();
scom++;
s1=1;
}
if(ab[0]==2 && s1==0)
{
for(i=0;i<3;i++)
{
if(a[0][i]==0)
if(p1!=0 || p2!=i) {s1=1; scom++;choos(0,i,6,2);}
}
}
if(ab[1]==2 && s1==0)
{
for(i=0;i<3;i++)
{
if(a[1][i]==0)
if(p1!=1 || p2!=i){s1=1; scom++; choos(1,i,6,2);}
}
}
if(ab[2]==2 && s1==0)
{
for(i=0;i<3;i++)
{
if(a[2][i]==0)
if(p1!=2 || p2!=i){s1=1; scom++; choos(2,i,6,2);}
}
}
if(ab[3]==2 && s1==0)
{
for(i=0;i<3;i++)
{
if(a[i][0]==0)
if(p1!=i || p2!=0){s1=1; scom++; choos(i,0,6,2);}
}
}
if(ab[4]==2 && s1==0)
{
for(i=0;i<3;i++)
{
if(a[i][1]==0)
if(p1!=i || p2!=1){s1=1; scom++; choos(i,1,6,2);}
}
}
if(ab[5]==2 && s1==0)
{
for(i=0;i<3;i++)
{
if(a[i][2]==0)
if(p1!=i || p2!=2){s1=1; scom++; choos(i,2,6,2);}
}
}
if(ab[6]==2 && s1==0)
{
for(i=0;i<3;i++)
{
if(a[i][i]==0)
if(p1!=i || p2!=i){s1=1; scom++; choos(i,i,6,2);}
}
}
if(ab[7]==2 && s1==0)
{
for(i=0;i<3;i++)
{
if(a[i][2-i]==0)
if(p1!=i || p2!=2-i){s1=1; scom++; choos(i,2-i,6,2);}
}
}
if(s1==0)
{
te=0;
choice();scom++;
}
}
for(i=0;i<8;i++){cd[i]=0;}
for(i=0;i<3;i++)
{
if(a[0][i]==2) cd[0]++;
if(a[1][i]==2) cd[1]++;
if(a[2][i]==2) cd[2]++;
if(a[i][0]==2) cd[3]++;
if(a[i][1]==2) cd[4]++;
if(a[i][2]==2) cd[5]++;
if(a[i][i]==2) cd[6]++;
if(a[i][2-i]==2) cd[7]++;
}
for(i=0;i<8;i++)
if(cd[i]==3)
{
gotoxy(20,2);
cout<<"*** YOU LOSE ***";
getch();
exit(0);
}

gotoxy(1,1);
cout<<p1<<" "<<p2;;

}
//

sajedi
سه شنبه 09 خرداد 1385, 13:21 عصر
pas engar kasi in sourso khaste bood?

mohsen_salar
سه شنبه 08 خرداد 1386, 18:22 عصر
pas engar kasi in sourso khaste bood?
sajedi tank you vere much az sorse ke ferestade:تشویق: :بوس: :خجالت: :قلب:

HAIdle
چهارشنبه 09 خرداد 1386, 21:54 عصر
من که نفهمیدم چه جوری بازی کنم!!!
آخه یه توضیحی چیزی!

Rezvane.R
یک شنبه 08 بهمن 1391, 16:34 عصر
این به روش minimax حل شده؟؟