helpful progress reporting
[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("Task 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         //System.printString("Task initMap\n");\r
14         map.init();\r
15         //System.printString("Init finish\n");\r
16         int i = 0;\r
17         // create ghosts\r
18         for(i = 0; i < map.m_nrofghosts; i++) {\r
19             Ghost ghost = new Ghost(7, 7, map);\r
20             ghost.m_index = i;\r
21             map.placeGhost(ghost);\r
22             map.m_ghosts[i] = ghost;\r
23         }\r
24         // create pacmen\r
25         int tx = 14;\r
26         int ty = 14;\r
27         for(i = 0; i < map.m_nrofpacs; i++) {\r
28             Pacman pacman = new Pacman(5, 7, map);\r
29             pacman.setTarget(tx*(i/2), ty*(i%2));\r
30             pacman.m_index = i;\r
31             map.placePacman(pacman);\r
32             map.m_desX[i] = tx*(i/2);\r
33             map.m_desY[i] = ty*(i%2);\r
34             map.m_pacOriX[i] = pacman.m_locX;\r
35             map.m_pacOriY[i] = pacman.m_locY;\r
36             map.m_leftLives[i] = map.m_leftLevels[i] = 20;\r
37             pacman.m_leftLives = pacman.m_leftLevels = 20;\r
38             map.m_pacmen[i] = pacman;\r
39             //System.printString("destination: " + map.desX[i] + "," + map.desY[i] + "\n");\r
40         }\r
41 \r
42         map.m_ghostcount = 0;\r
43         map.m_paccount = 0;\r
44         \r
45         while(map.m_nrofpacs > 0) {\r
46             // try to move ghost\r
47             for(i = 0; i < nrofghosts; i++) {\r
48                 //System.printString("Task moveGhost\n");\r
49                 map.m_ghosts[i].tryMove();\r
50             }\r
51             // try to move pacmen\r
52             for(i = 0; i < nrofpacs; i++) {\r
53                 if(map.m_pacMenX[i] != -1) {\r
54                     //System.printString("Task movePacman\n");\r
55                     map.m_pacmen[i].tryMove();\r
56                 }\r
57             }\r
58             \r
59             // update ghosts\r
60             for(i = 0; i < nrofghosts; i++) {\r
61                 //System.printString("Task updateGhost\n");\r
62                 map.m_ghosts[i].doMove();\r
63                 map.placeGhost(map.m_ghosts[i]);\r
64             }\r
65             /*for(i = 0; i < nrofghosts; i++) {\r
66                 System.printString("(" + map.m_ghostsX[i] + "," + map.m_ghostsY[i] + ") ");\r
67             }\r
68             System.printString("\n");*/\r
69             // update pacmen\r
70             for(i = 0; i < nrofpacs; i++) {\r
71                 if(map.m_pacMenX[i] != -1) {\r
72                     //System.printString("Task updatePac\n");\r
73                     map.m_pacmen[i].doMove();\r
74                     map.placePacman(map.m_pacmen[i]);\r
75                     //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
76                     boolean death = map.check(map.m_pacmen[i]);\r
77                 }\r
78             }\r
79             map.m_nrofpacs -= map.m_deathcount;\r
80             //System.printString(map.m_nrofpacs + " pacmen left. \n");\r
81             \r
82             // reset for next run\r
83             //System.printString("Task next\n");\r
84             map.m_paccount = 0;\r
85             map.m_deathcount = 0;\r
86         }\r
87         \r
88         //System.printString("Task Finish\n");\r
89     }\r
90 }\r