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.5 Sherlock
Class Sherlock biu din cho nhn vt Sherlock trong chng trnh. Class Sherlock nhn
class MovingObject l lp t tin (ancestor class). Do , class Sherlock phi hin thc cc
pure virtual method ca class MovingObject.
Yu cu: SV hin thc class Sherlock vi yu cu bn di. SV c th t xut thm
cc thuc tnh, cc phng thc hoc cc class khc h tr cho vic hin thc
cc class trong BTL ny.
Constructor (public)c khai bo nh bn di. Constructor ny c thm mt s tham
s khc bn cnh tham s c trong MovingObject: moving_rule: m t cch thc m Sherlock di chuyn.y l mt chui m cc
k t ch c th l mt trong 4 gi tr: 'L'(Left -i sang tri),'R'(Right -i sang
phi),'U'(Up -i ln trn),'D'(Down -i xung di). V d v moving_rule
l"LU".
init_hp: HP ban u ca Sherlock. HP nm trong khong 0,500. Nu HP vt
qu500 thc ci t v500, nu HP bng 0 th coi nh Sherlock ht th lc
v khng th di chuyn tip trong m cung. Nu HP ca c Sherlock v Watson u
bng 0 th Sherlock v Watson b thua trong cuc truy ui vi tn ti phm.
init_exp: EXP ban u ca Sherlock. EXP nm trong khong 0,900. Nu HP
vt qu900 th ci t v900, nu EXP bng 0 th Sherlock cng s khng di
chuyn tip trong m cung.
Tham s name ca Constructor MovingObject c truyn vo gi tr "Sherlock".
Sherlock c thm cc thuc tnh hp v exp.
Phng thc getNextPosition (public) tr v v tr di chuyn tip theo ca Sherlock.
Sherlock di chuyn da theo moving_rule. Mi ln gi phng thc, mt k t tip
theo c s dng lm hng di chuyn. Ln u tin gi phng thc th k tu
tin sc s dng. Khi k t cui cng c s dng th s quay li bt u qu trnh
ny t k tu tin. V d vi moving_rule ="LR" th th t cc k tc s
dng l: 'L','R','L','R','L','R',... Nu Position c tr ra khng phi l mt v tr
hp l cho i tng ny di chuyn th tr v npos thuc class Position.
Phng thc move (public) thc hin m

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