tai lieu tro choi xep gach 177
DESCRIPTION
goodTRANSCRIPT
Ti liu gii thiu chng trnh GVHD: TS. Phm Thi Vng
Ti liu nghin cu tr chi Xp gch GVHD: TS. Phm Thi Vng
LI NI U
Tr chi Xp gch (tn gi quc t: Tetris) l mt tr chi thuc th loi tr tu. Tr chi ra i vo thp k 80 ca th k trc, nhng cho n ngy nay vn lm nhiu ngi mt n mt ng. Tr chi c nhiu cng ty phn mm, nhiu c nhn pht trin ngy cng a dng v th loi cng nh ty bin v cch chi. Trn tinh thn , nhm chng em cng xin vit mt phin bn ca tr chi ny, ng thi cng nhm thc hin n bi tp cui nm mn Lp trnh mi trng Windows.
Ti liu ny nhm gii thiu v tr chi do nhm chng em thit k (tn gi l TETRIS PARTY). Trong ti liu ny, chng em s trnh by tng quan v chng trnh, u, nhc im, vi nt v giao din, cng nh chc nng chnh ca tr chi. Kt thc ti liu, chng em xin ra mt s hng pht trin cho tr chi trong tng lai.
V thi gian hon thnh chng trnh n ny gp gp, chng em phi va tm hiu kin thc v p dng chng vo trong lp trnh ngay (m cha kim tra th nghim mt cch ton din) nn chng trnh chc chn cn nhiu thiu st. Chng em mong thy v cc bn gip chng em hon thnh hon chnh chng trnh trn.
Cui cng, chng em xin chn thnh cm n thy TS. Phm Thi Vng, gio vin b mn Lp trnh mi trng Window hng dn chng em hon thnh chng trnh n ny.
Thay mt nhm
Sinh vin: L Vn ThngMC LCLi ni u3Mc lc41. Gii thiu tng quan v tr chi Xp gch31.1. Lch s hnh thnh v pht trin ca tr chi31.2. Tr chi Xp gch l g?31.3. Cc vn lin quan n vic lp trnh31.3.1. Cc yu cu khi lp trnh31.3.2. Cc vn cn gii quyt31.3.3. Thut ton lp trnh42. Gii thiu v chng trnh do nhm thc hin TETRIS PARTY52.1. Giao din chnh52.2. Cc chc nng92.3. Phn tch u nhc im ca tr chi102.3.1. u im102.3.2. Nhc im103. Phng php lp trnh
103.1. tng
103.2. Cc lp i tng114. Hng pht trin tip theo145. Kt lun141. Gii thiu tng quan v tr chi Xp gch1.1. Lch s hnh thnh v pht trin ca tr chiTr chi Xp gch (tn quc t l Tetris) ra i Lin X vo nm 1984. Cha ca n l k s my tnh Alexey Pajitnov. Cng vi s tr gip ca chic my tnh c Elektronika 60, ng chnh thc hon thin Tetris. Sau t lu, tr chi c chuyn i sang h my PC ca IBM v ph bin rng ri khp Lin X, Bc M v chu u. Lin tip vo cc nm 1988, 1989, Tetris c thng mi ha v c mt trn nn tng PC, NES ti Nht, qua nh xut bn Henk Rogers.
Nm 1996, c quan php lut Nga trao quyn s hu ch thc ca Tetris cho Alexey. Ngay sau , ng cng Henk Rogers m cng ty Tetris chuyn cp php cho nhng ai mun khai thc tr chi ca mnh.
Tr chi Tetris c mt trn hu ht cc h my, v c trn mobile.
Tnh n ht nm ngoi, Tetris c mt chnh thc ti hn 50 quc gia vi hn 50 ngn ng khc nhau, xut hin trn 30 nn tng v c tng cng 125 triu sn phm c bn ra.
1.2. Tr chi Xp gch l g?
Xp gch l mt tr chi tr tu, bao gm mt mn hnh chi game v nhiu khi gch c hnh dng khc nhau. Cc khi gch n khp nhau ty theo cc bc chi ca ngi chi. Ngi chi c th ghi im bng cch chn (fill) y 1 hng ngang v tr chi kt thc khi 1 hng dc no trn mn hnh b y.1.3. Cc vn lin quan n vic lp trnh1.3.1. Cc yu cu khi lp trnhKhi lp trnh cn tun th cc nguyn tc sau:
Cc khi hnh trong tr chi phi gm 7 khi sau:
Khi tng cp (level) th kh ca game cng phi tng ln. Khi tng im th phi tng t l thun theo s hng (dng) ngang c lm y.
Khng th xoay khi gch khi kch thc ca khi gch xoay vt qu kch thc ca khung (gameboard) chi game.
Khi khi gch xut hin th phi xut hin chnh gia khung chi game.1.3.2. Cc vn cn gii quyt Phi gii quyt c cc yu cu khi lp trnh trn. Cn gii quyt cc vn v thng tin ngi chi v d nh tnh im, da vo im tng cp, x l khi tng cp, n hin, tnh ton cc thng tin v cc tin ch, thi gian chi ca ngi chi. Cn x l vn v m thanh ca game v m thanh nn, x l khi chnh options ( kh, thay i skin, tn ngi chi, chn nhc nn,). Cn x l s kin khi bm 1 phm : (xoay gch, s dng cc tin ch, cc phm tt,). Cn x l s kin khi lu game (save game), chi li file lu (load game). X l cc tnh hung khi chi game ch hai ngi chi.1.3.3. Thut ton lp trnh To mt i tng lu thng tin v cc khi gch (7 khi).
Mi khi gch l mt mng Bool hai chiu vi hai trng thi true v false. Kch thc mng cng chnh l chiu di v chiu rng ca khi gch. Nu ti Mij c trng thi true th c ngha l c hin mu sc, hnh nh (c th nhn thy c).
truetruetrue
falsetruefalse
Nu Mij c trng thi false th ngc li.
true
true
true
true
truetrue
truetrue
truefalse
truefalse
truetrue
falsetruetrue
truetruefalse
truetruefalse
falsetruetrue
falsetrue
falsetrue
truetrue
Khung chi game (hay cn gi l bng chi game hay l gameboard):
L mt mng Bool 2 chiu vi hai trng thi true v false. Chc nng ca gameboard l nh x cc khi gch sang gameboard. Vi trng thi true th c hin mu sc, hnh nh v false l khng hin. Mng gameboard c kch thc 10x20.
Cc khi gch s xut hin v tr nh hnh sau:
0123456789
0falsefalsefalsefalsetruefalsefalsefalsefalsefalse
1falsefalsefalsefalsetruefalsefalsefalsefalsefalse
2falsefalsefalsefalsetruetruefalsefalsefalsefalse
Cch thc xoay khi gch c tnh ton theo hnh sau:
Ngun: http://www.colinfahey.com/tetris/tetris_en.html2. Gii thiu v chng trnh do nhm thc hin TETRIS PARTY
2.1. Gii thiu giao din:Trong phn ny, chng em xin trnh by s lc v giao din ca tr chi TETRIS PARTY. Theo , chng em cng xin minh ha chc nng ca cc nt bm chnh c trong tr chi.Di y l mt s hnh nh chnh:
Hnh 1: Giao din khi khi ng tr chi
Hnh 2: Giao din Menu ca tr chi
Hnh 3: Giao din 1 ngi chi
Hnh 4: Giao din 2 ngi chi
Hnh 5: Giao din Menu Help ca tr chi
Hnh 6: Giao din Menu Options ca tr chi
2.2. Cc chc nng chnh ca chng trnh
Tr chi c nhng chc nng chi c bn ca mt tr chi Xp gch c in, gm c nh: cc h thng menu, h thng gip v ty chnh hon thin; chc nng chi game nh mt tr chi Xp gch thc s: di chuyn gch, xoay gch, ri gch nhanh, ri gch ngay lp tc, n im khi y dng, tng level v kh qua mi level, gameover khi khi gch trn mn hnh chi,.v.v.Cc chc nng c bn:
Chi game ch 1 ngi chi, 2 ngi chi:
Ch 1 ngi chi: Ngi chi c y tnh nng ca mt tr chi hon chnh. Bt u mi mt game, ngng game, tip tc, lu game, chi li file lu, tinh chnh kh, mu gch, thay i thng tin ngi chi, thay i nhc nn,Ngi chi c th click nt Ready bt u vn chi. Ngoi ra, ngi chi cng c th thot game, hay tr v menu chnh bt c lc no. Trn mn hnh game, c ng h biu th thng tin thi gian chi. Ch 2 ngi chi: Trong tr chi TETRIS PARTY ny, ngoi ch chi 1 ngi truyn thng, bn c th chn 2 Player vo ch 2 ngi chi. ch 2 ngi chi, bn c th ty chnh tr chi nh 1 ngi chi, nhng bn khng th lu v chi li bn lu nh trong mt ngi chi c. bn 2 ngi chi, tr chi hin t s gia hai ngi chi, cng nh thng bo chng sau mi mn. Chi game vi php: Php l cng c nhm ci bin game tr nn sinh ng, v hp dn hn. Php bao gm:
Bom: s dng ph hy 2x2 gch m n tip xc.
Hy hnh: s dng hy hnh hin ti, thay khi gch bng 1 hnh mi.
Theo di hnh tip theo: Tr chi cho php ngi chi theo di hnh khi gch no chun b ri tip theo d cho ngi chi.Ngoi ra, tr chi cn c mt s tnh nng khc nh:
Thay i thng tin ngi chi: Bn c th thay i tn ngi chi trc khi bt u game (Tr chi quy nh tn ngi chi khng th trng). Nu bn khng thay i tn trc khi bt u th tr chi s load tn ngi chi mc nh l player1, v player2 v bn c th thay i n trong phn Options\Settings. Ngoi ra, bn cng c th thay i avatar mc nh ca bn (bng cch nhp vo avatar trn mn hnh), v chn ng dn n file hnh nh m bn mun. (Cc nh dng nh c th thay i c: *.jpg, *.png, *.gif, *.bmp). Thay i kh v mu sc ca khi gch trong game, thay i nhc nn: Tr chi cho php ngi chi ty chn nhng thuc tnh trong game. kh, phong cch, nhc nn kh ca game: Trc mi vn chi, ngi chi c th chn Options\Settings v tinh chnh kh mnh mun. Mc nhin, trong lc chi game th khng th chnh c phn kh ny. C 3 cp kh:
D (Easy) Trung bnh (Normal) Kh (Hard) Phong cch (Mu sc cc khi gch): Trong khi chi game ngi chi c th thay i mu sc cc khi gch trong game cho sinh ng, ph hp vi s thch tng ngi. C 3 s la chn cho bn. Bt, tt v thay i nhc nn: Ngi chi c th ty chnh bt, tt nhc nn trong game bt k khi no mun. Ngoi ra, ngi chi cn c th t chn nhc nn cho mnh, thay i nhc nn mc nh ca tr chi. (cc nh dng file nhc h tr: *.mp3, *.wma).2.3. Phn tch u, nhc im ca tr chi2.3.1. u im: Giao din thn thin, d s dng, nhiu tnh nng.
C ty chn ch chi (1 ngi chi, 2 ngi chi).
C th linh hot thay i thng tin ngi chi; ty chnh kh khi chi, mu sc cng nh thay i nhc nn mc nh.
C menu hng dn c th, (c ngn ng ting Vit v ting Anh), c hng dn nt bm bng hnh nh trc quan.
Cc u im khc bit so vi cc chng trnh tr chi Xp gch khc:
C ch php.
Ty chnh thng tin skin ca khi gch, kh ca tr chi.
Thay i nhc nn ty thch.
Thay i avatar ty thch.
C ch 2 ngi chi.
C tin ch save game, load game.2.3.2. Nhc im Trong ch 2 ngi chi, 2 ngi khng th cng lc nhn 1 phm ngay ti 1 thi im. V l do cho nn, nu ngi chi no nhn phm trc th c quyn thc hin hnh ng ca mnh. (V d nh ngi chi 1 nhn v gi phm xung trc th ngi chi 2 khng th nhn v thc hin hnh ng cho vin gch di chuyn nhanh xung c). Do , trong ch 2 ngi chi, cn c yu cu l tng ngi chi phi nhn phm v th phm lin tc. Thnh thong, vi mt s my tnh ring bit, c th xy ra mt s li khng kim sot c. (c bit l vi my tnh dng h iu hnh Windows XP SP1,2).3. Phng php lp trnh3.1. tng tng chnh da vo thut ton lp trnh nu trn.
Ngoi ra cn phi pht trin thm nh sau:
Mi khi gch c 2 bin lu v tr nh ca khi gch so vi gameboard v bin lu v tr cnh tri ca khi gch so vi gameboard. Mc ch ca 2 bin ny l nh x cc khi gch vo mng gameboard vi v tr xc nh.Dng timer xc nh thi gian cho khi gch di chuyn. Qua mt ln timer_tick (mt khong thi gian timer.interval nht nh) th khi gch di chuyn xung 1 hng trong gameboard. Cp nht v tr mi ca khi gch trong gameboard v hnh nh xut hin ca khi gch ny c v li.
Vic lm sao khi gch khng b t ra ngoi mng ca gameboard (c ngha l khi cp nht v tr ca cc khi gch khi xoay, di chuyn tri, di chuyn phi khng c vt qu kch thc mng) l mt vn kh khn. Cch ca em l s tng kch thc ca gameboard thm 1 hng dc v 1 hng ngang (thnh mng Bool 11x21), kim sot li v kim sot iu kin cc khi gch hin ng v tr.Cc tng cho cc phn ph c th tm hiu thng qua source code ca chng trnh. V tng x l s kin phm:Thit lp mt hm trong 1 class, dng x l s kin phm.
Trong Form chi game, khi nhp mt phm bt k th s gi hm x l s kin phm trong class mi c thit lp trn.V tng thit k giao din tr chi:
V ra giao din background cho form bng chng trnh Photoshop. Sau chn (add) vo form. Chnh cc thuc tnh ca form c mt giao din nh . 3.2. Cc lp i tng (class)Xem s sau:
S trn gii thiu v cc lp i tng (class) trong chng trnh. S cng miu t phn no th t v hng vit ca cc lp i tng.C th v cc lp i tng nh sau: Lp Hinh: l i tng class dng lu thng tin cc khi hnh (hnh dng, kch thc,) Tn binKiu d liu nghaGhi ch
rongintChiu rng ca 1 khi gch
daiintChiu di ca 1 khi gch
trenintV tr trn ca khi gch so vi gameboard
traiintV tr tri ca khi gch so vi gameboad
shapebool[,]Lu thng tin v hnh dng ca khi gch
kichThuocIntLu kch thc ca 1 gch (pixel)static
hinhImageLu hnh nh skin ca 1 khi gch
Tn hm ngha
VeHinhV 1 hnh image trong 1 gch thuc khi gch
Lp NguoiChoi: l i tng lu thng tin ca ngi chi (tn, im s, cp, )Tn binKiu d liu ngha
tenNguoiChoistringLu tn ca ngi chi
diemSointLu thng tin im s ca ngi chi
capintLu thng tin cp ca ngi chi
boomintLu thng tin v s qu boom ca ngi chi
huyHinhintLu thng tin v s ln hy hnh ca ngi chi
Lp ChoiNhac: (lp static) dng to chng trnh pht nhc cho tr chi.S dng 2 th vin: Tn binKiu d liu ngha
musicWindowsMediaplayerClassBin chi nhc nn trong game
soundISoundEngineBin chi nhc hiu ng trong game
Tn hm ngha
PlayMusicPht nhc nn trong game (*.mp3, *.wav)
PlaySoundPht nhc hiu ng trong game (*.wav)
PauseMusicTm ngng nhc nn
ResumeTip tc pht nhc nn
StopMusicDng nhc nn
Lp userXepGach: (l mt user control) i tng x l tt c cc s kin ca gameboard v cc khi gchTn binKiu d liu ngha
nguoiChoiNguoiChoiThng tin v ngi chi
hinhHienTaiHinhLu hnh hin ti ang c trong gameboard
hinhTiepTheoHinhLu hnh tip theo ang chun b vo gameboard
gameBoardbool[,]Mng gameboard ca tr chi
pictureBoxPictureBox[,]Lu v tr, cch thc hin ca hnh tip theo
Lp frm1Player: (l 1 windows form): thc hin tt c nhng g trong ch 1 ngi chiTn binKiu d liu ngha
userXepGach1userXepGachDng s l s kin chi game ca ngi chi
Lp frm2Player: (l 1 windows form): thc hin tt c nhng g trong ch 2 ngi chiTn binKiu d liu ngha
userXepGach1userXepGachDng s l s kin chi game ca ngi chi 1
userXepGach2userXepGachDng s l s kin chi game ca ngi chi 2
Lp frmOptions (l 1 windows form): thc hin vic tinh chnh cu hnh ca tr chi. Lp frmMain: (l 1 windows form): Cung cp giao din v cc ty chnh menu cho ngi chi. Lp frmHelp: (l 1 windows form): Cung cp thng tin v cch chi, lut chi, php bm, thng tin tc gi. Lp frmLogin: (l 1 windows form): ch l thc hin form dng nhy (cho p m thi).Thng tin v cc bc chy khi chng trnh chy:
4. Hng pht trin tip theoTrong thi gian ti, chng em s tip tc pht trin tr chi trn theo cc hng sau:- Thm mt s chc nng mi nh: tinh chnh m lng trong game, thm tnh nng tt bt nhc khi chi game (sound). Thm phn save, load ca ch 2 ngi chi.
Thm chc nng chng ngi vt. Mi khi ln level (cp) th tr chi t ng thm vo mt, hai, ba hng vi nhng khi gch bt k nhm mc ch gy kh cho ngi chi.
Thm Highscore cho 2 ch chi: 1 ngi chi v 2 ngi chi.5. Kt lunVi kin thc hin c ca chng em hin ti nn vic pht trin tr chi cn hn ch. Tuy nhin tr chi cng p ng phn no yu cu c bn ca mt tr chi thc s: c kh nng chi c v t b li. Chng em s pht trin tr chi da trn mt s tng c. Cui cng, mt ln na chng em xin gi li cm n n thy Vng gip chng em hon thnh chng trnh n ny.
Khi O
Khi T
Khi I
Khi Z
Khi S
Khi L
Khi J
14