Sunteți pe pagina 1din 33

Bn a bay

Code:
#include <stdio.h>
#include <conio.h>
#include <string.h>
#define MAX 256
int BoyerMoore(char *source, char *find);
void main()
{
char source[MAX], find[MAX];
int f;
printf("\nNhap vao chuoi nguon : ");
gets(source);
printf("Nhap vao chuoi tim kiem : ");
gets(find);
if ((f = BoyerMoore(source, find)) > 0)
printf("chuoi tim thay tai chi so %d", f);
else
printf("Khong tim thay chuoi da cho", f);
getch();
}
int BoyerMoore(char *source, char *find)
{
int skip[MAX], i = 0, len, j=-1, lensource;
len = strlen(find);
lensource = strlen(source);
for (i=0; i<MAX; i++)
skip[i] = len-1;
for (i=0; i<len; i++)
if (skip[find[i]] == len-1)
skip[find[i]] = len-i-1;
i = j = len-1;
do {
if (source[i] == find[j])
{
i--;
j--;
}
else
{
if (len-j+1 > skip[source[i]])
i += len-j+1;
else
i += skip[source[i]];
j = len-1;
}
} while (j>0 && i<lensource);

if (j<=0)
return i;
else
return -1;
}
st (Y:DY)

Tr chi logic
C code:
La chn code | n/Hin code
#include <conio.h>
#include <dos.h>
#include <string.h>
#include <stdlib.h>
#include<stdio.h>
int day[7] = {-1,-1,-1,-1,-1,-1,-1};
int sonhap[4];
int somay[4];
int solanthu;
int timthay;
void khoitao()
{
char tieude[] = "L O G I C
G A M E";
int j, i, dich;
textmode(C40);
clrscr();
textcolor(YELLOW);
dich = (40 - strlen(tieude)) / 2;
for (i=strlen(tieude)-1; i>=0; i--)
{
movetext(1,3,39,3,2,3);
gotoxy(1,3);
putch(tieude[i]);
delay(40);
}
for (i=1; i<=dich; i++)
{
movetext(1,3,39,3,2,3);
gotoxy(1,3);
putch(' ');
delay(40);
}
randomize();
for (i=0; i<4; i++)
{

do {
j = random(6)+1;
} while (day[j] != -1);
day[j] = i;
somay[i] = j;
// printf ("%d",&j);
}
gotoxy(14,5);
cprintf("");
for (i=0; i<6; i++)
{
gotoxy(14,5+i*2+1); cprintf("

");
gotoxy(14,5+i*2+2); cprintf("");
}
gotoxy(14,17);
cprintf("");
solanthu = 1;
timthay = 0;
textcolor(WHITE);
gotoxy(1, 25);
cprintf("Nhap chuoi 4 so khac nhau tu 1 den 6");
}
void nhapso()
{
char c;
int i;
for (i=0; i<4; i++)
sonhap[i]=0;
gotoxy(16,5+solanthu*2-1);
do {
c = getch();
switch(c)
{
case '1' :
case '2' :
case '3' :
case '4' :
case '5' :
case '6' : textcolor(c-39);
cprintf("%c",c);
sonhap[wherex()-16-1] = c - 48;
if (wherex()==20)
gotoxy(wherex()-1, wherey());
break;
case 0
:
c = getch();
switch(c)

{
case 75 : if (wherex()>16)
gotoxy(wherex()-1,wherey());
break;
case 77 : if (wherex()<19)
gotoxy(wherex()+1,wherey());
break;
}
break;
default : sound(880);
delay(100);
nosound();
}
} while (!((c=='\r') && (sonhap[0] != 0) && (sonhap[1] != 0)
&& (sonhap[2] != 0) && (sonhap[3] != 0)));
}
void kiemtra()
{
int diem = 0, i;
for (i=0; i<4; i++)
if (day[sonhap[i]] != -1)
if (day[sonhap[i]] == i)
diem += 10;
else
diem ++;
if (diem==40)
timthay=1;
else
{
int sotrung, sotrat;
sotrung=diem / 10;
sotrat = diem % 10;
textcolor(GREEN);
gotoxy(23,5+solanthu*2-1);
for (i=1; i<=sotrung; i++)
cprintf("+");
textcolor(WHITE);
for (i=1; i<=sotrat; i++)
cprintf("-");
solanthu ++;
}
}
void main()
{
int i;

khoitao();
do {
nhapso();
kiemtra();
} while ((solanthu <= 6) && (timthay==0));
if (timthay==1)
{
textcolor(YELLOW+BLINK);
gotoxy(1,23);
cprintf("Ban da thang.");
}
else
{
textcolor(GREEN+BLINK);
gotoxy(1,23);
cprintf("Ban da thua.");
textcolor(YELLOW);
}
cprintf(" Ket qua dung = ");
for (i=0; i<4; i++)
{
textcolor(somay[i]+9+BLINK);
cprintf("%c",somay[i]+48);
}
getch();
}
n quan
* Su dung cac nut S(trai) F( trai)
Su dung nut E de chon o di */
C code:
La chn code | n/Hin code
/* day la phien ban dau cho nen hoi dai va phan do hoa khong chi
tiet
mong cac bac thong cam,cu cho nhan xet nhe*/
#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<graphics.h>
#include<stdlib.h>
#include<string.h>
int plydepth;
char c;
int t[12];
int rightplay(int x[],int i)
{

int n=x[i];
int j,k;
x[i]=0;
for (j=1;j<=n;j++)
{
k=(i+j)%12;
x[k]=x[k]+1;
}
if ((x[(k+1)%12]!=0)&&(k!=5)&&(k!=11))
rightplay(x,k+1);
else return k;
}
int leftplay(int x[],int i)
{
int n=x[i];
int j,k;
x[i]=0;
for (j=1;j<=n;j++)
{
k=(i+12-j)%12;
x[k]=x[k]+1;
}
if ((x[(k+11)%12])!=0&&(k!=1)&&(k!=7))
leftplay(x,(k+11)%12);
else return k;
}
int rightvalue(int x[],int i)
{
int t=0;
int d=0;
if (x[i]!=0)
{
t=rightplay(x,i);
if ((x[(t+1)%12]==0)&&(x[(t+2)%12]!=0)&&(t!=5)&&(t!=11))
{
d=x[(t+2)%12];
x[(t+2)%12]=0;
if ((x[(t+3)%12]==0)&&(x[(t+4)%12]!=0)&&(t!=3)&&(t!=9))
{
d=d+x[(t+4)%12];
x[(t+4)%12]=0;
if ((x[(t+5)%12]==0)&&(x[(t+6)%12]!=0)&&(t!=1)&&(t!=7))
{
d=d+x[(t+6)%12];
x[(t+6)%12]=0;
if ((x[(t+7)%12]==0)&&(x[(t+8)%12]!=0))
{

d=d+x[(t+8)%12];
x[(t+8)%12]=0;
if ((x[(t+9)%12]==0)&&(x[(t+10)%12]!=0))
{
d=d+x[(t+10)%12];
x[(t+10)%12]=0;
if ((x[(t+11)%12]==0)&&(x[(t+12)%12]!=0))
{
d=d+x[(t+12)%12];
x[(t+12)%12]=0;
}
}
}
}
}
}
};
return d;
}
int leftvalue(int x[],int i)
{
int t=0;
int d=0;
if (x[i]!=0)
{
t=leftplay(x,i);
if ((x[(t+11)%12]==0)&&(x[(t+10)%12]!=0)&&(t!=1)&&(t!=7))
{
d=x[(t+10)%12];
x[(t+10)%12]=0;
if ((x[(t+9)%12]==0)&&(x[(t+8)%12]!=0)&&(t!=3)&&(t!=9))
{
d=d+x[(t+8)%12];
x[(t+8)%12]=0;
if ((x[(t+7)%12]==0)&&(x[(t+6)%12]!=0)&&(t!=5)&&(t!=11))
{
d=d+x[(t+6)%12];
x[(t+6)%12]=0;
if ((x[(t+5)%12]==0)&&(x[(t+4)%12]!=0))
{
d=d+x[(t+4)%12];
x[(t+4)%12]=0;
if ((x[(t+3)%12]==0)&&(x[(t+2)%12]!=0))
{
d=d+x[(t+2)%12];

x[(t+2)%12]=0;
if ((x[(t+1)%12]==0)&&(x[t]!=0))
{
d=d+x[t];
x[t]=0;
}
}
}
}
}
}
};
return d;
}
int choice1(int x[])
{
int m[10];
int i,j;
int max=0;
for (i=0;i<=9;i++)
{
int y[12];
int j;
for (j=0;j<=11;j++) y[j]=x[j];
if (i>=5) m[i]=rightvalue(y,i-4);
else m[i]=leftvalue(y,i+1);
}
for (i=1;i<=5;i++)
if (x[i]>0)
{
max=i-1;
break;
}
for (i=0;i<=9;i++)
if (m[i]>m[max]) max=i;
return max;
}
int
{
int
int
int
int
for
{
int

choice(int x[],int deep)


m[10];
i,j;
h;
max=0;
(i=0;i<=9;i++)
y[12];

int j;
for (j=0;j<=11;j++) y[j]=x[j];
if (i>=5)
{
int t,s;
h=h+1;
t=rightvalue(y,i+2);
s=choice1(y);
if (s<5)
{
m[i]=t-leftvalue(y,s+1) ;
if (h<=3) m[i]=choice(y,deep) ;
}
if (s>=5)
{
m[i]=t-rightvalue(y,s-4);
if (h<=3) m[i]=choice(y,deep);
}
if (h==4) h=0;
};
if ((i>=0)&&(i<5))
{
int t,s;
h=h+1;
t=leftvalue(y,i+7);
s=choice1(y);
if (s<5)
{
m[i]=t-leftvalue(y,s+1);
if (h<=3)m[i]=choice(y,deep);
}
if (s>=5)
{
m[i]=t-rightvalue(y,s-4);
if (h<=3) m[i]=choice(y,deep);
}
if (h==4) h=0;
}
}
for (i=7;i<=11;i++)
if (x[i]>0)
{
max=i-2;
break;
}
for (i=0;i<=9;i++)
{

if ((m[i]>m[max])&&(i<5)&&(x[i+7]!=0)) max=i;
if ((m[i]>m[max])&&(i>=5)&&(x[i+2]!=0)) max=i;
}
return max;
}
void display(int mark[])
{
int tong=0;
gotoxy(10,18);printf("You:%d",mark[0]);
gotoxy(10,19);printf("Computer:%d",mark[1]);
gotoxy(10,20);printf("So vien con lai:");
tong=70-mark[0]-mark[1];
printf(tong);
gotoxy(10,21);printf("An B de lui mot nuoc");
}
void test(int x[],int mark[]);
void computerplay(int x[],int mark[]);
void moveright(int x[],int i,int mark[]);
void moveleft(int x[],int i,int mark[]);
void paint(int x[],int mark[]);
void test1(int x[],int mark[]);
void test2(int x[],int mark[]);
void setup(void);
void draw(int x,int y,int m,int value);

void main()
{
int dem;
int a[12],b[12];
int i,m;
int mark[2];
setup();
do
{
if (c=='q') exit(1);
clrscr();
setbkcolor(GREEN);
mark[0]=0;
mark[1]=0;
for (i=0;i<=11;i++)
{
if ((i==0)||(i==6)) a[i]=10;
else a[i]=5;

}
settextstyle(3,0,4);
outtextxy(10,200," Chose :Easy(E) Moderate(M) Hard(H) ?");
c=getch();
switch(c)
{
case 'e':plydepth=1;
case 'm':plydepth=4;
case 'h':plydepth=1000;
default :plydepth=2;
}
outtextxy(70,300,"Press G neu muon di sau:");
c=getch();
if (c=='g') computerplay(a,mark);
dem=0;
if (c!='g') paint(a,mark);
setcolor(BLUE);
rectangle(200,150,250,200);
draw(225,175,BLUE,a[1]);
c=getch();
do
{
if (c=='q') exit(1);
if ((c=='f')&&(dem<4))
{
dem=dem+1;
setcolor(BLUE);
rectangle(200+dem*50,150,250+dem*50,200);
draw(225+dem*50,175,BLUE,a[dem+1]);
draw(225+(dem-1)*50,175,BLACK,a[dem]);
setcolor(RED);
rectangle(150+dem*50,150,200+dem*50,200);
}
if ((c=='s')&&(dem>0))
{
dem=dem-1;
setcolor(BLUE);
rectangle(200+dem*50,150,250+dem*50,200);
draw(225+dem*50,175,BLUE,a[dem+1]);
draw(225+(dem+1)*50,175,BLACK,a[dem+2]);
setcolor(RED);
rectangle(250+dem*50,150,300+dem*50,200);
}
if ((c=='e')&&(a[dem+1]!=0))
{
settextstyle(1,0,4);
outtextxy(200,400,"Waiting.....(T/P)..");

c=getch();
setcolor(getbkcolor());
outtextxy(200,400,"Waiting.....(T/P)..");
if ((c=='f')||(c=='s'))
{
if (c=='f') moveright(a,dem+1,mark);
if (c=='s') moveleft(a,dem+1,mark);
setcolor(RED);
settextstyle(1,0,2);
outtextxy(200,450,"An E de may di tiep");
do c=getch(); while (c!='e');
if (c=='e') computerplay(a,mark);
setcolor(getbkcolor());
settextstyle(1,0,2);
outtextxy(200,450,"An E de may di tiep");
setcolor(BLUE);
rectangle(200+50*dem,150,250+50*dem,200);
draw(225+50*dem,175,BLUE,a[dem+1]);
}
}
if (c=='b')
{ int m;
int tong=0;
for (m=0;m<=11;m++)
a[m]=t[m];
paint(a,mark);
}
c=getch();
if (c=='c') break;
}
while (1);
}while (c=='c');
getch();
} /* End Main*/
void setup(void)
{
int gdriver=DETECT,gmode,errorcode;
initgraph(&gdriver,&gmode,"D:\\TUBORC2\\BGI");
errorcode=graphresult();
if (errorcode!=grOk)
{
printf("Graphics error:%s\n",grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();

exit(1);
}
} /*End Setup*/
void draw(int x,int y,int m,int value)
{
int i,j;
setcolor(m);
if ((value>0)&&(value<=5))
for (i=0;i<=value-1;i++) fillellipse(x-15+i*7.5,y,3.5,3.5);
if ((value>5)&&(value<=10))
{
for (i=0;i<=4;i++) fillellipse(x-15+i*7.5,y,3.5,3.5);
for (i=0;i<=value-6;i++) fillellipse(x-15+i*7.5,y+7.5,3.5,3.5);
}
if ((value>10)&&(value<=15))
{
for (i=0;i<=4;i++) fillellipse(x-15+i*7.5,y,3.5,3.5);
for (i=0;i<=4;i++) fillellipse(x-15+i*7.5,y+7.5,3.5,3.5);
for (i=0;i<=value-11;i++) fillellipse(x-15+i*7.5,y-7.5,3.5,3.5);
}
if ((value>15)&&(value<=20))
{
for (j=-1;j<=1;j++)
for (i=0;i<=4;i++) fillellipse(x-15+i*7.5,y+7.5*j,3.5,3.5);
for (i=0;i<=value-16;i++) fillellipse(x-15+i*7.5,y+15,3.5,3.5);
}
}
void test(int x[],int mark[])
{
int i;
if ((x[0]==0)&&(x[6]==0))
{
for (i=1;i<=5;i++) mark[0]=mark[0]+x[i];
for (i=7;i<=11;i++) mark[2]=mark[1]+x[i];
paint(x,mark);
setcolor(RED);
settextstyle(3,0,2);
if (mark[0]<mark[1]) outtextxy(250,300,"YOU LOSE!");
if (mark[0]==mark[1]) outtextxy(250,300,"EQUAL!");
if (mark[0]>mark[1]) outtextxy(250,300,"YOU ARE VICTORIOUS!");
gotoxy(15,18);printf("You:%d",mark[0]);
gotoxy(15,19);printf("Computer:%d",mark[1]);
outtextxy(250,350,"Press C if you want to continue!");
}
}
void test1(int x[],int mark[])

{
if ((x[1]==0)&&(x[2]==0)&&(x[3]==0)&&(x[4]==0)&&(x[5]==0))
{
x[1]=x[2]=x[3]=x[4]=x[5]=1;
mark[0]=mark[0]-5;
}
}
void test2(int x[],int mark[])
{
if ((x[7]==0)&&(x[8]==0)&&(x[9]==0)&&(x[10]==0)&&(x[11]==0))
{
x[7]=x[8]=x[9]=x[10]=x[11]=1;
mark[1]=mark[1]-5;
}
}
void computerplay(int x[],int mark[])
{
int i,tong;
int m;
int tg[5];
tong=0;
m=choice(x,plydepth);
if (m>=5) mark[1]=mark[1]+rightvalue(x,m+2);
if ((m>=0)&&(m<5)) mark[1]=mark[1]+leftvalue(x,m+7);
test1(x,mark);
paint(x,mark);
test(x,mark);
}
void moveright(int x[],int i,int mark[])
{
int m;
int tong;
for (m=0;m<=11;m++) t[m]=x[m];
mark[0]=mark[0]+rightvalue(x,i);
test2(x,mark);
paint(x,mark);
test(x,mark);
}
void moveleft(int x[],int i,int mark[])
{
int m,tong;
tong=0;
for (m=0;m<=11;m++) t[m]=x[m];
mark[0]=mark[0]+leftvalue(x,i);
test2(x,mark);
paint(x,mark);
test(x,mark);

}
void paint(int x[],int mark[])
{
int i,j;
clrscr();
setbkcolor(GREEN);
setcolor(RED);
for (i=0;i<=4;i++) rectangle(200+50*i,100,250+50*i,150);
for (i=0;i<=4;i++) rectangle(200+50*i,150,250+50*i,200);
line(175,100,200,100);line(175,200,200,200);
line(475,100,450,100);line(475,200,450,200);
arc(175,150,90,270,50);
arc(475,150,270,450,50);
for (i=7;i<=11;i++) draw(425-(i-7)*50,125,BLACK,x[i]);
for (i=1;i<=5;i++) draw(225+(i-1)*50,175,BLACK,x[i]);
draw(475,150,BLACK,x[6]);
draw(175,150,BLACK,x[0]);
display(mark);
}
Rn Sn Mi
C code:
La chn code | n/Hin code
#include<iostream.h>
#include<graphics.h>
#include<iomanip.h>
#include<conio.h>
#include<dos.h>
#include<stdlib.h>
#include<stdio.h>
#include<time.h>
void main()
{
int gdriver = DETECT, gmode, errorcode;
initgraph(&gdriver, &gmode, "//bgi");
clock_t start,end,r;
int x,y,i,x1,y1,j,l,m,temp,tail,col,scr,scr1,tempo;
char scrn[10];
// char key=0;
temp=30;tail=3;
scr1=0;
int a[300],b[300];

i=y=x=0;
const
const
const
const

char
char
char
char

up='w';
dw='s';
ls='a';
rs='d';

cout<<" RULES FOR THE GAME"<<endl;


cout<<"KEYS---"<<endl<<" w- FORWARD"<<endl<<" a- LEFT
TURN"<<endl<<" d- RIGHT TURN"<<endl<<" s- DOWN"<<endl;
cout<<" Q- QUIT"<<endl;
cout<<" TURN CAPS LOCK OFF"<<endl;
cout<<" EAT THE INSECTS N LIVE...U DIE IF U CROSS THE LIMIT /
MOVE OVER UR SELF /"<<endl;
cout<<" CROSS UR LEFTOVER SKIN."<<endl;
cout<<" SHEADS SKIN AFTER REGULAR INTERVALS.."<<endl;
cout<<" KEEP MOVING TO FIND FOOD ELSE U DIE"<<endl;
cout<<" POINTS ARE ADDED FOR EVERY INSECT YOU EAT,BUT EAT THE
FIRST ONE BEFORE SECOND ONE COMES UP ELSE NO SCORE WILL BE ADDED
UP"<<endl<<endl;
cout<<" PRESS MOVE(a) KEY TO CONTINUE.....";
getch();
cleardevice();
setbkcolor(9);
for(j=0;j<=7;j++)
a[j]=b[j]=0;
rectangle(20,21,600,441);
outtextxy(20,5,"SCORE..");
randomize();
l=(random(520)+60);
if(l<=99)
{l=l/10;
l=l*10;}
else {l=l/10;
l=l*10; }
m=(random(400)+40);
if(m<=99)
{m=m/10;
m=m*10; }
else {m=m/10;
m=m*10; }
outtextxy(l,m,"*");

char key;
do
{
setcolor(15);
rectangle(20,21,600,440);
if(i==60||i==120||i==190||i==270)
{
l=(random(520)+50);
if(l<=99)
{l=l/10;
l=l*10;}
else {l=l/10;
l=l*10; }
m=(random(400)+30);
if(m<=99)
{m=m/10;
m=m*10; }
else {m=m/10;
m=m*10; }
setcolor(15);
outtextxy(l,m,
sound(3800);

);

}
start=clock();
key=getch();
end=clock();
r=end-start;
if(r>=15)
{ outtextxy(100,100,"YOU ARE TOO SLOW...:-( ");
delay(1000);nosound();break;}
if (i==300 )
{ i=0;}
{
if(key==up)
{ y-=10;}
if(key==dw)
{ y+=10;}
if(key==ls)
{ x-=10;}

if(key==rs)
{ x+=10;}
}
setcolor(10);
a[i]= x1=210+x;
b[i]= y1=210+y;
if(x1==l && y1==m)
{ scr1++;
scr=10*scr1;
sprintf(scrn,"%d",scr);
nosound();
setcolor(0);
outtextxy(70,5,"");
setcolor(15);
outtextxy(70,5,scrn);
temp+=10;tail++; }
if(x1==20||x1==600||y1==20||y1==440)
{nosound();break;}
col=getpixel(x1,y1);
if(col>0)
break;
nosound();
tempo=tail;
if(i>=(299-tempo))
{ setcolor(4);
tempo-- ;
}
outtextxy(x1,y1,"X");
setcolor(0);
outtextxy(a[i-tail],b[i-tail],"X" );
i++;
} while (key !='q');
settextstyle(2,0,26);
outtextxy(210,210,"OUT");
getch();
closegraph();
}
Xp Hnh

C code:
La chn code | n/Hin code
/* Tr chi xp hnh vi y cc tnh nng*/
#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<string.h>
#include<graphics.h>
#include<ctype.h>
#include<dos.h>
#include<time.h>
#include<stdlib.h>
int KT;
int L,maxspeed,level;
char *img1,*img2,*img3;
int OX,OY;
int a1[16],a2[16],a3[16],a4[16],a5[15],a6[16],a7[16],md[16];
int score,next,mau_ht=CYAN;
int board[200];
unsigned long int per_100()
{
static struct time ti;
unsigned long int t;
gettime(&ti);
t=((ti.ti_hour*60+ti.ti_min)*60+ti.ti_sec)*100+ti.ti_hund;
return t;
}
void rorate(int a[])
{
int tg[16];
int i,j,n;
for(i=0;i<KT;i++) tg[i]=0;
for (i=0;i<=15;i++)
{
n=4*(i/4); j=4*(i-n)+3-n/4;
tg[i]= a[j];
}
for (i=0;i<=KT;i++) a[i]=tg[i];
}
void setupgraph()
{
int gdriver=DETECT,gmode,errorcode;
initgraph(&gdriver,&gmode,"");
errorcode=graphresult();
if (errorcode!=grOk)
{
printf("Graphics error: %s\n",grapherrormsg(errorcode));

printf("Press any key to halt:");


getch();
exit(1);
}
}
void setup()
{
int i;
char st[10];
KT=16; L=45;
OX=200;OY=100;score=0;level=1;next=random(7)+1;maxspeed=45;
for (i=0;i<KT;i++)
{
a1[i]=0;a2[i]=0;a3[i]=0;
a4[i]=0;a5[i]=0;a6[i]=0;
}
for (i=0;i<200;i++) board[i]=0;
a1[5]=a1[6]=a1[9]=a1[10]=1;
a2[11]=a2[10]=a2[9]=a2[5]=1;
a3[5]=a3[6]=a3[9]=a3[13]=1;
a4[5]=a4[6]=a4[7]=a4[10]=1;
a5[1]=a5[5]=a5[6]=a5[10]=1;
a6[9]=a6[6]=a6[5]=a6[2]=1;
a7[1]=a7[5]=a7[9]=a7[13]=1;
setupgraph();
setbkcolor(2);
setfillstyle(1,mau_ht);
bar(OX-10,OY-40,OX+220,OY+220);
setfillstyle(1,10);
settextstyle(1,0,2);
setfillstyle(1,4); bar(500,40,620,90);outtextxy(510,60,"RRESTART");
bar(500,120,620,170); outtextxy(510,140,"L-LEVEL");
bar(500,200,620,250); outtextxy(520,220,"Q-QUIT");
bar(500,280,620,330); outtextxy(520,300,"P-PAUSE");
settextstyle(3,0,3);
setcolor(RED);
outtextxy(310,150,"SCORE:");sprintf(st,"%d",score)
;outtextxy(385,150,st);
outtextxy(310,180,"LEVEL:");
sprintf(st,"%d",level);outtextxy(385,180,st);
outtextxy(310,230,"NEXT:");
setcolor(RED);
rectangle(OX-1,OY-1,OX+101,OY+201);
setlinestyle(0,0,3);
setcolor(BLUE);

rectangle(OX-10,OY-40,OX+220,OY+220);
setcolor(BLUE);
line(OX-10,OY-10,OX+220,OY-10);
setcolor(RED);
rectangle(OX-3,OY-3,OX+102,OY+202);
setcolor(RED);
settextstyle(1,0,2);
outtextxy(OX,OY-35,"Design by Trung_dt11");
setlinestyle(0,0,1);
}
void draw(int i,int j,int m,int n)
{
setfillstyle(1,m);
bar(i+1,j+1,i+9,j+9);
setcolor(n);
rectangle(i,j,i+10,j+10);
setcolor(getbkcolor());
}
void draw3(int x,int y,int a[],int col1)
{
int i;
int m,n;
for (i=0;i<KT;i++)
if(a[i]==1)
{
m=i%4;n=i/4;
draw(OX+10*x+10*m,OY+10*y+10*n,col1,BLUE);
}
}
void clear(int x,int y,int a[])
{
int i,m,n,m_ht;
for (i=0;i<KT;i++)
if (a[i]==1)
{
m=i%4; n=i/4;
draw(OX+10*x+10*m,OY+10*y+10*n,mau_ht,mau_ht);
}
}
void newitem()
{
int i,n;
n=next;
next=random(7)+1;
switch (next)
{
case 1: for (i=0;i<KT;i++) md[i]=a1[i];break;

case 2: for (i=0;i<KT;i++) md[i]=a2[i];break;


case 3: for (i=0;i<KT;i++) md[i]=a3[i];break;
case 4: for (i=0;i<KT;i++) md[i]=a4[i];break;
case 5: for (i=0;i<KT;i++) md[i]=a5[i];break;
case 6: for (i=0;i<KT;i++) md[i]=a6[i];break;
case 7: for (i=0;i<KT;i++) md[i]=a7[i];break;
}
setfillstyle(1,mau_ht);
bar(319,259,361,301);
draw3(12,16,md,random(3)+4);
switch (n)
{
case 1: for (i=0;i<KT;i++) md[i]=a1[i];break;
case 2: for (i=0;i<KT;i++) md[i]=a2[i];break;
case 3: for (i=0;i<KT;i++) md[i]=a3[i];break;
case 4: for (i=0;i<KT;i++) md[i]=a4[i];break;
case 5: for (i=0;i<KT;i++) md[i]=a5[i];break;
case 6: for (i=0;i<KT;i++) md[i]=a6[i];break;
case 7: for (i=0;i<KT;i++) md[i]=a7[i];break;
}
}
int test(int x,int y,int a[],int direction)
{
int i,j,m,n;
int bool=0;
int tg[16];
for (i=0;i<KT;i++) tg[i]=a[i];
rorate(tg);
for (i=0;i<KT;i++)
{
if (a[i]==1)
{
m=i%4;n=i/4;j=(y+n)*10+x+m-1;
if (direction==-1&&((x+m==0)||(board[j]==1))) { bool=1;break;}
j=(y+n)*10+x+m+1;
if (direction==1&&((m+x==9)||(board[j]==1))) { bool=1;break;}
j=(y+n+1)*10+x+m;
if (direction==0&&((n+y==19)||(board[j]==1))) { bool=1; break;}
}
if (tg[i]==1&&direction==3)
{
m=i%4;n=i/4;j=(y+n)*10+x+m;
if ((board[j]==1)||(x+m>=10)||(m+x<0)) { bool=1;break;}
}
}
return bool;
}

void putitem(int x,int y,int a[])


{
int i,j,m,n,tg;
for (i=0;i<KT;i++)
if (a[i]==1)
{
m=i%4;n=i/4;j=(y+n)*10+x+m;
board[j]=1;
}
}
void updatescore()
{
int level,i,t,j,m,n,k,h;
char st[10];
for (n=0;n<20;n++)
{
t=0;
for (m=0;m<10;m++) t=t+board[10*n+m];
if (t==10)
{
setfillstyle(1,mau_ht);
bar(382,100,415,300);
score=score+1;
settextstyle(3,0,3);
setcolor(RED);
sprintf(st,"%d",score);outtextxy(385,150,st);
level=score/20+1;
if (level>=10) level=9;
L=maxspeed-4*level;
sprintf(st,"%d",level); outtextxy(385,180,st);
for(i=n;i>=1;i--)
for (j=0;j<10;j++) board[10*i+j]=board[10*(i-1)+j];
for (i=0;i<10;i++) board[i]=0;
}
}
for (k=0;k<200;k++)
{
if (board[k]==0)
{
m=k%10;n=k/10;
draw(OX+10*m,OY+10*n,mau_ht,mau_ht);
}
if (board[k]==1)
{
m=k%10;n=k/10;
draw(OX+10*m,OY+10*n,RED,BLUE);
}

}
}
void create_box()
{
unsigned n;
setcolor(RED); settextstyle(1,0,3);
cleardevice();
setfillstyle(1,BLUE);
bar(10,10,300,80);
outtextxy(20,30,"ARE YOU SUREE (Y/N) ?");
n=imagesize(0,0,310,85);
img1=(char*)malloc(n);
getimage(0,0,310,85,img1);
cleardevice();
bar(10,10,100,40);
outtextxy(20,10,"PAUSE");
n=imagesize(0,0,110,50);
img2=(char*)malloc(n);
getimage(0,0,110,50,img2);
cleardevice();
bar(10,10,250,50);
outtextxy(20,20,"Press From 0 to 9");
n=imagesize(0,0,260,60);
img3=(char*)malloc(n);
getimage(0,0,250,50,img3);
}
void msgbox(int x,int y,int choice)
{
if (choice==1) putimage(x,y,img1,XOR_PUT);
if (choice==2) putimage(x,y,img2,XOR_PUT);
if (choice==3) putimage(x,y,img3,XOR_PUT);
}
main()
{
int px=4,py=0;
int col1,col2;
int tg,tg1,speed;
char ch1,ch2,ch;
unsigned long int t_bd;
unsigned long int t_ht;
t_bd=per_100();
setupgraph();
create_box();
setup();
randomize();

col1=RED; col2=GREEN;
newitem();
while (1)
{
if (L==2) L=tg;
if (kbhit())
{
if (ch1=='r')
{
cleardevice();
closegraph();
setup();px=4;py=0;
newitem();
}
if ((ch1=getch())==0) ch2=getch();
if (ch1=='q')
{
msgbox(OX-50,OY+250,1);
ch=getch();
if (ch=='y') exit(1);
else msgbox(OX-50,OY+250,1);
}
if (ch1=='p')
{
putimage(OX-5,OY+80,img2,XOR_PUT);
while((ch=getch())!='p');
putimage(OX-5,OY+80,img2,XOR_PUT);
}
if (ch1=='l')
{
msgbox(OX,OY+250,3);
speed=getch();
if (speed>=49&&speed<=57) maxspeed=45-4*(speed-49);
L=maxspeed;
msgbox(OX,OY+250,3);
}
if (ch1==0)
{
clear(px,py,md);
if ((ch2==72)&&(test(px,py,md,3)==0)) rorate(md);
if ((ch2==75)&&(test(px,py,md,-1)==0)) px--;
if ((ch2==77)&&(test(px,py,md,1)==0)) px++;
if ((ch2==80)&&(test(px,py,md,0)==0))
{
tg=L;
L=2;
}

draw3(px,py,md,col1);
}
}
t_ht=per_100();
if (t_ht-t_bd>L)
{
t_bd=t_ht;
if (test(px,py,md,0)==0)
{
clear(px,py,md);
py++;
draw3(px,py,md,col1);
};
if (test(px,py,md,0)==1)
{
col1=random(3)+4;
putitem(px,py,md);
py=0;px=4;
updatescore();
newitem();
if(test(px,py,md,0))
{
setcolor(YELLOW);
outtextxy(220,200,"GAME OVER");
getch();
setup();
}
}
}
}
getch();
}
Game hng banh
C code:
La chn code | n/Hin code
#include
#include
#include
#include
#include

<graphics.h>
<stdlib.h>
<stdio.h>
<conio.h>
<dos.h>

int midx, midy, x, y, sx, sy, by, scr, spd, ch=3;


int r=20, i, d=0;
/*

midx,midy
x,y
sx,sy
by
scr
spd
ch
r
i
d
*/

=
=
=
=
=
=
=
=
=
=

mid of screen
coordinates of ball (initial pos can be changed)
direction for ball to mov (1 for +ve, 0 for -ve)
location of box
score
speed
menu choice
radius of ball
for internel loops
debugging mode on / off

void load();
void menu();
void box();
void gamover();
void credit();
/*/////////////////////////////ball*/
void ball()
{ x=y=22;sx=sy=1;scr=0;spd=2;
setbkcolor(8);
cleardevice();
setcolor(1);
border*/
rectangle(0,0,getmaxx(),getmaxy() );
while(1)
{
if(x>(midx*2-3)-r)
{
sx=0;
/*scr=scr-10;*/
gamover();
sound(100);
}
if(x<(r+3))
{
sx=1;
sound(100);}

/*color 4
/* border*/

/*conditions for*/
/* ball to move*/

if(y>(midy*2-3)-r)
{
sy=0;
sound(100);}
if(y<(r+3))
{
sy=1;
sound(100);}
if(x==getmaxx()-45-r && y>by-20 && y<(by+80))
{
sx=0;
scr=scr+10;
sound(500);

if(scr%100==0)

/*if score inc by

100*/
{
spd++;
sound(600);
delay(100);
nosound();

/*inc speed*/

}
}
if(sx==0) x=x-spd;
else x=x+spd;

/*ball*/
/*movment*/

if(sy==0) y=y-spd;
else y=y+spd;

/*ball*/
/*movement*/

setcolor(1);
color*/
setfillstyle( SOLID_FILL, 3 );
fillellipse(x, y, r, r);
for(i=0;i<12;i=i+2)
arc(x, y, 230+i*6, 40-i*6, r-i);

/*ball outline
/*ball color*/
/*draw ball*/

/*for 3d touch*/

/* settextstyle(4, HORIZ_DIR, 0);*/


/*4 writing
inside the ball*/
/*outtextxy(x-10,y-20,"N");*/
nosound();
gotoxy(5,2);
printf("* BALL GAME v1.2 *");
printf("
SCORE:%3d",scr);
/*disp score*/
printf("
SPEED:%2d",spd-1);
/*and speed*/
if(d==1)
{
gotoxy(getmaxx()-60,1);
printf("debugging mode ");
printf("\n\n#box:\nby=%d ",by);
printf("\n\n#ball:");
printf("\nx=%d \ny=%d ",x,y);
printf("\n\ngetmaxx = %d",getmaxx());
printf("\ngetmaxy = %d",getmaxy());
}
setcolor(7);
if(kbhit())

/*if i/p, mov box*/

box();
else
/*if no i/p disp in
same pos*/
rectangle(getmaxx()-40,by,getmaxx()-30,by+60);
delay(10);
setfillstyle( SOLID_FILL, 8 );
/*clear ball &
box*/
setcolor(8);
fillellipse(x, y, r, r);
rectangle(getmaxx()-40,by,getmaxx()-30,by+60);
}
}
/*///////////////////////////////box*/
void box()
{
switch(getch())
{
case 0x48:
/*up key */
if(by<5)
break;
else
by=by-12;
/*can be inc further to mov
faster*/
break;
case 0x50:
/*down key*/
if(by>getmaxy()-65)
break;
else
by=by+12;
/*can be inc further to mov
faster*/
break;
/*case 0x4b://left
case 0x4d://right */
case 'p':
rectangle(getmaxx()-40,by,getmaxx()-30,by+60); /*disp
box*/
for(i=0;i<midx;i=i+4)
rectangle(midx-i-50,midy-i-10,midx+i+50,midy+i+10);
rectangle(midx-50,midy-10,midx+50,midy+10);
outtextxy(midx-35,midy-11,"PAUSED");
getch();
cleardevice();
setcolor(1);
rectangle(0,0,getmaxx(),getmaxy() );
break;

case 'd':
if(d==0)
d=1;
else
{
d=0;
cleardevice();
setcolor(1);
rectangle(0,0,getmaxx(),getmaxy() );
}
break;
case 0x1b:
/*esc key */
menu();
}
rectangle(getmaxx()-40,by,getmaxx()-30,by+60); /*disp box*/
return;
}
/*////////////////////////////////load screen*/
void load()
{
setcolor(3);
rectangle(1,1,getmaxx()-1,getmaxy()-1 );
/*border*/
settextstyle(8, HORIZ_DIR, 9);
outtextxy(30,20,"BALL GAME");
gotoxy(37,18);
printf("LOADING");
rectangle(midx-210,midy+30,midx+201,midy+50);
for(i=0;i<=50;i++)
/*loading disp
loop */
{
gotoxy(14+1+i,17+1);
printf("");
/*sound(100+10*i);*/
delay(100);
gotoxy(33,17);
printf("%3d % Complete",i*2);
}
delay(200);
}
/*///////////////////////////////menu */
void menu()
{
while(1)
/*menu */
{

cleardevice();
rectangle(1,1,getmaxx()-1,getmaxy()-1 );
setcolor(3);
settextstyle(8, HORIZ_DIR, 9);
outtextxy(30,20,"BALL GAME");
settextstyle(2, HORIZ_DIR, 7);
outtextxy(midx-27,midy+10,"START");
outtextxy(midx-38,midy+50,"CREDITS");
outtextxy(midx-19,midy+90,"EXIT");

/*border*/

ch=ch%2;
rectangle(midx-50,midy+50-ch*40,midx+50,midy+75-ch*40);
/*selection*/
switch(getch())
{
case 72: ch++; break;
/*up key*/
case 80: ch--; break;
/*down key*/
case 13:
/*enter key*/
if(ch==1)
ball();
else if(ch==0)
credit();
else if(ch==-1)
exit(1);
}
}
}
/*////////////////////////////gamover */
void gamover()
{
setcolor(3);
for(i=0;i<135;i++)
{
circle(midx,midy,i*3);
delay(15);
}
setfillstyle(SOLID_FILL,7);
for(i=0;i<100;i++)
{
fillellipse(midx,midy-20,3*i,20);
delay(15);
}
setcolor(1);
settextstyle(4, HORIZ_DIR, 0);
outtextxy(midx-80,midy-40,"GAME OVER");
delay(400);
getch();

menu();
}
/*///////////////////////credits */
void credit()
{
setcolor(7);
randomize();
for(i=0;i<2*midx;i++)
/*random lines*/
{
rectangle(1,1,rand()%100+i,midy*2);
delay(10);
}
for(i=0;i<2*midx;i++)
/*clrs space for
writing*/
{
circle(midx*2-i,midy*2-90,8);
/*
rectangle(midx*2,midy*2-100,midx*2-i,midy*2-80);*/
delay(8);
}
setcolor(1);
settextstyle(3, HORIZ_DIR, 3);
outtextxy(20,midy*2-108,"created by,");
setcolor(7);
for(i=0;i<2*midx;i++)
{
circle(i,midy*2-60,8);
delay(8);
}
setcolor(1);
settextstyle(3, HORIZ_DIR, 3);
outtextxy(midx*2-100,midy*2-78,"...nithin");
delay(200);
settextstyle(4, HORIZ_DIR, 0);
setfillstyle(SOLID_FILL,7);
for(i=0;i<100;i++)
{
fillellipse(midx,midy+25,2*i,20);
delay(15);
}
outtextxy(midx-133,midy,"agnithin@yahoo.com");
getch();
setcolor(8);
for(i=0;i<2*midx;i++)
/*clears screen*/
{
rectangle(1,1,i,midy*2);

delay(8);
}
setcolor(3);
return;
}
/*//////////////////////main()*/
int main(void)
{
int gdriver = DETECT, gmode, errorcode;
initgraph(&gdriver, &gmode, "c:\\tc\\bgi");
to ur tc dir*/
midx = getmaxx() / 2;
midy = getmaxy() / 2;
by=getmaxy()-70;
setbkcolor(8);
load();
menu();
ball();
closegraph();
return 0;
}

/*change this

/*disp loading screen*/


/*main game

*/

S-ar putea să vă placă și