tai lieu tro choi xep gach 177

20
Tài liệu nghiên cứu trò chơi Xếp gạch GVHD: TS. Phạm Thi Vương LỜI NÓI ĐẦU Trò chơi Xếp gạch (tên gọi quốc tế: Tetris) là một trò chơi thuộc thể loại trí tuệ. Trò chơi ra đời vào thập kỉ 80 của thế kỷ trước, nhưng cho đến ngày nay vẫn làm nhiều người mất ăn mất ngủ. Trò chơi đã được nhiều công ty phần mềm, nhiều cá nhân đã phát triển ngày càng đa dạng về thể loại cũng như tùy biến về cách chơi. Trên tinh thần đó, nhóm chúng em cũng xin viết một phiên bản của trò chơi này, đồng thời cũng nhằm thực hiện đồ án bài tập cuối năm môn Lập trình môi trường Windows. Tài liệu này nhằm giới thiệu về trò chơi do nhóm chúng em thiết kế (tên gọi là TETRIS PARTY). Trong tài liệu này, chúng em sẽ trình bày tổng quan về chương trình, ưu, nhược điểm, vài nét về giao diện, cũng như chức năng chính của trò chơi. Kết thúc tài liệu, chúng em xin đề ra một số hướng phát triển cho trò chơi trong tương lai. Vì thời gian để hoàn thành chương trình đồ án này gấp gáp, chúng em phải vừa tìm hiểu kiến thức và áp dụng chúng vào trong lập trình ngay (mà chưa kiểm tra thử nghiệm một cách toàn diện) nên chương trình chắc chắn còn nhiều thiếu sót. Chúng em mong thầy và các bạn giúp đỡ chúng em hoàn thành hoàn chỉnh chương trình trên. 1

Upload: joshep

Post on 07-Nov-2015

38 views

Category:

Documents


12 download

DESCRIPTION

good

TRANSCRIPT

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