8ca790736806260c389cbc463c05abcf73a88194
[IRC.git] / Robust / src / Benchmarks / MMG / Java / MMG.java
1 public class MMG {\r
2     public MMG() {}\r
3     \r
4     public static void main(String[] args) {\r
5         MMG mmg = new MMG();\r
6         \r
7         //System.printString("Startup\n");\r
8         int nrofpacs = 4;\r
9         int nrofghosts = 8;\r
10         Map map = new Map(nrofpacs, nrofghosts);\r
11         \r
12         // Initiate the map\r
13         map.init();\r
14         //System.printString("Init finish\n");\r
15         int i = 0;\r
16         // create ghosts\r
17         for(i = 0; i < map.m_nrofghosts; i++) {\r
18             Ghost ghost = new Ghost(7, 7, map);\r
19             ghost.m_index = i;\r
20             map.placeGhost(ghost);\r
21             map.m_ghosts[i] = ghost;\r
22         }\r
23         // create pacmen\r
24         int tx = 14;\r
25         int ty = 14;\r
26         for(i = 0; i < map.m_nrofpacs; i++) {\r
27             Pacman pacman = new Pacman(5, 7, map);\r
28             pacman.setTarget(tx*(i/2), ty*(i%2));\r
29             pacman.m_index = i;\r
30             map.placePacman(pacman);\r
31             map.m_desX[i] = tx*(i/2);\r
32             map.m_desY[i] = ty*(i%2);\r
33             map.m_pacmen[i] = pacman;\r
34             //System.printString("destination: " + map.desX[i] + "," + map.desY[i] + "\n");\r
35         }\r
36 \r
37         map.m_ghostcount = 0;\r
38         map.m_paccount = 0;\r
39         \r
40         while(map.m_nrofpacs > 0) {\r
41             // try to move ghost\r
42             for(i = 0; i < nrofghosts; i++) {\r
43                 map.m_ghosts[i].tryMove();\r
44             }\r
45             // try to move pacmen\r
46             for(i = 0; i < nrofpacs; i++) {\r
47                 if(map.m_pacMenX[i] != -1) {\r
48                     map.m_pacmen[i].tryMove();\r
49                 }\r
50             }\r
51             \r
52             // update ghosts\r
53             for(i = 0; i < nrofghosts; i++) {\r
54                 map.m_ghosts[i].doMove();\r
55                 map.placeGhost(map.m_ghosts[i]);\r
56             }\r
57             /*for(i = 0; i < nrofghosts; i++) {\r
58                 System.printString("(" + map.m_ghostsX[i] + "," + map.m_ghostsY[i] + ") ");\r
59             }\r
60             System.printString("\n");*/\r
61             // update pacmen\r
62             for(i = 0; i < nrofpacs; i++) {\r
63                 if(map.m_pacMenX[i] != -1) {\r
64                     map.m_pacmen[i].doMove();\r
65                     map.placePacman(map.m_pacmen[i]);\r
66                     //System.printString("Pacman " + map.m_pacmen[i].m_index + ": (" + map.m_pacMenX[map.m_pacmen[i].m_index] + "," + map.m_pacMenY[map.m_pacmen[i].m_index] + ")\n");\r
67                     boolean death = map.check(map.m_pacmen[i]);\r
68                     /*if(death) {\r
69                         System.printString("Pacman " + map.m_pacmen[i].m_index + " caught!\n");\r
70                     } */\r
71                 }\r
72             }\r
73             map.m_nrofpacs -= map.m_deathcount;\r
74             //System.printString(map.m_nrofpacs + " pacmen left. \n");\r
75             \r
76             // reset for next run\r
77             map.m_paccount = 0;\r
78             map.m_deathcount = 0;\r
79         }\r
80         \r
81         System.printString("Finish\n");\r
82     }\r
83 }\r