前提
現在、Javaで食物連鎖のシミュレーターを作っているんですが、そのシミュレーターで得たデータの表示の仕方を考えています。
シミュレーターは、非常に簡単な作りで、何日後か打つと、決めた個体数の初期値からすでに決められたルールの足し引きの計算が行われ、その日数後の個体の残りの数が出力されるというものです。
実現したいこと
このシミュレーターで例えば、100日後の結果を出力したとします。そこで、個体数の偏移がわかるように何日か毎の個体数を配列などで出力したいと考えています。
食物連鎖のソースコード
Java
1import java.util.Scanner; 2 3class AnimalNo { 4 private int lion; 5 private int rabbit; 6 private int grass; 7 8 AnimalNo(int lionNo, int rabbitNo, int grassNo) { 9 lion = lionNo; 10 rabbit = rabbitNo; 11 grass = grassNo; 12 } 13 14 int getLionNo(){ 15 return lion; 16 } 17 int getRabbitNo(){ 18 return rabbit; 19 } 20 int getGrassNo(){ 21 return grass; 22 } 23} 24 25class Foodchain { 26 27 public static void main(String[] args) { 28 System.out.println("~食物連鎖シミュレーション~"); 29 System.out.println("※詳しいルール(きめごと)はRULE.txtをお読みください。※") ; 30 System.out.println("動物の個体数の初期値を決めてくだい。(ライオン、うさぎ、草の順番に)"); 31 Scanner stdIn = new Scanner(System.in); 32 int lion_f = stdIn.nextInt() ; 33 int rabbit_f = stdIn.nextInt() ; 34 int grass_f = stdIn.nextInt() ; 35 36 AnimalNo initial = new AnimalNo(lion_f, rabbit_f, grass_f); 37 38 System.out.println("何日後のシミューレーションを行うか入力してください。"); 39 int day = stdIn.nextInt() ; 40 System.out.print(day + "日後...") ; 41 42 int lion_eat = day/3 ; 43 int lion_de = day/20 ; 44 int lion_after = initial.getLionNo() - lion_de + lion_eat ; 45 46 int grass_in = day*15 ; 47 int grass_de = (day/3)*5 ; 48 int grass_after = initial.getRabbitNo() - grass_de + grass_in ; 49 50 int rabbit_eat = day/1 ; 51 int rabbit_de = day/50 + (day/1)*1 ; 52 int rabbit_after = initial.getRabbitNo() - rabbit_de + rabbit_eat ; 53 int rabbit_after2; 54 if (grass_after < 0) 55 rabbit_after2 = rabbit_after - (day - 18)*2 ; 56 else rabbit_after2 = rabbit_after + 0 ; 57 58 if (lion_after < 0) { 59 System.out.println("ライオンが絶滅しました。" + "プログラムを終了します。") ; 60 System.exit(0); 61 }else if (rabbit_after < 0) { 62 System.out.println("うさぎが絶滅しました。" + "プログラムを終了します。") ; 63 System.exit(0); 64 }else if (rabbit_after2 < 0) { 65 System.out.println("うさぎが絶滅しました。" + "プログラムを終了します。") ; 66 System.exit(0); 67 }else{ 68 System.out.println("ライオン:"+lion_after+"うさぎ:"+rabbit_after2+"草"+grass_after) ; 69 } 70 } 71 }
何か良い出力の仕方はないでしょうか。よろしくお願いします。