Home | JSP | EJB | JDBC | Java Servlets | WAP  | Free JSP Hosting  | Spring Framework | Web Services | BioInformatics | Java Server Faces | Jboss 3.0 tutorial | Hibernate 3.0 | XML

Tutorial Categories: Ajax | Articles | JSP | Bioinformatics | Database | Free Books | Hibernate | J2EE | J2ME | Java | JavaScript | JDBC | JMS | Linux | MS Technology | PHP | RMI | Web-Services | Servlets | Struts | UML


 

Java Tutorials


 

 

Struts Tutorials

Struts Resources

Visit Forum! Post Questions!
Jobs At RoseIndia.net!

Java Notes

Programming: Kingdom - Solution

  1 
  2 
  3 
  4 
  5 
  6 
  7 
  8 
  9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
 18 
 19 
 20 
 21 
 22 
 23 
 24 
 25 
 26 
 27 
 28 
 29 
 30 
 31 
 32 
 33 
 34 
 35 
 36 
 37 
 38 
 39 
 40 
 41 
 42 
 43 
 44 
 45 
 46 
 47 
 48 
 49 
 50 
 51 
 52 
 53 
 54 
 55 
 56 
 57 
 58 
 59 
 60 
 61 
 62 
 63 
 64 
 65 
 66 
 67 
 68 
 69 
 70 
 71 
// File   : oop/Kingdom.java
// Purpose: Represents a "kingdom".
// Author : Fred Swartz
// Date   : 05 May 2005

class Kingdom {
    //============================================================== constants
    public static int MIN_GRAIN_TO_SURVIVE = 20;
    public static int MAX_LAND_FARMABLE_PER_PERSON = 10;
    public static int SEED_REQUIRED_PER_ACRE = 2;
    
    //===================================================== instance variables
    private int myPopulation =  100;
    private int myGrain      = 3000;
    private int myArea       = 1000;
    
    //========================================================== getPopulation
    public int getPopulation() {
        return myPopulation;
    }
    
    //=============================================================== getGrain
    public int getGrain() {
        return myGrain;
    }
    
    //================================================================ getArea
    public int getArea() {
        return myArea;
    }
    
    //================================================== getAmountOfFoodNeeded
    public int getAmountOfFoodNeeded() {
        return myPopulation * MIN_GRAIN_TO_SURVIVE;
    }
    
    //=================================================== getMaximumUsableSeed
    /** Compute the maximum number of bushels of seed that can be used
     *  based on the number of peasants for farming, and the amount of
     *  land.
     */
    public int getMaximumUsableSeed() {
        int peasantFarmableArea = myPopulation * MAX_LAND_FARMABLE_PER_PERSON;
        int maxFarmableArea = Math.min(myArea, peasantFarmableArea);
        return SEED_REQUIRED_PER_ACRE * maxFarmableArea;
    }
    
    //======================================================== simulateOneYear
    public void simulateOneYear(int food, int seed) {
        //... Don't allow illegal parameter values.  These values
        //    should have been checked before calling this method.
        //    Bad values should have been corrected in the user interface.
        assert food >= 0 && seed >= 0 : "simulateOneYear negative values.";
        assert food + seed <= myGrain : "simulateOneYear parameters too large.";
        
        //... Remove the requested amount of grain from storage
        myGrain = myGrain - food - seed;
        
        //... Compute the random harvest.
        int usableSeed = Math.min(seed, getMaximumUsableSeed());
        int acresPlanted = usableSeed / SEED_REQUIRED_PER_ACRE;
        int yieldPerAcre = 2 + (int)(5 * Math.random());
        int harvest = yieldPerAcre * acresPlanted;
        
        //... Compute the new population
        myPopulation = myPopulation * food / getAmountOfFoodNeeded();
        
        //... Add the new havest to the grain in storage.
        myGrain += harvest;
    }
}
Ask programming questions?

 

 

Add This Tutorial To:
  Del.icio.us   Digg   Google   Spurl   Blink   Furl   Simpy   Y! MyWeb 

Current Comments

0 comments so far (post your own) View All Comments Latest 10 Comments:
  JDO Tutorials
  EAI Articles
  Struts Tutorials
  Java Tutorials
  Java Certification

Tell A Friend
Your Friend Name

 

 
Browse all Java Tutorials
Java JSP Struts Servlets Hibernate XML
Ajax JDBC EJB MySQL JavaScript JSF
Maven2 Tutorial JEE5 Tutorial Java Threading Tutorial Photoshop Tutorials Linux Technology
Technology Revolutions Eclipse Spring Tutorial Bioinformatics Tutorials Tools SQL
 

Home | JSP | EJB | JDBC | Java Servlets | WAP  | Free JSP Hosting  | Search Engine | News Archive | Jboss 3.0 tutorial | Free Linux CD's | Forum | Blogs

About Us | Advertising On RoseIndia.net  | Site Map

India News

Send your comments, Suggestions or Queries regarding this site at roseindia_net@yahoo.com.

Copyright 2007. All rights reserved.

[an error occurred while processing this directive]