Answered step by step
Verified Expert Solution
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
i 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
MovingObjectint 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 tpure 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; Pure virtual method getCurrentPosition tr v Position hin ti ca i tng di
chuyn
Position getCurrentPosition const ;
Pure virtual method move thc hin bc di chuyn ca i tng
Pure virtual method str tr v chui biu din thng tin ca i tng
virtual string const ;
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 c v 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
bool isValidconst Position & pos, MovingObject mvobj const; 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 publicc khai bo nh bn di Constructor ny c thm mt s tham
s khc bn cnh tham s c trong MovingObject: movingrule: m t cch thc m Sherlock di chuyny l mt chui m cc
k t ch c th l mt trong gi tr: LLeft i sang triRRight i sang
phiUUp i ln trnDDown i xung di V d v movingrule
lLU
inithp: HP ban u ca Sherlock. HP nm trong khong Nu HP vt
qu thc ci t v nu HP bng 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 th Sherlock v Watson b thua trong cuc truy ui vi tn ti phm
initexp: EXP ban u ca Sherlock. EXP nm trong khong Nu HP
vt qu th ci t v nu EXP bng 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 movingrule. 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 movingrule LR th th t cc k tc s
dng l: LRLRLR 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
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started