Advertisement
Guest User

Untitled

a guest
Feb 28th, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.01 KB | None | 0 0
  1. import java.util.ArrayList;
  2. import java.util.Collections;
  3. import java.util.Comparator;
  4. import java.util.Random;
  5.  
  6. public class main {
  7.  
  8. static int bestMaleBull = 10;
  9.  
  10. public static void main(String[]args){
  11. System.out.println("Breeding cows..");
  12. ArrayList<Cow> cows = new ArrayList<Cow>();
  13. Random r = new Random();
  14.  
  15. //add initial male cow
  16. cows.add(new Cow(10,true));
  17.  
  18. //add initial female cows
  19. for (int i = 0; i < 5; i++) {
  20. cows.add(new Cow(10,false));
  21. }
  22.  
  23. //variables
  24. int x = 9; //Number of generations
  25. int y = 20; //Size of cow herd
  26.  
  27. for (int i = 0; i < x; i++) {
  28.  
  29. //find best male bull
  30. for (int j = 0; j < cows.size(); j++) {
  31. if (cows.get(j).male && cows.get(j).quality > bestMaleBull) {
  32. bestMaleBull = cows.get(j).quality;
  33. }
  34. }
  35.  
  36. //breed all cows
  37. for (int j = 0; j < cows.size(); j++) {
  38. if (!cows.get(j).male) {
  39. float quality = (bestMaleBull+cows.get(j).quality)/2 + r.nextInt(11)-5;
  40. cows.add(new Cow((int) quality,r.nextBoolean()));
  41. }
  42. }
  43.  
  44. //kill bad bulls
  45. for (int j = 0; j < cows.size(); j++) {
  46. if (cows.get(j).male && cows.get(j).quality < bestMaleBull) {
  47. cows.remove(j);
  48. }
  49. }
  50.  
  51. Collections.sort(cows, new Comparator<Cow>() {
  52. @Override
  53. public int compare(Cow o1, Cow o2) {
  54. return o1.quality.compareTo(o2.quality);
  55. }
  56. });
  57.  
  58. //kill cows if herd is above y
  59. while (cows.size() > y) {
  60. cows.remove(0);
  61. }
  62.  
  63. }
  64.  
  65. System.out.println("Cow herd:");
  66. System.out.println("Best Bull = " + bestMaleBull);
  67. for (int i = 0; i < cows.size(); i++) {
  68. System.out.println("Cow #" + i + ": quality = " + cows.get(i).quality);
  69. }
  70.  
  71. }
  72. }
  73.  
  74.  
  75. public class Cow {
  76. public Integer quality;
  77. public boolean male;
  78.  
  79.  
  80. public Cow(int quality, boolean male) {
  81. this.quality = quality;
  82. this.male = male;
  83. }
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement