You are on page 1of 22

Thc Tp C Bn - M phng tr chi bn my bay

LI NI U
Trong bi cnh cng ngh thng tin ngy cng pht trin, vic s
dng rng ri my tnh khng ch b hp trong vin nghin cu, cc
trng i hc, cc trung tm my tnh m cn m rng ra c quan, x
nghip, nh my. Song song vi qu trnh pht trin trn, vic ging
dy tin hc trong cc trng i hc, trung hc v mt bc trong cc trng ph thng cng c y mnh i i vi vic tng cng trang
thit b my vi tnh.
Cng vi vic sng to ra cng c mi l my tnh in t, con ngi cng tp trung tr tu tng bc xy dng ngnh khoa hc tng ng
p ng nhng yu cu khai thc ti nguyn thng tin.
m bo c vic hc tp tt. Mi hc sinh, sinh vin u
phi n lc hc tp v rn luyn. Khng nhng hc tp ti lp do thy c
gio hng dn ging dy, v truyn t nhng g cn thit cho vic
hc tp. Chng ta cn tm hiu thm v cc bi tp lin quan n
kin thc c hc, hiu r hn v kin thc m mnh hc
c trn lp cng nh l ngoi x hi. Do vic t hc ca hc sinh
sinh vin l mt iu rt quan trng bi v trn lp cc thy c s
khng c thi gian ging dy, truyn t ht tt c cc kin
thc cho chng ta. Nu chng ta ch hc cc kin thc trn lp m
khng tm hiu thm bn ngoi th s khng cho vic hc tp
ca chng ta ngay lc cng nh hc tp sau ny. c th t
c kt qu tt trong hc tp th chng ta phi lm bi tp tht
nhiu, c phn no cha hiu c th hi cc thy c, khi ta s c
thm mt s kin thc mi m ta vn cn cha bit.
Em rt chn thnh cm n cc thy c giao cho em ti
ny. N gip em hiu thm rt nhiu v phn lp trnh ho trong

SVTH: L Quc Duyt Lp 61CT2

Thc Tp C Bn - M phng tr chi bn my bay

C, phn m em vn cha c hc trn lp . Nht l trong vic lp


trnh cc tr chi gii tr.
Em rt cm n c gio L Th Hng, c gio H Th Bch Ngc,
thy gio T Hi Thin. Cc thy, c hng dn em tn tnh v chi
tit c th gip em hon thnh ti m cc thy c giao
cho.

MC LC
LI NI U.......................................................................................................................................2
Ni dung................................................................................................................................................4
Tng quan v bi ton.....................................................................................................................4
Chng I : Tng quan v bi ton.....................................................................................................4
1. Bi ton : M phng tr chi bn my bay............................................................................4
2. Yu cu ca bi ton :..............................................................................................................4
3. Phm vi gii quyt ..................................................................................................................5
4. Kh khn....................................................................................................................................5
Chng II : Phn tch v gii thut.................................................................................................6
1. Hng gii quyt :.......................................................................................................................6
2. Gii thut ca cc chc nng chnh trong chng trnh :........................................................6
Chng III : Cu trc chng trnh...................................................................................................10
1. Cu trc chng trnh theo s khi :.................................................................................10
2. Mt s hm, th tc v bin quan trng................................................................................12
3. Cc unit chnh........................................................................................................................12
4. M chng trnh : ....................................................................................................................12
5. Hng gii quyt ......................................................................................................................21
6.Kt lun....................................................................................................................................22

SVTH: L Quc Duyt Lp 61CT2

Thc Tp C Bn - M phng tr chi bn my bay

Ni dung
Tng quan v bi ton
Bi ton gm ba chng :
Chng I : Tng quan v bi ton.
Chng II : Phn tch v gii thut.
Chng III : Cu trc chng trnh.

Chng I : Tng quan v bi ton


1. Bi ton : M phng tr chi bn my bay.
2. Yu cu ca bi ton :
- V bu tri c y sao.
- V bom, my bay.
- V b sng v nng sng theo to tm.
- Nng sng di chuyn bng 2 phm left () v phm right ().
- My bay xut hin ngu nhin tng tp t 35 chic.
- My bay s th bom
- n bn theo hng ca b sng, v khi c lnh bn bng phm
SPACE thi n s bn ra khi lng sng.
- Khi my bay v bom b trng n th s n
-Mi ln chi s c 100HP
- Sau khi chi ht s HP th s hin ra s im m ngi chi
t c.(Cch tnh im : s my bay b bn trng * s im
SVTH: L Quc Duyt Lp 61CT2

Thc Tp C Bn - M phng tr chi bn my bay

ca mi my bay c nh sn +s bom b bn chng *s


im mi qu bom)
-Khi HP<100 nu bn trng mt my bay th s c cng thm 5HP.

3. Phm vi gii quyt .


- Vi bi ton ny ta c th gii quyt bng nhiu cch vi ngn ng
lp trnh ring cho tng loi. Chng ta c th dng ngn ng lp trnh
C hoc pascal.
- Do c nhiu cch gii quyt nh vy nn phi chn cch gii quyt
cho ph hp.
- bi ton ny em s dng ngn ng lp trnh C gii quyt
vn . Ch yu s dng ho trong C.
- Trc tin lm c yu cu ca bi ton chng ta phi v c
my bay, bom, b sng, nng sng, nn tri, n. Sau khi v xong,
chng ta phi lm cho n c th chuyn ng c.V vy chng ta
cn phi s dng cc cu lnh ho trong C c th gii quyt
c bi ton kh ny.
4. Kh khn.

-Trong qu trnh hc, sinh vin khng c hc phn ha trong


C, ch c hc phn cn bn ca C m thi, v vy vic v v lm cho
my bay, bom, nng sng, n di chuyn c l mt vic v cng kh.
-Chng ta phi c sch thm c th hon thnh tt bi ton
c giao.

SVTH: L Quc Duyt Lp 61CT2

Thc Tp C Bn - M phng tr chi bn my bay

Chng II : Phn tch v gii thut


1. Hng gii quyt :

c th gii quyt c bi ton trc tin ta khi to ch


ho chng trnh c th thc hin cc lnh v. Sau ta s dng
cc lnh line, putpixel, fillellpse v bu tri, my bay, n, b sng.
(Lu l dng mng lu tr n v my bay, ch n gc v vn
tc.).
+V My bay
+V bom
+V b sng
+V nng sng
+V nn tri, to cc c n, v n
S dng cc lnh if kim tra iu kin xem n bn c trng
my bay hay khng.
Dng lnh outtextxy a ra mn hnh cc thng tin v tr chi nh
s im t c, tn ngi chi.
2. Gii thut ca cc chc nng chnh trong chng trnh :
-u tin l khi to ch ha
int mh=0,mode=0;
int i,j;
SVTH: L Quc Duyt Lp 61CT2

Thc Tp C Bn - M phng tr chi bn my bay

initgraph(&mh,&mode,"D:\\TC\\BGI");
if(graphresult()!=0)
{
printf("\n KHONG THAY TRINH DIEU KHIEN DO HOA!");

printf("\n CHUONG TRINH KHONG THE THUC


HIEN! ...");
getch();
return 1;
}
else
{
closegraph();
-Dng cc hm v ha v my bay, sng , bom, nn tri
void drawFighter(int x, int y)
{
setcolor(WHITE);
moveto(x,y);
linerel(-36,0); linerel(0,-7); linerel(-6,-7); linerel(6,0);
linerel(12,7); linerel(12,0); linerel(12,7);
moveto(x-24,y-7);
linerel(-12,0);
moveto(x-12,y);
linerel(0,3); linerel(-18,0); linerel(0,-3);
}
void drawBomb(int x, int y)
{
setcolor(WHITE);

SVTH: L Quc Duyt Lp 61CT2

Thc Tp C Bn - M phng tr chi bn my bay

moveto(x,y);
linerel(-3,-3); linerel(0,-6); linerel(2,-6); linerel(-2,-3);
linerel(3,1); linerel(3,-1);
linerel(-2,3); linerel(2,6); linerel(0,6); linerel(-3,3);
}
void drawAmmo(int x, int y)
{
setcolor(WHITE);
pieslice(x,y,0,360,1);
}
void drawBlockhouse()
{
setcolor(WHITE);
line(xmax/2-30,ymax,xmax/2-30,ymax-30);
line(xmax/2+30,ymax,xmax/2+30,ymax-30);
arc(xmax/2,ymax+10,52,128,50);
}
void drawGun(int x, int y)
{
setcolor(WHITE);
setlinestyle(SOLID_LINE,0,3);
line(xmax/2,ymax-40,x,y);
setlinestyle(SOLID_LINE,0,1);
}
void drawSky()
{
int i;
for(i=1; i<=200; i++)
SVTH: L Quc Duyt Lp 61CT2

Thc Tp C Bn - M phng tr chi bn my bay

{
putpixel(xStar[i],yStar[i],colorStar[i]);
}
}
void destroy()

//TAO CAC VU NO TREN MAN HINH

{
int i;
float r;
setcolor(RED);
setfillstyle(SOLID_FILL,YELLOW);
setlinestyle(SOLID_LINE,0,3);
for(i=1; i<=10; i++)
{
if(rate[i]!=0)
{
r=rate[i]/10.0;
moveto(xdestroy[i],ydestroy[i]-r*12);
linerel(4*r,8*r);

linerel(8*r,4*r);

linerel(-

8*r,4*r); linerel(-4*r,8*r);
linerel(-4*r,-8*r);

linerel(-8*r,-4*r);

linerel(8*r,-4*r); linerel(4*r,-8*r);
if(rate[i]>2)
floodfill(xdestroy[i],ydestroy[i],RED);
rate[i]--;
}
}
setlinestyle(SOLID_LINE,0,1);
}
-Cc hm iu khin chuyn ng
SVTH: L Quc Duyt Lp 61CT2

Thc Tp C Bn - M phng tr chi bn my bay

Chng III : Cu trc chng trnh


1. Cu trc chng trnh theo s khi :

SVTH: L Quc Duyt Lp 61CT2

10

Start Game
Thc Tp C Bn - M phng tr chi bn my bay

n = My
Bay

False

n = Bom

True

Bay

im

Quit Game

SVTH: L Quc Duyt Lp 61CT2

11

Thc Tp C Bn - M phng tr chi bn my bay

2. Mt s hm, th tc v bin quan trng.


int xmax,ymax,HP=100,SCORE=0;
int xFighter[5],yFighter[5],bombFighter1[5],bombFighter2[5];
int booleanBomb[9],xBomb[9],yBomb[9];
int booleanAmmo[11],xAmmo[11],yAmmo[11];
int xdestroy[21],ydestroy[21],rate[21];
int xGun,yGun,angleGun=90;
int xStar[201],yStar[201],colorStar[201];
float tangBomb[9],tangAmmo[6;
3. Cc unit chnh.

- Khi to ch ho.
- V nng sng, b sng
- V my bay,bom
- To cc v n
- V nn tri y sao
- iu kin
- ng ch ho.
4. M chng trnh :

#include <iostream.h>
#include <graphics.h>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
#include <dos.h>
int xmax,ymax,HP=100,SCORE=0;
int xFighter[5],yFighter[5],bombFighter1[5],bombFighter2[5];
SVTH: L Quc Duyt Lp 61CT2

12

Thc Tp C Bn - M phng tr chi bn my bay

int booleanBomb[9],xBomb[9],yBomb[9];
int booleanAmmo[11],xAmmo[11],yAmmo[11];
int xdestroy[21],ydestroy[21],rate[21];
int xGun,yGun,angleGun=90;
int xStar[201],yStar[201],colorStar[201];
float tangBomb[9],tangAmmo[6];
//__________________________KIEM

TRA

VA

KHOI

TAO

CHUONG

TRINH__________________________
int initGame()
{
//_____________________________KIEM
TRA__________________________________________
int mh=0,mode=0;
int i,j;
initgraph(&mh,&mode,"D:\\TC\\BGI");
if(graphresult()!=0)
{
printf("\n KHONG THAY TRINH DIEU KHIEN DO
HOA!");
printf("\n CHUONG TRINH KHONG THE THUC
HIEN! ...");
getch();
return 1;
}
else
{
closegraph();

SVTH: L Quc Duyt Lp 61CT2

13

Thc Tp C Bn - M phng tr chi bn my bay

printf("\n \t\t___________________GAME BAN MAY


BAY__________________");
printf("\n \t\tLE QUOC DUYET.\n");
printf("\n \t\tBUILD: 01/01/2012.\n");
printf("\n \t\tEMAIL: duyet.gtvt@gmail.com");
getch();
clrscr();
printf("\n

\t\t____________________HUONG

DAN

CHOI___________________");
printf("\n \t\tSu dung phim mui ten de di chuyen
nong sung.\n");
printf("\n \t\tSu dung phim SPACE de ban.\n");
printf("\n \t\tThoat game nhan ESC.\n\n\n");
printf("\n \t\tNhan phim bat ky de bat dau
choi ...");
getch();
//____________________________KHOI
TAO____________________________________________
initgraph(&mh,&mode,"D:\\TC\\BGI");
settextstyle(0,0,1);
xmax=getmaxx();
ymax=getmaxy();
xGun=xmax/2; yGun=ymax-70;
for(i=1; i<=4; i++)
{
xFighter[i]=-50*i; yFighter[i]=20*i;

SVTH: L Quc Duyt Lp 61CT2

14

Thc Tp C Bn - M phng tr chi bn my bay

bombFighter1[i]=random(xmax/2);
bombFighter2[i]=random(xmax/2);
}
for(i=1; i<=8; i++) booleanBomb[i]=0;
for(i=1; i<=10; i++) booleanAmmo[i]=0;
for(i=1; i<=20; i++) rate[i]=0;
for(i=1; i<=200; i++)
{
xStar[i]=random(xmax);
yStar[i]=random(ymax);
colorStar[i]=random(getmaxcolor());
}
return 0;
}
}
//______________________________NHOM

HAM

DIEU

KHIEN

DO

HOA_______________________________
void drawFighter(int x, int y)
{
setcolor(WHITE);
moveto(x,y);
linerel(-36,0); linerel(0,-7); linerel(-6,-7); linerel(6,0);
linerel(12,7); linerel(12,0); linerel(12,7);
moveto(x-24,y-7);
linerel(-12,0);
moveto(x-12,y);
linerel(0,3); linerel(-18,0); linerel(0,-3);
}

SVTH: L Quc Duyt Lp 61CT2

15

Thc Tp C Bn - M phng tr chi bn my bay

void drawBomb(int x, int y)


{
setcolor(WHITE);
moveto(x,y);
linerel(-3,-3); linerel(0,-6); linerel(2,-6); linerel(-2,-3);
linerel(3,1); linerel(3,-1);
linerel(-2,3); linerel(2,6); linerel(0,6); linerel(-3,3);
}
void drawAmmo(int x, int y)
{
setcolor(WHITE);
pieslice(x,y,0,360,1);
}
void drawBlockhouse()
{
setcolor(WHITE);
line(xmax/2-30,ymax,xmax/2-30,ymax-30);
line(xmax/2+30,ymax,xmax/2+30,ymax-30);
arc(xmax/2,ymax+10,52,128,50);
}
void drawGun(int x, int y)
{
setcolor(WHITE);
setlinestyle(SOLID_LINE,0,3);
line(xmax/2,ymax-40,x,y);
setlinestyle(SOLID_LINE,0,1);
}
void drawSky()

SVTH: L Quc Duyt Lp 61CT2

16

Thc Tp C Bn - M phng tr chi bn my bay

{
int i;
for(i=1; i<=200; i++)
{
putpixel(xStar[i],yStar[i],colorStar[i]);
}
}
}
}
void controlBomb()

//DIEU KHIEN BOM

{
int i,j;
for(i=1; i<=8; i++)
if(booleanBomb[i])
{
yBomb[i]+=1;

xBomb[i]=xmax/2-(ymax-

yBomb[i])*tangBomb[i];
if(yBomb[i]>ymax-35)
{
if(xBomb[i]>xmax/2-30)
{
for(j=1; j<=20; j++)
if(rate[j]==0)
{
rate[j]=10;
xdestroy[j]=xBomb[i];
ydestroy[j]=yBomb[i];

SVTH: L Quc Duyt Lp 61CT2

17

Thc Tp C Bn - M phng tr chi bn my bay

HP=10;
break;
}
booleanBomb[i]=0;
}
}
}
}
void controlAmmo()

//DIEU KHIEN DAN

{
int i,j,k;
for(i=1; i<=10; i++)
{
if(booleanAmmo[i])
{
yAmmo[i]-=3;

xAmmo[i]=xmax/2-

((ymax-40-yAmmo[i])*tangAmmo[i]);
for(j=1; j<=4; j++)
{
if((yAmmo[i]<=yFighter[j])&&(yAmmo[i]>=yFighter[j]14))
if((xFighter[j]42<xAmmo[i])&&(xFighter[j]>xAmmo[i]))
{
for(k=1;
k<=20; k++)

SVTH: L Quc Duyt Lp 61CT2

18

Thc Tp C Bn - M phng tr chi bn my bay

if(rate[k]==0)
{
rate[k]=10;
xdestroy[k]=xFighter[j]-20; ydestroy[k]=yFighter[j]-7;
xFighter[j]=-40;
bombFighter1[j]=random(xmax/2);
bombFighter2[j]=random(xmax/2);
if(HP<100) HP+=5;
SCORE+=10;
break;
}
booleanAmmo[i]=0;
break;
}
}
for(j=1; j<=8; j++)
if(booleanBomb[j])
if((yAmmo[i]<=yBomb[j])&&(yAmmo[i]>=yBomb[j]-18))
if((xAmmo[i]<=xBomb[j]
+3)&&(xAmmo[i]>=xBomb[i]-3))
{
for(k=1; k<=20; k++)
if(rate[k]==0)
{
rate[k]=10;
xdestroy[k]=xBomb[j]; ydestroy[k]=yBomb[j]-9;

SVTH: L Quc Duyt Lp 61CT2

19

Thc Tp C Bn - M phng tr chi bn my bay

SCORE=SCORE+5;

booleanBomb[j]=0;
break;

}
booleanAmmo[i]=0;
break;
}
if((xAmmo[i]<0)||(xAmmo[i]>640)||(yAmmo[i]<0))
booleanAmmo[i]=0;
}
}
}
void controlGun()

//DIEU KHIEN SUNG

{
int i;
char key;
if(kbhit())
controlAmmo();
cleardevice();
drawSky();
drawBlockhouse();
for(i=1;

i<=4;

i++)

drawFighter(xFighter[i],yFighter[i]);
for(i=1; i<=8; i++)
if(booleanBomb[i])
drawBomb(xBomb[i],yBomb[i]);
drawGun(xGun,yGun);
for(i=1; i<=5; i++)

SVTH: L Quc Duyt Lp 61CT2

20

Thc Tp C Bn - M phng tr chi bn my bay

if(booleanAmmo[i])
drawAmmo(xAmmo[i],yAmmo[i]);
if(HP<=0)
{
}
}
//______________________________________HAM
MAIN()____________________________________
void main()
{
if(initGame()) exit(1);
runGame();
getch();
closegraph();
}

5. Hng gii quyt .

y cn l chng trnh bn my bay kh n gin. Phn


ho khng c p mt, mt khc mt s tnh nng khc nh
bn n cn hi chm, ch iu khin nng sng cn cng
nhc, khng linh hot, s lng my bay trong mi lt chi khng a
dng v gc .
Mt thiu st na l thiu v phn m thanh.
Do vy, hng pht trin chnh ca chng trnh l ci thin
c cc nhc im trn c th c c mt chng trnh hon
thin.
SVTH: L Quc Duyt Lp 61CT2

21

Thc Tp C Bn - M phng tr chi bn my bay

6.Kt lun

Qua t thc tp ny em cng c c rt nhiu kin thc


c hc trong nh trng cng nh vn dng nhng kin thc
vo ti thc tp.
T bi thc tp ny, chng ta c th coi y l mt bc c
bn, t nn mng cho cc bi thc tp khc vi mc kin
thc cao hn.

Vnh Yn, ngy 9 thng 2 nm 2012


Sinh vin
L Quc Duyt

SVTH: L Quc Duyt Lp 61CT2

22

You might also like