You are on page 1of 15

I HC NNG

TRNG I HC BCH KHOA KHOA CNG NGH THNG TIN

BI TP LN
MN CHUYN 1
TI: LP TRNH GAME CARO CHO IN THOI DI NG

GVHD : SVTH : LP : NHM :

TH.S HUNH HU HNG TRN THANH DUY PHAN NG MI 09T4 07

Nng thng 3/2012

BI TP LN MN CHUYN 1

LI M U
Hin nay, Cng ngh thng tin ang pht trin mnh m v tr thnh mt ngnh cng nghip mi nhn nhiu quc gia, Vit Nam cng khng l ngoi l. X hi ngy cng pht trin th c nhiu ngnh c tin hc ha d dng trong vic qun l v tra cu. Trong xu th pht trin v ng dng cng ngh thng tin c nhiu phn mn c c ra i v em li hiu qu kinh t, gim thiu sc lao ng. Vic ng dng cc ngn ng lp trnh ngy cng rng ri, t bit hin nay vi xu th ngy cng pht trin th vic ng dng cc phn mn vo trong in thoi ngy cng pht trin rng ri. Sau khi hc xong mn hc ny, chng em chn ti Lp trnh game caro cho in thoi di ng. Do cn hn ch v mt kin thc nn trong qu trnh lm khng th trnh khi nhng thiu xt, mong qu thy c v cc bn ng gp kin v gip chng em ngy cng hon thin hn. Chng em xin chn thnh cm n thy Hunh Hu Hng tn tnh gip v hng dn chng em trong vic trao i hc tp kin thc l thuyt trn trng v lm bi tp ny. Chng em xin chn thnh cm n!

SVTH: TRN THANH DUY- PHAN NG MI

Trang 2

BI TP LN MN CHUYN 1
GII THIU TI TI: LP TRNH GAME CARO CHO DTDD
1. VI NT V J2ME J2ME c thit k dnh cho my vi ti nguyn b nh hn ch. Ngy nay th trng J2ME m rng ra cho nhiu chng loi thit b nh: - Cc loi th nh c nhn Java Card - My in thoi di ng - My PDA, cc hp iu khin c nhn thit b gii tr a dng. 2. TR CHI CARO Tr chi i khng (two-agent,conflicting game ) : Gm 2 ngi chi, i th ny s tm cch dnh chin thng trc i th kia trong mt s hu hn nc i, mi nc i uc to ra da t 1 trng thi bt k ca trn u. Nu sau 1 s gii hn nc i, nu cha ai dnh chin thng th xem nh ho. Ngoi ra, thng tin v trn u l hon ton bit uc (perfect information) i vi c 2 i th. - C Car (hay cn gi l Gomoku ) cng l 1 loi tr chi i khng, trong mi i th trong mi lt i ca mnh s chn 1 trng cn li trn bn c (k sn cc li ) sao cho to thnh n con lin tip chin thng ... Nu n = 3 th n c 1 tn khc l Tic Tac Toe , nu b sung thm lut cho n th c th i tn l Penta,Pentix (c n qun) ... Ngoi ra, c lut thi u m ngi ta chng minh uc ngi i truc bao gi cng c thut ton thng, do hn ch thun li ca ngi i trc, ngi ta t ra "lut rng" sau ( lut ny s s dng cho qu trnh pht trin chng trnh ): Bn c c kch thc tu nxm. Qun c u tin phi nh chnh gia li bn c. Nu tn ti ng 5 con lin tip trn 1 hng l thng (cho,ngang,dc). Nu ht ch i th 2 bn ho. V 1 s lut khc

I.

SVTH: TRN THANH DUY- PHAN NG MI

Trang 3

BI TP LN MN CHUYN 1

Mt s tr chi i khng

3. GII THUT LNG GI BN C Th tc AlphaBeta l mt ci tin thut ton Minimax nhm ta bt nhnh ca cy tr chi, lm gim s lng nt phi sinh v lng gi, do c th tng su ca cy tm kim. Gi s hnh di l mt th c m hai nt u tin c lng gi. Nu thc hin th tc Minimax i vi cc nt s cho thy ngi chi cc i c m bo nu i nc bn tri s c t nht l 2 im d l cc lng gi ca cc nt khc cho kt qu nh th no i na.
SVTH: TRN THANH DUY- PHAN NG MI Trang 4

BI TP LN MN CHUYN 1

