diff --git a/DArray.cpp b/DArray.cpp index 34319c7..751e76e 100644 --- a/DArray.cpp +++ b/DArray.cpp @@ -43,9 +43,12 @@ void DArray::setRoomOfTu(int tu){ roomOfTu = tu; } -void DArray::arrayTiger(Tiger *arr, int roomOfTi){ - Tiger *temp_ti = new Tiger[roomOfTi * 2]; +void DArray::arrayTiger(Animal *arr, int roomOfTi){ +//void DArray::arrayTiger(Tiger *arr, int roomOfTi){ + + //Tiger *temp_ti = new Tiger[roomOfTi * 2]; + Animal *temp_ti = new Tiger[roomOfTi * 2]; for (int i = 0; i < roomOfTi * 2; i++) { temp_ti[i] = Tiger(0, 0.00, 0, 0.00, 0.00); @@ -54,18 +57,24 @@ void DArray::arrayTiger(Tiger *arr, int roomOfTi){ for (int i = 0; i < roomOfTi; i++) { temp_ti[i] = arr[i]; } + //delete[] arr; + //delete arr; setRoomOfTi(roomOfTi*2); - // delete[] arr; - // for (int i = 0; i < sizeOfTi * 2; i++) { - // arr[i] = Tiger(0, 0.00, 0, 0.00, 0.00); - // } + // + for (int i = 0; i < roomOfTi * 2; i++) { + arr[i] = Tiger(0, 0.00, 0, 0.00, 0.00); + } arr = temp_ti; } -void DArray::arrayPen(Penguin *arra, int roomOfPe){ - Penguin *temp_pe = new Penguin[roomOfPe * 2]; +void DArray::arrayPen(Animal *arra, int roomOfPe){ +//void DArray::arrayPen(Penguin *arra, int roomOfPe){ + + + //Penguin *temp_pe = new Penguin[roomOfPe * 2]; + Animal *temp_pe = new Penguin[roomOfPe * 2]; for (int i = 0; i < roomOfPe * 2; i++) { temp_pe[i] = Penguin(0, 0.00, 0, 0.00, 0.00); @@ -74,6 +83,9 @@ void DArray::arrayPen(Penguin *arra, int roomOfPe){ for (int i = 0; i < roomOfPe; i++) { temp_pe[i] = arra[i]; } + //issue occur point! + //delete [] arra; + //delete arra; setRoomOfPe(roomOfPe*2); for (int i = roomOfPe; i < roomOfPe * 2; i++) { @@ -83,9 +95,12 @@ void DArray::arrayPen(Penguin *arra, int roomOfPe){ arra = temp_pe; } -void DArray::arrayTur(Turtle *array, int roomOfTu){ - Turtle *temp_tu = new Turtle[roomOfTu * 2]; +void DArray::arrayTur(Animal *array, int roomOfTu){ +//void DArray::arrayTur(Turtle *array, int roomOfTu){ + + //Turtle *temp_tu = new Turtle[roomOfTu * 2]; + Animal *temp_tu = new Turtle[roomOfTu * 2]; for (int i = 0; i < roomOfTu * 2; i++) { temp_tu[i] = Turtle(0, 0.00, 0, 0.00, 0.00); @@ -94,9 +109,9 @@ void DArray::arrayTur(Turtle *array, int roomOfTu){ for (int i = 0; i < roomOfTu; i++) { temp_tu[i] = array[i]; } - + //delete [] array; + //delete array; setRoomOfTu(roomOfTu*2); - // delete[] array; for (int i = roomOfTu; i < roomOfTu * 2; i++) { array[i] = Turtle(0, 0.00, 0, 0.00, 0.00); @@ -106,66 +121,12 @@ void DArray::arrayTur(Turtle *array, int roomOfTu){ } -void DArray::tigerSick(Tiger *arr, int sickNum){ - - std::cout << "Your Tiger number " << sickNum + 1 << " got sick and died. So sorry!" << std::endl; - - //nyc.setNumOfTig(ti); - - for (int j = sickNum; j < roomOfTi; j++) { - - Tiger temp = arr[j]; - arr[j] = arr[j + 1]; - arr[j + 1] = temp; - } - arr[roomOfTi - 1] = Tiger(0, 0.00, 0, 0.00, 0.00); - -} -void DArray::penguinSick(Penguin *arra, int pickNum){ - - std::cout << "Your Penguin number " << pickNum + 1 << " got sick and died. So sorry" << std::endl; - - for (int j = pickNum; j < roomOfPe; j++) { - - Penguin temp = Penguin(0, 0.00, 0, 0.00, 0.00); - //Penguin temp = arra[j]; - temp = arra[j]; - arra[j] = arra[j + 1]; - arra[j + 1] = temp; - } - arra[roomOfPe - 1] = Penguin(0, 0.00, 0, 0.00, 0.00); - - //std::cout<<"The Turtle is (after the penguin die): "<0 - std::cout<<"The Turtle is (before the rolling dice): "<= ti && whoSick < ti + pe) { pe -= 1; - int sickP = whoSick - ti; std::cout << "Your Penguin number " << sickP + 1 << " got sick and died. So sorry" << std::endl; for (int j = sickP; j < roomOfPe; j++) { - Penguin temp = Penguin(0, 0.00, 0, 0.00, 0.00); + //Penguin temp = arra[j]; - temp = arra[j]; + Animal temp = arra[j]; + // temp = arra[j]; arra[j] = arra[j + 1]; arra[j + 1] = temp; } arra[roomOfPe - 1] = Penguin(0, 0.00, 0, 0.00, 0.00); + //Check turtle! std::cout<<"The Turtle is (after the penguin die): "<= roomOfTi) { - - this->DArray::arrayTiger(arr, roomOfTi); - - std::cout<<"Room For Tiger after resizing "<< roomOfTi<= roomOfPe) { - - arrayPen(arra, roomOfPe); - std::cout<<"Room For penguin after resizing "<= roomOfTu) { - - arrayTur(array, roomOfTu); - std::cout<<"Room For Turtle after resizing "<= numAdTi && draw < numAdTi + numAdPen) { //Penguin pe; //Animal *peng = new Penguin(); - + // peng->getCost(); int chosenPen; chosenPen = adultPenguin[draw - numAdTi]; std::cout << "Your penguin number "<= roomOfPe) { + //issue occur point! arrayPen(arra, roomOfPe); std::cout<<"Room For penguin after resizing "< Zoo::Zoo()=default; Zoo::~Zoo()=default; -/************************************* +/********************************** int Zoo::getDay(){ return this -> day; } void Zoo::setDay(int d){ day = d; } - int Zoo::getNumOfTig(){ return numOfTig; } @@ -49,8 +49,7 @@ int Zoo::getNumOfTurt(){ void Zoo::setNumOfTurt(int turt){ numOfTurt =turt; } -**************************************/ - +************************************************/ void Zoo::play(){ std::cout<<"Welcome to the Zoo! Now you run this Fantastic Zoo."<0 - - std::uniform_int_distribution dist2(1, numOfAni); - whoSick = dist2(mt) - 1; - - std::cout << "Who sick? number is: " << whoSick + 1 << std::endl; - - // A Tiger gets sick and remove - if (whoSick < numOfTig) { - numOfTig -= 1; - room.tigerSick(arrayOfTi, whoSick); - - } - else if (whoSick >= numOfTig && whoSick < numOfTig + numOfPeng) { - numOfPeng -= 1; - int sickP = whoSick - numOfTig; - - room.penguinSick(arrayOfPe, sickP); - - } - else // whoSick >= numOfTi+numOfPe && whoSick < numOfAni - { - numOfTurt -= 1; - int sickTu = whoSick - (numOfTig + numOfPeng); - - room.turtleSick(arrayOfTur, sickTu); - } - } - - delete[] allAnimal; - - //room.pickRemove(numOfTig, numOfPeng, numOfTurt, arrayOfTi, arrayOfPe, arrayOfTur); - std::cout<<"after the funct 'who sick'. The num of Tiger: "<= 3) { - numAdTi += 1; - } - } - std::cout <<"Number of Adult Tigers: " << numAdTi << std::endl; - - int *adultTiger = new int[numAdTi]; - - int j = 0; - for (int i = 0; i < numOfTig; i++) { - if (arrayOfTi[i].getAge() >= 3) { - adultTiger[j] = i; - j++; - } - } - - int numAdPen = 0; - for (int i = 0; i < numOfPeng; i++) { - if (arrayOfPe[i].getAge() >= 3) { - numAdPen += 1; - } - } - std::cout <<"Number of Adult penguins: " << numAdPen << std::endl; - - int *adultPenguin = new int[numAdPen]; - - int k = 0; - for (int i = 0; i < numOfPeng; i++) { - if (arrayOfPe[i].getAge() >= 3) { - adultPenguin[k] = i; - k++; - } - } - - int numAdTur = 0; - for (int i = 0; i < numOfTurt; i++) { - if (arrayOfTur[i].getAge() >= 3) { - numAdTur += 1; - } - } - std::cout << "Number of Adult Turtle: " << numAdTur << std::endl; - - int *adultTurtle = new int[numAdTur]; - - int l = 0; - for (int i = 0; i < numOfTurt; i++) { - if (arrayOfTur[i].getAge() >= 3) { - adultTurtle[l] = i; - l++; - } - } - - int numAdAnimal = numAdTi + numAdPen + numAdTur; - - std::uniform_int_distribution dist9(1, numAdAnimal); - draw = dist9(mt)-1; - - - if (numAdAnimal <= 0) { - std::cout << "Sorry. You don't have any adult animals. Maybe next time!" << std::endl; - } - - //When there is one or more adult animal. - else { - //A Tiger has a baby. - if (draw < numAdTi) { - - int chosenTi; - chosenTi = adultTiger[draw]; - - room.tigerHasBaby(arrayOfTi, numOfTig, chosenTi); - - } - else if (draw >= numAdTi && draw < numAdTi + numAdPen) { - //Penguin pe; - //Animal *peng = new Penguin(); - - int chosenPen; - chosenPen = adultPenguin[draw - numAdTi]; - - room.penguinHasBaby(arrayOfPe, numOfPeng, chosenPen); - } - else // whoSick >= numOfTi+numOfPe && whoSick < numOfAni - { - - int chosenTurtle; - chosenTurtle = adultTurtle[draw - numAdTi - numAdPen]; - - room.turtleHasBaby(arrayOfTur, numOfTurt, chosenTurtle); - - } - } - - //room.whoHasBaby(numOfTig, numOfPeng, numOfTurt, arrayOfTi, arrayOfPe, arrayOfTur); - - std::cout<<"after the funct 'who has babay'. The num of Tiger: "<