THINK JAVA: CÁCH SUY NGHĨ NHƯ NHÀ KHOA HỌC MÁY TÍNH - Trang 148

cũng có m t ít đi u ki n ban đ u cho th y đ ph c t p đáng k . M t trong nh ng đi u ki n đ u nh v y

ứ ạ

ư ậ

là r-pentomino: b t đ u ch v i 5 viên đá, c u hình này ch y su t 1103 b

c th i gian r i k t thúc m t

ắ ầ

ỉ ớ

ướ

ồ ế

ở ộ

c u hình b n v ng v i 116 viên đá s ng (xem

http://www.conwaylife.com/wiki/R-pentomino).

Các m c ti p sau đây là nh ng g i ý đ th c hi n trò ch i Life trong GridWorld. B n có th t i v l i

ế

ể ự

ơ

ể ả ề ờ

gi i c a tôi

ả ủ

t i

http://thinkapjava.com/code/LifeRunner.java http://thinkapjava.com/code/LifeRock.java.

16.5 LifeRunner

Hãy sao l i m t b n file

ộ ả

BugRunner.java r i đ t tên thành

ồ ặ

LifeRunner.java, sau đó b sung nh ng

ph

ng th c v i nguyên m u nh sau:

ươ

ứ ớ

ư

/**

* Lập nên một lưới ô cho trò chơi Life, cùng cấu hình r-pentomino. */

public static void

makeLifeWorld(

int

rows,

int

cols)

/**

* Xếp các viên đá LifeRock lên lưới ô. */

public static void

makeRocks(ActorWorld world)

Ph

ng th c

ươ

ứ makeLifeWorld c n ph i t o nên m t Grid ch a các Actor cùng m t ActorWorld, sau đó

ả ạ

kích ho t

ạ makeRocks, đ n l t ph ng th c này s ph i đ t m t

ế ượ

ươ

ả ặ

ộ LifeRock vào m i ô trong Grid.

16.6 LifeRock

Hãy sao l i m t b n c a file

ộ ả ủ

BoxBug.java r i đ t tên là

ồ ặ

LifeRock.java. L p

ớ LifeRock ph i m r ng

ở ộ

t

ừ Rock. Hãy b sung thêm m t ph ng th c

ươ

ứ act ch ng đ làm gì c . Bây gi mã l nh ph i ch y thông

đ

c và b n s th y m t Grid ch a đ y Rock.

ượ

ạ ẽ ấ

Đ theo dõi tr ng thái c a nh ng viên đá này, b n có th b sung m t bi n th c th m i, ho c b n có

ể ổ

ế

ể ớ

ặ ạ

th dùng màu s c (Color) c a Rock đ bi u th tr ng thái. B ng cách nào đi n a, hay vi t nh ng ph

ng

ể ể

ị ạ

ế

ươ

th c có các nguyên m u sau đây:

/**

* Trả về true nếu viên đá còn sống. */

public boolean

isAlive()

/**

* Làm cho viên đá sống lại. */

public void

setAlive()

/**

* Làm viên đá chết đi. */

public void

setDead()

Hãy vi t m t constructor đ kích ho t

ế

ạ setDead r i kh ng đ nh ch c r ng t t c viên đá đ u ch t.

ắ ằ

ấ ả

ế

16.7 C p nh t đ ng th i

ậ ồ

Trong trò ch i Life, t t c viên đá đ u đ

c c p nh t m t cách đ ng th i; nghĩa là t ng viên đá đ u

ơ

ấ ả

ượ ậ