By gi, ta li gi s nt tip theo c lng gi v cho kt qu l 1. Nu i vo nhnh ny th i phng sm bo lm im ca ngi chi cc i khng th vtqu c gi tr 1 d l cc lng gi ca cc nt khc cho kt qu nh th no i na. Do n y, nc i tt nht l chn nc i bn tri vi m bo l t nht t c 2 im. V do , hon ton khng cn thit phi lng gi nt cn li.Nguyn tc Alpha-Beta Nu bit iu tht s ti th ng mt thi gian tm hiu n s ti t n u tng ny c gi l nguyn tc Alpha-Beta do n dng trong th tc AlphaBeta (ta s xt di y). Hai tham s ca th tc ny (theo cc t tn truyn thng) c gi l alpha v beta v dng theo di cc trin vng chng cho bit cc gi tr nm ngoi khong [alpha, beta] l cc im "tht s ti" v khng cn phi xem xt na. Khong [alpha, beta] cn c gi l ca s alpha, beta. Trong ng cnh ca cc tr chi, nguyn tc Alpha-Beta ni rng, mi khi xem xt
SVTH: TRN THANH DUY- PHAN NG MI Trang 5

BI TP LN MN CHUYN 1
mt nt bt k, nn kim tra cc thng tin bit v cc nt cha, ng ca n. Rt c th do c thng tin t cha, ng nn khng cn phi lm bt c vic g na cho nt ny. Cng vy, nguyn tc ny cng gip chnh sa hoc xc nh chnh xc gi tr ti nt cha, ng n. Nh trn ni, mt cch tin theo di qu trnh tnh ton l dng cc tham s alpha v beta ghi li cc thng tin theo di cn thit. Th tc AlphaBeta c bt u ti nt gc vi gi tr ca alpha l -vcng v beta l +vcng. Th tc s t gi quy chnh n vi khong cch gia cc gi tr alpha v beta ngy cng hp hn

Thut ton AlphaBeta: * Nu mc ang xt l nh (gc cy), t gi tr ca alpha l -vcng v beta l +vcng * Nu nh t n gii hn tm kim (n tng di cng ca cy tm kim), tnh gi tr tnh ca th c hin ti ng vi ngi chi . Ghi li kt qu * Nu nh mc ang xt l ca ngi chi cc tiu, Thc hin cc cng vic sau cho n khi tt c cc con ca n c xt vi th tc AlphaBeta hoc cho n khi alpha l bng hoc ln hn beta. - p dng th tc AlphaBeta vi gi tr alpha v beta hin ti cho mt con. Ghi nh li kt qu. - So snh gi tr ghi nh vi gi tr beta, nu gi tr nh hn th t beta bng gi tr mi ny. Ghi nh li beta * Nu nh mc ang xt l ca ngi chi cc i, Thc hin cc cng vic sau cho n khi tt c cc con ca n c xt vi th tc AlphaBeta hoc cho n khi alpha l bng hoc ln hn beta. - p dng th tc AlphaBeta vi gi tr alpha v beta hin ti cho mt con. Ghi nh li kt qu. - So snh gi tr ghi nh vi gi tr alpha, nu gi tr ln hn th t alpha bng gi tr mi ny. Ghi nh li alpha.

SVTH: TRN THANH DUY- PHAN NG MI

Trang 6

BI TP LN MN CHUYN 1
II. THUT TON CHNG TRNH CHNH
1. MC TIU - Vit chng trnh game caro hai ngi c th nh vi nhau. 2. KHI NG Chn cu trc d liu thch hp lu trng thi 1 ca bn c (lu thng tin ca tng ) Chn 1 loi ngn ng lp trnh hin thc: Java Ti u ho cc chn la trn thnh 1 th thng nht ... Ban u cho con tr nm chnh gia bn c, ngui chi ng cc thoa tc chn chi trc hoc cho my tnh chi trc ,ngi chi trc nh bng u x, con i sau thi nh du 0. S dng cc phm chc nng up, right, down, left di chuyn con tr ln xung qua tri qua phi trn bn c. S dng phm chn gia (hoc phm 5 trn in thoi) nh c. Sau mi bc i ca ngi chi kim tra thng hay cha, nu c ngi chi thng th hin ra thng bo you win. V nu ngi chi thua th hin thng bo you lose. 4. MENU CHNG TRNH. Chng trnh gm 3 menu chnh: Menu th nht: new game mc ny bn c th chon bt u chi game mi khi vo game. Menu th 2: options mc ny ban c th th chi vi 3 mc chi t level 1 n level 3 . kh s tng dn t level 1 n level 3. Menu th 3: help mc ny bn c th vo tham kho cch chi game. 5. CU TRC THUT TON. Chng trnh c xy dng t 4 lp chnh:
SVTH: TRN THANH DUY- PHAN NG MI Trang 7

3. TNG

BI TP LN MN CHUYN 1
+ Lp Board vi nhim v to ra 1 bn c caro v cc thao tc chnh ca game K tha lp Canvas to giao din bn c caro,x l cc hot ng ca game,x l cc phm nhn,to giao din cho ngi s dng. Lp Broad c cc lp thnh vin: Lp ClipRect v bn c caro,v to giao din s dng.
public int y1,x1,y2,x2; ClipRect(int ny1, int nx1, int ny2, int nx2) { y1 = ny1; x1 = nx1; y2 = ny2; x2 = nx2; } public void setAll(int ny1, int nx1, int ny2, int nx2) { y1 = ny1; x1 = nx1; y2 = ny2; x2 = nx2; } } class ClipRect{

Lp BoardCommand x l cc s kin hnh ng ca game v cc s kin ca phm nhn.

class BoardCommand extends Command { int tag; BoardCommand(String label, int type, int pri, int tag_) { super(label, type, pri); tag = tag_; } }

SVTH: TRN THANH DUY- PHAN NG MI

Trang 8

BI TP LN MN CHUYN 1
Lp Move hnh ng di chuyn ca con tr trn bn c.
class Move{ int y,x,prior; Move(int ny,int nx,int nprior){ y =ny; x=nx; prior = nprior; } public void set(int ny,int nx,int nprior){ y =ny; x=nx; prior = nprior; } public int gety(){ return y; } public int get(){ return x; } public int getprior(){ return prior; } public void setprior(int nprior){ prior = nprior; } }

+ Lp caro y l lp chnh ca chng trnh k tha t lp Board.


public class caro extends MIDlet { Board b; public caro() { b = new Board(this); } public void startApp() { Display.getDisplay(this).setCurrent( b ); } public void pauseApp() { } public void destroyApp(boolean unc) { } }

SVTH: TRN THANH DUY- PHAN NG MI

Trang 9

BI TP LN MN CHUYN 1

+ Lp Options l lp cha ty chn ca game,khi chi game ngi dng c th vo y chnh Level ca game.
public class Options extends Form implements CommandListener { int level; Command ok; Command cancel; Display dpy; Displayable prev; ChoiceGroup cg1; Options(Display dpy_, Displayable prev_) { super("Options"); dpy = dpy_; prev = prev_; // set up default values level= 0; // REMIND should use a label here //append("Choise level:"); cg1 = new ChoiceGroup("Choise level:", Choice.EXCLUSIVE); cg1.append("Level 1", null); cg1.append("Level 2", null); cg1.append("Level 3", null); append(cg1); ok = new Command("OK", Command.OK, 0); cancel = new Command("Cancel", Command.CANCEL, 1); addCommand(ok); addCommand(cancel); setCommandListener(this); } public void commandAction(Command c, Displayable d) { if (c == ok) { } else if (c == cancel) { } dpy.setCurrent(prev);

SVTH: TRN THANH DUY- PHAN NG MI

Trang 10

BI TP LN MN CHUYN 1
} }

+ Lp Uses dng hin th ni dung help hng dn chi game.


public class Uses { private static final String strHelp = " press key 2 or up go up.\n" + " press key 8 or down go down.\n" + " press key 4 or left go left.\n" + " press key 6 or right go right.\n" + " press key 5 or select.\n" + " undo move,two press key * "; /** the previous screen to go back to */ private Displayable previous; private Uses() {}; public static void showHelp(Display display) { Alert alert = new Alert("Help Caro"); alert.setTimeout(Alert.FOREVER);alert.setString(strHelp); display.setCurrent(alert); } }

SVTH: TRN THANH DUY- PHAN NG MI

Trang 11

BI TP LN MN CHUYN 1
III. KT QU CHY TH CHNG TRNH TRN WirelessToolkit

H1: Bin dch ng dng

SVTH: TRN THANH DUY- PHAN NG MI

Trang 12

BI TP LN MN CHUYN 1

H2:Khi ng game

SVTH: TRN THANH DUY- PHAN NG MI

Trang 13

BI TP LN MN CHUYN 1

H3: Ty chn

H4: Kt thc

SVTH: TRN THANH DUY- PHAN NG MI

Trang 14

BI TP LN MN CHUYN 1

KT LUN
Mc d c gng hon thin chng trnh, chng em ch thc hin c vic chi game gia ngi v my. Cha thc hin c vic chi i khng gia 2 ngi vi nhau. Trong qu trnh hon thnh ti khng trnh khi sai xt knh mong qu thy c xem xt gip chng em ngy cng hon thin hn. Em xin chn thnh cm n!

SVTH: TRN THANH DUY- PHAN NG MI

Trang 15

You might also like