Преглед изворни кода

synchronized and README

master
Pierre-Antoine 'ZHAJOR' Tible пре 7 година
родитељ
комит
7ae504a18e

+ 12
- 0
README Прегледај датотеку

1
+Membres :
2
+Antoine Cormery
3
+Robin Thoni
4
+Pierre-Antoine Tible
5
+
6
+Instructions:
7
+1/ Mettre le nombre de piegons désirés dans la classe Main, par défaut 10
8
+2/ Compiler
9
+3/ Lancer le programme
10
+4/ Cliquer pour ajouter de la nourriture. Il est possible d'ajouter plusieurs nourritures en même temps.
11
+Les pigeons vont vers celle la plus proche d'eux.
12
+Les piegons se déplacent également de temps en temps de manière aléatoire.

+ 7
- 6
src/com/rthoni/uqac/pigeon/Game.java Прегледај датотеку

29
             p.start();
29
             p.start();
30
         }
30
         }
31
         this.createTimer();
31
         this.createTimer();
32
-        this.setDoubleBuffered(false);
33
     }
32
     }
34
 
33
 
35
     /**
34
     /**
46
         }
45
         }
47
         g2d.setColor(Color.BLUE);
46
         g2d.setColor(Color.BLUE);
48
         // Draw foods
47
         // Draw foods
49
-        for (Food food : this.foods) {
50
-            g2d.fillRect(food.getX(), food.getY(), 15, 15);
48
+        synchronized (this) {
49
+            for (Food food : this.foods) {
50
+                g2d.fillRect(food.getX(), food.getY(), 15, 15);
51
+            }
51
         }
52
         }
52
     }
53
     }
53
 
54
 
57
     }
58
     }
58
 
59
 
59
     @Override
60
     @Override
60
-    public void mousePressed(MouseEvent e) {
61
+    public synchronized void mousePressed(MouseEvent e) {
61
         this.foods.add(new Food(e.getX(), e.getY()));
62
         this.foods.add(new Food(e.getX(), e.getY()));
62
     }
63
     }
63
 
64
 
80
         return this.foods;
81
         return this.foods;
81
     }
82
     }
82
 
83
 
83
-    public void setFoods(List<Food> foods){
84
-        this.foods = foods;
84
+    public synchronized void removeFood(Food food){
85
+        this.foods.remove(food);
85
     }
86
     }
86
 
87
 
87
     private void createTimer(){
88
     private void createTimer(){

+ 1
- 0
src/com/rthoni/uqac/pigeon/Main.java Прегледај датотеку

17
         frame.setSize(800, 800);
17
         frame.setSize(800, 800);
18
         frame.setResizable(false);
18
         frame.setResizable(false);
19
         frame.setVisible(true);
19
         frame.setVisible(true);
20
+        // 10 pigeons
20
         frame.add(new Game(10));
21
         frame.add(new Game(10));
21
     }
22
     }
22
 
23
 

+ 1
- 2
src/com/rthoni/uqac/pigeon/Pigeon.java Прегледај датотеку

52
                 if (distance != -1 && distance <= Pigeon.speed) {
52
                 if (distance != -1 && distance <= Pigeon.speed) {
53
                     this.x = best.getX();
53
                     this.x = best.getX();
54
                     this.y = best.getY();
54
                     this.y = best.getY();
55
-                    foods.remove(best);
56
-                    game.setFoods(foods);
55
+                    game.removeFood(best);
57
                     System.out.print("Eat by " + this.name + "\n");
56
                     System.out.print("Eat by " + this.name + "\n");
58
                 }
57
                 }
59
                 else if (distance != -1){
58
                 else if (distance != -1){

Loading…
Откажи
Сачувај