Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package Zombie2021;
- public class Apoc {
- private int numZombies;
- private int daysLeft;
- private Person p;
- public Apoc(int days, Person p){
- this.p=p;
- daysLeft=days;
- }
- public void runSimulation(){
- //while( days and food and people are left){
- // eat
- // fight
- // }
- //resolve victory conditions
- }
- public void eatFood(){
- //access person object and remove food
- }
- public boolean fight(){
- boolean peopleLeft=p.getPersonCount()>0;
- //generate zombies
- numZombies=Utilities.randomInRange(10,25);
- //if(ammo left){
- // gunfight()
- // }
- //else{
- // bluntfight()
- // }
- peopleLeft=p.getPersonCount()>0;
- return peopleLeft;
- }
- public boolean gunFight(int numZed){
- //fight until all zombies are dead
- //person shoots
- int zHits=0;
- while(numZed>0&&p.getPersonCount()>0){
- if(p.getAmmo()>0) {//shoot
- p.setAmmo(p.getAmmo()-1);//consume ammo
- if (Utilities.randomInRange(1,5)==2) {//hit
- zHits++;
- if(Utilities.randomInRange(1,3)==1||zHits==2){
- numZed--;
- zHits=0;
- }
- }else{//miss with gun
- if(Utilities.randomInRange(1,3)==1){
- p.killPerson();
- }
- }//end gun miss
- }else{//no ammo do blunt fight
- return bluntFight(numZed);
- }
- }
- return p.getPersonCount()>0;
- }
- public boolean bluntFight(int numZed){
- int zHits=0;
- while(p.getPersonCount()>0&&numZed>0){//each iteration is a single hit
- if(Utilities.randomInRange(1,3)==1){
- zHits++;
- if(Utilities.randomInRange(1,10)==1 || zHits==3){
- numZed--;
- zHits=0;
- }
- }else{//miss
- if(Utilities.randomInRange(1,2)==1){
- p.killPerson();
- }//person dies
- }//end miss
- }//end fight loop
- return p.getPersonCount()>0;
- }//end blunt fight
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement