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

Ch

ng 16: GridWorld, ph n

ươ

ầ 3

Tr v

ở ề M c l c

ụ ụ cu n sách

N u b n ch a làm bài t p trong các Ch

ng 5

ế

ư

ươ

và 10, b n hãy nên làm đi tr

c khi đ c ch

ng này. Xin

ướ

ươ

đ

c nh c l i, b n có th tìm tài li u v các l p GridWorld

ượ

ắ ạ

http://www.greenteapress.com/thinkapjava/javadoc/gridworld/.
Ph n 3 c a cu n H

ng d n sinh viên v GridWorld trình bày nh ng l p c u thành GridWorld và các

ướ

ớ ấ

m i t

ng tác gi a chúng. Đây là m t ví d v thi t k h

ng đ i t

ng và làm m t c h i đ ta bàn

ố ươ

ụ ề

ế ế ươ

ố ượ

ộ ơ ổ ể

lu n nh ng v n đ thi t k h

ng đ i t

ng.

ế ế ướ

ố ượ

Nh ng tr

c khi b n đ c cu n H

ng d n sinh viên, sau đây có thêm m t s đi u mà b n c n bi t.

ư

ướ

ướ

ộ ố ề

ạ ầ

ế

16.1 ArrayList

GridWorld s d ng

ử ụ java.util.ArrayList, m t đ i t ng g n gi ng v i m ng. Đó là m t

ộ ố ượ

t p h p

, t c là

đ i t

ng đ ch a nh ng đ i t

ng khác. Java cung c p nh ng t p h p khác v i nhi u tính năng khác

ố ượ

ể ứ

ố ượ

nhau, nh ng đ dùng GridWorld ta ch c n đ n các

ư

ỉ ầ

ế

ArrayList.

Đ th y m t ví d , hãy t i

ể ấ

v

http://thinkapjava.com/code/BlueBug.java http://thinkapjava.com/code/BlueBugRunner.java. B

lueBug là m t con b di chuy n ng u nhiên và đi tìm các t ng đá. N u nó th y m t t ng đá, con b s

ế

ộ ả

ọ ẽ

làm t ng đá hóa màu xanh.

Sau đây là cách ho t đ ng c a BlueBug. Khi

ạ ộ

act đ

c kích ho t,

ượ

ạ BlueBug l y v trí c a nó cùng m t tham

ấ ị

chi u đ n l

i:

ế

ế ướ

Location loc = getLocation();

Grid<Actor> grid = getGrid();

Ki u d li u n m trong c p ngo c góc (

ữ ệ

<>

) là m t

tham s ki u

ố ể đ quy đ nh n i dung c a

ủ grid. Nói

cách khác, grid không ch là m t

ộ Grid, mà nó là Grid có ch a nh ng

ữ Actor.

B

c ti p theo là thu l y nh ng v trí lân c n v i ch hi n t i.

ướ

ế

ỗ ệ ạ Grid cung c p m t ph ng th c ch đ

ươ

ỉ ể

làm vi c này:

ArrayList<Actor> neighbors = grid.getNeighbors(loc);

K t qu tr l i t

ế

ả ả ạ ừ getNeighbors là m t

ộ ArrayList g m các

Actor. Ph

ng th c

ươ

ứ size tr l i chi u dài

ả ạ

c a

ủ ArrayList, và get thì ch n l y m t ph n t . B i v y ta có th in ra nh ng v trí lân c n nh sau.

ọ ấ

ầ ử ở ậ

ư

for

(

int

i = 0; i < neighbors.size(); i++) {

Actor actor = neighbors.get(i);

System.out.println(actor);

}

Vi c duy t m t

ộ ArrayList là thao tác thông d ng đ n n i có m t cú pháp đ c bi t dành cho nó:

ế

vòng

l p for-each

. B i v y ta có th vi t:

ở ậ

ể ế

for

(Actor actor : neighbors) {

System.out.println(actor);

}

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.