Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

3 . 4 i t ng di chuy n Abstract class MovingObject c s d ng bi u di n c c i t ng

3.4i tng di chuyn
Abstract class MovingObject c s dng biu din cc i tng di chuyn trong chng
trnh nh Sherlock, Watson, tn ti phm.
Yu cu: Hin thc abstract class MovingObject vi cc m t sau:
Cc thuc tnh protected:
index: kiu int, v tr ca i tng di chuyn trong mng cc i tng di chuyn,
mng ny sc m t sau.
pos: kiu Position, v tr hin ti ca i tng di chuyn.
map: kiu Map**, bn cho i tng ny di chuyn trong .
name: kiu string, tn ca i tng di chuyn.
Phng thc khi to Constructor (public) vi cc tham s index, pos, map, name c
ngha ging vi thuc tnh c cng tn. Phng thc gn gi tr ca tham s cho thuc
tnh cng tn. Ring tham s name c gi tr mc nh l"".
MovingObject(int index, const Position pos, Map * map, const string k
name="")
Phng thc hy o (virtual destructor) vi quyn truy cp public.
Phng thc o thun t(pure virtual method) getNextPosition tr v Position tip
theo mi tng ny di chuyn n. Mt khc, trong trng hp khng c Position no
i tng di chuyn n, ta nh ngha mt gi tr tr v cho phng thc ny
v lu trong bin npos ca class Position. Khi khng c Position di chuyn n th
phng thc tr v npos.
virtual Position getNextPosition()=0; Pure virtual method getCurrentPosition tr v Position hin ti ca i tng di
chuyn.
Position getCurrentPosition() const =0;
Pure virtual method move thc hin 1 bc di chuyn ca i tng.
Pure virtual method str tr v chui biu din thng tin ca i tng.
?1 virtual string str() const =0;
Yu cu: nh ngha bin npos (not position) trong class Position biu din rng khng
c v tr no i tng di chuyn n. Bin npos cr=-1 vc=-1. Khai bo ca bin
nh sau:
static const Position npos;
Yu cu: Trong class Map, nh ngha phng thc isValid kim tra v tr pos c phi
l mt v tr hp l cho i tng mv _obj di chuyn n. Mt v tr hp l cho vic di chuyn
phi ph thuc vo i tng di chuyn l g v thnh phn bn . V d, Sherlock c th
di chuyn trn FakeWall nhng Watson th cn tha yu cu v EXP. SV cn tm c m t
trong BTL ny hin thc phng thc cho ng.
?1 bool isValid(const Position & pos, MovingObject * mv_obj) const; 3.6 Watson
Class Watson biu din cho nhn vt Watson trong chng trnh. Class Watson nhn class
MovingObject lm lp t tin (ancestor class).
Yu cu: SV hin thc class Watson tng t nh class Sherlock. Tuy nhin, class
Watson c s thay i nh sau:
Tham s name ca Constructor MovingObject c truyn vo gi tr "Watson".
Phng thc str tr v chui cnh dng nh sau:
Cc thnh phn c ngha tng t nh trong class Sherlock.
3.7 Tn ti phm
Class Criminal biu din cho nhn vt tn ti phm trong chng trnh. Class Criminal
nhn class MovingObject lm lp t tin (ancestor class). Tn ti phm c camera theo di
c Sherlock v Watson trong m cung ny. Do , khc vi cch di chuyn ca cp i thm
t, tn ti phm s la chn v tr di chuyn tip theo l v tr hp l c tng khong cch n
Sherlock v Watson l ln nht. Trong BTL ny, khi ni n khong cch, ta ang s dng
khong cch Manhattan. Khong cch Manhattan gia 2im P1 c ta (x1,y1) v P2
c ta (x2,y2) l:
|x1-x2|+|y1-y2|
Trong trng hp c nhiu hn 1 v tru c tng khong cch n Sherlock v Wton
l ln nht thu tin chn v tr theo th t cc hng i 'U','L','D','R'.
Yu cu: Hin thc class Criminal tng t nh class Sherlock vi cc s thay i
nh sau:
Constructor (public)c khai bo nh bn di. Mt s tham s c ngha tng t
nh class Sherlock. Mt sim khc nhau l: sherlock, watson ln lt l con trn i tng Sherlock v Watson. Thng qua
2 con tr, ta c th ly c v tr hin ti ca hai nhn vt ny.
Tham s name ca Constructor MovingObject c truyn vo gi tr "Criminal".
Phng thc str tr v chui cnh dng nh sau:
3.8 Mng cc i tng di chuyn
Class ArrayMovingObject biu din mt mng cc i tng di chuyn. Khi chng trnh
chy, mng ny c duyt tu n cui v gi phng thc move ca mi phn t mi
i tng thc hin 1 bc i.
Yu cu: Hin thc class ArrayMovingObject vi cc yu cu sau:
Cc thuc tnh private:
arr_mv_objs: mng cc i tng di chuyn (MovingObject). Mi phn t trong
mng cn th hin c tnh a h

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Beyond Big Data Using Social MDM To Drive Deep Customer Insight

Authors: Martin Oberhofer, Eberhard Hechler

1st Edition

0133509796, 9780133509793

More Books

Students also viewed these Databases questions