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 và 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
ơ
ấ ả
ề
ượ ậ
ậ
ộ
ồ
ờ
ừ
ề