Advertisement
Guest User

Untitled

a guest
Dec 9th, 2019
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.98 KB | None | 0 0
  1. import java.util.Random;
  2. import java.util.Date;
  3.  
  4. class CoordinateGenerator {
  5. private Random randomGenerator;
  6. public CoordinateGenerator() {
  7. Date now = new Date();
  8. long sec = now.getTime();
  9. randomGenerator = new Random(sec);
  10.  
  11. }
  12. public int generateX() {
  13. int x = randomGenerator.nextInt(101);
  14. if(x < 5) {
  15. x = 0;
  16. }
  17. else if(x > 95) {
  18. x = 100;
  19. } else {
  20. x = randomGenerator.nextInt(99) + 1;
  21.  
  22. }
  23. return x;
  24.  
  25. }
  26. public int generateY() {
  27. int y = randomGenerator.nextInt(101);
  28. if(y < 5) {
  29. y = 0;
  30.  
  31. }
  32. else if(y > 95) {
  33. y = 50;
  34.  
  35. } else {
  36. y = randomGenerator.nextInt(49) + 1;
  37.  
  38. }
  39. return y;
  40. }
  41. }
  42.  
  43. class Out extends Exception{
  44. public Out(){
  45. super("Mingea este in afara terenului -> Out");
  46.  
  47. }
  48. }
  49.  
  50. class Gol extends Exception{
  51. public Gol(){
  52. super("S-a dat gol -> Gol");
  53. }
  54. }
  55.  
  56. class Corner extends Exception{
  57. public Corner(){
  58. super("Este corner -> Corner");
  59. }
  60. }
  61.  
  62. class Minge{
  63. private CoordinateGenerator c = new CoordinateGenerator();
  64. private int X,Y;
  65. public Minge(int x,int y){
  66. this.X = x;
  67. this.Y = y;
  68. }
  69. public void suteaza() throws Out, Gol, Corner{
  70. X = c.generateX();
  71. Y = c.generateY();
  72. if(Y == 0 || Y == 50)
  73. throw new Out();
  74. else if((X == 0 || X == 100) && (Y >= 20 && Y <= 30))
  75. throw new Gol();
  76. else if((X == 0 || X == 100) && ((Y > 0 && Y<20) || (Y >30 && Y < 50)))
  77. throw new Corner();
  78.  
  79. }
  80. public int getX(){
  81. return X;
  82. }
  83. public int getY(){
  84. return Y;
  85. }
  86. }
  87.  
  88. class Joc{
  89. private String Echipa1,Echipa2;
  90. private int nr_gol1, nr_gol2, nr_out, nr_corner;
  91. public Joc(String e_1, String e_2){
  92. Echipa1 = e_1;
  93. Echipa2 = e_2;
  94. }
  95. public String toString(){
  96. return Echipa1+ " vs " + Echipa2 + " "+ " Scor: " + nr_gol1 + "-" + nr_gol2 + "\nNumar out-uri: " + nr_out + "\nNumar cornere: " + nr_corner;
  97. }
  98. public void simuleaza(){
  99. Minge minge = new Minge(50,25);
  100. int x_temp = 0, y_temp = 0, i;
  101. for(i = 1; i <= 1000; i++)
  102. {
  103. try{
  104. x_temp = minge.getX();
  105. y_temp = minge.getY();
  106. minge.suteaza();
  107. System.out.println(Echipa1 + " - " + Echipa2 + ": Mingea se afla la poz("+ minge.getX() + "," + minge.getY()+")");
  108. } catch(Gol g){
  109. if(minge.getX() == 0)
  110. nr_gol1++;
  111. else
  112. nr_gol2++;
  113. System.out.println(g.getMessage());
  114. Minge m = new Minge(50,25);
  115. } catch(Out o){
  116. nr_out++;
  117. System.out.println(o.getMessage());
  118. Minge m = new Minge(x_temp,y_temp);
  119. } catch(Corner c){
  120. Minge m;
  121. nr_corner++;
  122. System.out.println(c.getMessage());
  123. if(minge.getX() == 0)
  124. if(minge.getY() > 0 && minge.getY() < 20)
  125. m = new Minge(0,0);
  126. else
  127. m = new Minge(10,50);
  128. else
  129. if(minge.getY() > 0 && minge.getY() < 20)
  130. m = new Minge(50,50);
  131. else
  132. m = new Minge(100,100);
  133. }
  134. }
  135. }
  136. }
  137.  
  138.  
  139. class Main{
  140. public static void main(String[] argv){
  141. Joc game = new Joc("Echipa1", "Echipa2");
  142. game.simuleaza();
  143. Joc game2=new Joc("Echipa3","Echipa4");
  144. game2.simuleaza();
  145. System.out.println(game);
  146. System.out.println(game2);
  147. }
  148. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement