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

* Tạo nên bông hoa trừ khi con mối đã có sẵn một bông.

*/

public void

createFlower();

/**

* Bỏ lại bông hoa tại vị trí con mối đang đứng.

*

* Lưu ý: trên mỗi ô chỉ có được một vật, bởi vậy hiệu ứng

* của việc đánh rơi bông hoa sẽ được hoãn lại đến khi con mối di chuyển.

*/

public void

dropFlower();

/**

* Ném bông hoa vào chỗ mà con mối đang hướng tới.

*/

public void

throwFlower();

/**

* Nhặt bông hoa tại vị trí con mối hướng tới, nếu có,

* và nếu con mối chưa mang theo hoa.

*/

public void

pickUpFlower();

Có nh ng ph

ng th c mà

ươ

Bug cung c p m t l i đ nh nghĩa này và

ộ ờ ị

Termite l i cung c p cái khác. Trong

tr

ng h p nh v y, ph

ng th c

ườ

ư ậ

ươ

ứ Termite sẽ ghi đè lên ph ng th c

ươ

ứ Bug.

Ch ng h n,

ạ Bug.canMove tr l i

ả ạ true n u có m t bông hoa v trí k ti p, b i v y các có th

ế

ở ị

ế ế

ở ậ

ể Bug có th

gi m lên

Flower. Còn Termite.canMove s tr l i

ẽ ả ạ false n u có b t kì đ i t ng nào khác v trí k ti p,

ế

ố ượ

ở ị

ế ế

nên bi u hi n c a

ệ ủ Termite s khác đi.

M t ví d khác, các đ i t

ng con m i có m t phiên b n

ố ượ

ả turn trong đó nh n tham s là s nguyên ch

đ góc. Sau cùng, đ i t

ng con m i có

ố ượ

randomTurn, v i tác d ng quay ng u nhiên qua trái ho c ph i

v i góc quay 45 đ .

Sau đây là mã l nh t file

TermiteRunner.java:

public class

TermiteRunner {

public static void

main(String[] args) {

ActorWorld world =

new

ActorWorld();

makeFlowers(world, 20);

Termite alice =

new

Termite();

world.add(alice);

Termite bob =

new

Termite();

bob.setColor(Color.blue);

world.add(bob);

world.show();

}