diff --git a/DArray.cpp b/DArray.cpp index 751e76e..a169e44 100644 --- a/DArray.cpp +++ b/DArray.cpp @@ -44,11 +44,10 @@ void DArray::setRoomOfTu(int tu){ } -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]; +void DArray::arrayTiger(Tiger *arr, int roomOfTi){ + + Tiger *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); @@ -58,23 +57,17 @@ void DArray::arrayTiger(Animal *arr, int roomOfTi){ temp_ti[i] = arr[i]; } //delete[] arr; - //delete arr; - setRoomOfTi(roomOfTi*2); - // + for (int i = 0; i < roomOfTi * 2; i++) { arr[i] = Tiger(0, 0.00, 0, 0.00, 0.00); } - arr = temp_ti; - + setRoomOfTi(roomOfTi*2); } -void DArray::arrayPen(Animal *arra, int roomOfPe){ -//void DArray::arrayPen(Penguin *arra, int roomOfPe){ +void DArray::arrayPen(Penguin *arra, int roomOfPe){ - - //Penguin *temp_pe = new Penguin[roomOfPe * 2]; - Animal *temp_pe = new Penguin[roomOfPe * 2]; + Penguin *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); @@ -83,24 +76,20 @@ void DArray::arrayPen(Animal *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++) { arra[i] = Penguin(0, 0.00, 0, 0.00, 0.00); } - arra = temp_pe; + setRoomOfPe(roomOfPe*2); } -void DArray::arrayTur(Animal *array, int roomOfTu){ -//void DArray::arrayTur(Turtle *array, int roomOfTu){ +void DArray::arrayTur(Turtle *array, int roomOfTu){ - //Turtle *temp_tu = new Turtle[roomOfTu * 2]; - Animal *temp_tu = new Turtle[roomOfTu * 2]; + Turtle *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); @@ -110,28 +99,20 @@ void DArray::arrayTur(Animal *array, int roomOfTu){ temp_tu[i] = array[i]; } //delete [] array; - //delete array; - setRoomOfTu(roomOfTu*2); for (int i = roomOfTu; i < roomOfTu * 2; i++) { array[i] = Turtle(0, 0.00, 0, 0.00, 0.00); } array = temp_tu; - + setRoomOfTu(roomOfTu*2); } -void DArray::pickRemove(int &ti, int &pe, int &tu, Animal *arr, Animal *arra, Animal *array) { -//void DArray::pickRemove(int &ti, int &pe, int &tu, Tiger *arr, Penguin *arra, Turtle *array) { - - - Zoo nyc; +void DArray::pickRemove(int &ti, int &pe, int &tu, Tiger *arr, Penguin *arra, Turtle *array) { int numOfAni = ti + pe + tu; - std::cout << "Tiger num " << ti << " "; - std::cout << "Penguin num " << pe << " "; - std::cout << "Turtle num " << tu << " " << std::endl; + std::cout <<"You have "<< ti << " tiger/s "<0 @@ -180,15 +158,12 @@ void DArray::pickRemove(int &ti, int &pe, int &tu, Animal *arr, Animal *arra, An for (int j = whoSick; j < roomOfTi; j++) { - //Tiger temp = arr[j]; - Animal temp = arr[j]; - //temp = arra[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); - delete[] allAnimal; - // allAnimal = 0; + } //A Penguin get sick and remove else if (whoSick >= ti && whoSick < ti + pe) { @@ -201,9 +176,7 @@ void DArray::pickRemove(int &ti, int &pe, int &tu, Animal *arr, Animal *arra, An for (int j = sickP; j < roomOfPe; j++) { - //Penguin temp = arra[j]; - Animal temp = arra[j]; - // temp = arra[j]; + Penguin temp = arra[j]; arra[j] = arra[j + 1]; arra[j + 1] = temp; } @@ -214,8 +187,6 @@ void DArray::pickRemove(int &ti, int &pe, int &tu, Animal *arr, Animal *arra, An for(int i=0; i= 3) { numAdTur += 1; } - std::cout<<"Age of Turtles: "<= 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 "<= roomOfTu) { @@ -438,14 +372,11 @@ void DArray::whoHasBaby(int &numTi, int &numPen, int &numTurt, Animal *arr, Anim for (int i = 0; i < 10; i++) { array[numTurt - 10 + i] = Turtle(0, 100.00, 0, zoo.baseCost, 100.00*0.05); } - delete[] adultTiger; - // adultTiger =0; - delete[] adultPenguin; - // adultPenguin =0; - delete[] adultTurtle; - // adultTurtle =0; + } } - + delete[] adultTiger; + delete[] adultPenguin; + delete[] adultTurtle; } \ No newline at end of file diff --git a/DArray.h b/DArray.h index e023a24..94d0693 100644 --- a/DArray.h +++ b/DArray.h @@ -36,19 +36,12 @@ class DArray { void setRoomOfPe(int pe); int getRoomOfTu(); void setRoomOfTu(int tu); - /*************************************** + void arrayTiger(Tiger *arr, int sizeOfTi); void arrayPen(Penguin *arra, int sizeOfPe); void arrayTur(Turtle *array, int sizeOfTu); void pickRemove(int &ti, int &pe, int &tu, Tiger *arr, Penguin *arra, Turtle *array); void whoHasBaby(int &rTiger, int &rPenguin, int &rTurtle, Tiger *arr, Penguin *arra, Turtle *array); - ****************************************/ - - void arrayTiger(Animal *arr, int sizeOfTi); - void arrayPen(Animal *arra, int sizeOfPe); - void arrayTur(Animal *array, int sizeOfTu); - void pickRemove(int &ti, int &pe, int &tu, Animal *arr, Animal *arra, Animal *array); - void whoHasBaby(int &rTiger, int &rPenguin, int &rTurtle, Animal *arr, Animal *arra, Animal *array); }; diff --git a/Zoo.cpp b/Zoo.cpp index 5e11cba..0009bee 100644 --- a/Zoo.cpp +++ b/Zoo.cpp @@ -9,13 +9,15 @@ #include "Zoo.h" #include "Animal.h" #include "inputVal.h" -#include -#include #include "Tiger.h" #include "Penguin.h" #include "Turtle.h" #include "DArray.h" +#include +#include #include +#include +#include Zoo::Zoo()=default; Zoo::~Zoo()=default; @@ -86,25 +88,25 @@ void Zoo::play(){ DArray room; room.setRoomOfTi(10); - //Tiger * arrayOfTi = new Tiger(); - //Tiger * arrayOfTi = new Tiger[room.getRoomOfTi()]; - Animal * arrayOfTi = new Tiger[room.getRoomOfTi()]; + + Tiger * arrayOfTi = new Tiger[room.getRoomOfTi()]; + //Animal * arrayOfTi = new Tiger[room.getRoomOfTi()]; for(int i=0; i>option; + feedOpt = inputVal(option); + + if(!(feedOpt ==1 || feedOpt ==2 || feedOpt ==3)) { + + do{ + std::cin.clear(); + std::cin.ignore(INT_MAX, '\n'); + std::cout<<"Wrong input. You should input 1,2,or 3. Please try again: "; + std::cin>>option; + feedOpt = inputVal(option); + + }while(!(feedOpt ==1 || feedOpt ==2 || feedOpt ==3)); + } + //Feed the animals and deduct the cost from the account. costPerDay = (numOfTig*baseCost*5)+(numOfPeng*baseCost)+(numOfTurt*baseCost*0.5); - std::cout<<"Today's feeding cost is "< dist(1, 3); - event = dist(mt); + if (feedOpt == 1) { + + std::cout<<"\nYou chose cheap feeding option!"< dist7(0, 5); + cheapOpt = dist7(mt); + + event = dice[cheapOpt]; + } + + else if (feedOpt == 3) { + + std::cout<<"\nYou chose premium feeding option!"< dist8(0, 5); + premOpt = dist8(mt); + + event = dice2[premOpt]; + } + + else{ // feedOpt == 2 + + std::cout<<"\nYou chose generic feeding option!"< dist(1, 3); + event = dist(mt); + + } + + std::cout< dist3(250, 500); bonus= dist3(mt); @@ -245,35 +326,37 @@ void Zoo::play(){ bonus = (bonus*numOfTig); //bonus * number of tiger } - //This event gives babies to the animal, "event ==3" - else{ + else{//This event gives babies to the animal, "event ==3" - room.whoHasBaby(numOfTig, numOfPeng, numOfTurt, arrayOfTi, arrayOfPe, arrayOfTur); + text<<"'Congratulations! One of your animal is going to be a mom or dad!'\n"<>buyNewOne; @@ -295,7 +378,7 @@ void Zoo::play(){ double buyChoice; int buyOneMore; std::cout - << "So, you want to buy. Good! which animal will you buy; input 1 for Tiger, 2 for Penguin, and 3 for Turtle: "; + << "\nSo, you want to buy. Good! which animal will you buy; input 1 for Tiger, 2 for Penguin, and 3 for Turtle: "; std::cin >> buyChoice; buyOneMore = inputVal(buyChoice); @@ -358,10 +441,10 @@ void Zoo::play(){ else //(buyNew ==2) { - std::cout<<"so you don't want to buy more. That's fine."<>playAgain; std::cout< 0); if (account < 0){ - std::cout<<"I'm sorry, but your account is empty. Play next time. Good buy!"<