Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include"World.h"
- #include"Goat.h"
- #include"Creature.h"
- #include"RandomNum.h"
- Goat::Goat(World & Fate,RandomNum & Random):Creature(Fate,Random){
- foodPoints = 20;
- }
- Goat::~Goat(){
- }
- void Goat::move(int X,int Y){
- int direction = Creature::Random();
- if(direction == 0){
- Creature::FATE.land[Y][X+1] = Creature::FATE.land[Y][X];
- Creature::FATE.land[Y][X] = NULL;
- }else if(direction == 1){
- Creature::FATE.land[Y-1][X] = Creature::FATE.land[Y][X];
- Creature::FATE.land[Y][X] = NULL;
- }else if(direction == 2){
- Creature::FATE.land[Y][X-1] = Creature::FATE.land[Y][X];
- Creature::FATE.land[Y][X] = NULL;
- }else{
- Creature::FATE.land[Y+1][X] = Creature::FATE.land[Y][X];
- Creature::FATE.land[Y][X] = NULL;
- }
- }
- void Goat::act() {
- int AGE = Creature::getAge();
- int X = Creature::getX();
- int Y = Creature::getY();
- if(AGE>=50 && AGE<=55){
- breed(X,Y);
- Creature::aging();
- }else if(AGE == 70)
- Creature::FATE.die(Creature::getX(),Creature::getY());
- else{
- Creature::aging();
- move(X,Y);
- }
- Creature::RoundOver();
- }
- void Goat::breed(int X,int Y){
- int direction = Creature::Random();
- if(direction == 0){
- if(Creature::FATE.land[Y][X+1]!= NULL){
- if(Creature::FATE.land[Y][X+1]->CreatureIs() == 0)
- Creature::aging();
- else{
- Creature::FATE.die(X+1,Y);
- foodPoints += 5;
- Creature::FATE.land[Y][X+1] = new Goat(Creature::FATE,Creature::RANDOM);
- }
- }else
- Creature::FATE.land[Y][X+1] = new Goat(Creature::FATE,Creature::RANDOM);
- }else if(direction == 1){
- if(Creature::FATE.land[Y-1][X]!= NULL){
- if(Creature::FATE.land[Y-1][X]->CreatureIs() == 0)
- Creature::aging();
- else{
- Creature::FATE.die(X,Y-1);
- foodPoints += 5;
- Creature::FATE.land[Y-1][X] = new Goat(Creature::FATE,Creature::RANDOM);
- }
- }else
- Creature::FATE.land[Y-1][X] = new Goat(Creature::FATE,Creature::RANDOM);
- }else if(direction == 2){
- if(Creature::FATE.land[Y][X-1]!= NULL){
- if(Creature::FATE.land[Y][X-1]->CreatureIs() == 0)
- Creature::aging();
- else{
- Creature::FATE.die(X-1,Y);
- foodPoints += 5;
- Creature::FATE.land[Y][X-1] = new Goat(Creature::FATE,Creature::RANDOM);
- }
- }else
- Creature::FATE.land[Y][X-1] = new Goat(Creature::FATE,Creature::RANDOM);
- }else{
- if(Creature::FATE.land[Y+1][X]!= NULL){
- if(Creature::FATE.land[Y+1][X]->CreatureIs() == 0)
- Creature::aging();
- else{
- Creature::FATE.die(X,Y+1);
- foodPoints += 5;
- Creature::FATE.land[Y+1][X] = new Goat(Creature::FATE,Creature::RANDOM);
- }
- }else
- FATE.land[Y+1][X] = new Goat(Creature::FATE,Creature::RANDOM);
- }
- }
- CreatureType Goat::CreatureIs() const{
- return GOAT;
- }
Add Comment
Please, Sign In to add comment