示例#1
0
//services
void Herbivora::bergerak(MakhlukHidup M){

    if (!Lapar()) {
    	if (!berlari(M)) {
    		gerak_bebas(getPosisi());
    	} else {
    		setPosisi(gerak_menjauh(getPosisi(),M.getPosisi()));
    	}
    } else {
    	gerak_memburu(getPosisi(), M.getPosisi());
    }

}
示例#2
0
//services
void BurungUnta::Reaction(MakhlukHidup& M) {
	if (getPosisi() == M.getPosisi()) {
		if (get_DNA() == M.get_DNA()) {
			setMati(true);
		} else {
			if (isPredator(M.get_DNA())) {
				setMati(true);
			} else if (isTarget(M.get_DNA())) {
				set_tingkat_kekenyangan(get_maks_tingkat_kekenyangan());
			}
		}
	} else {
		if (isRadius(2,M.getPosisi())) {
			if (isPredator(M.get_DNA())) {
				prosesMempercepat();
				gerak_bebas(getPosisi());
			}
		} else {
			set_Kecepatan(kecepatan_BurungUnta);
		}
	}

}
示例#3
0
bool Herbivora::berlari(MakhlukHidup M) {
	bool stop = false;
	int i = 1;

	if (isPredator(M)) {
		while (i < 10 && !stop) {
			if (gerak_berarah(getPosisi(),i) == M.getPosisi()) {
				stop = true;
			} else {
				i++;
			}
		} //i >= 10 || stop
		return (i >= 10);
	} else {
		return false;
	}
}