b82e07e6aa03717c2d6dcde530210b729cfc4c70
[IRC.git] / Robust / src / Benchmarks / MMG / Java / Map.java
1 public class Map {    \r
2     public int[] map;\r
3     public int[] pacMenX;\r
4     public int[] pacMenY;\r
5     public int[] ghostsX;\r
6     public int[] ghostsY;\r
7     public int[] targets;\r
8     public int[] desX;\r
9     public int[] desY;\r
10     public Ghost[] ghosts;\r
11     public Pacman[] pacmen;\r
12     \r
13     public int nrofghosts;\r
14     public int nrofpacs;\r
15     private int nrofblocks;\r
16     //public boolean toupdate;\r
17     public int ghostcount;\r
18     public int paccount;\r
19     public int deathcount;\r
20     \r
21     public Random r;\r
22     \r
23     public Map(int nrofpacs, int nrofghosts) {\r
24         //System.printString("step 1\n");\r
25         this.nrofblocks = 15;\r
26         this.map = new int[this.nrofblocks*this.nrofblocks];\r
27         this.nrofpacs = nrofpacs;\r
28         this.nrofghosts = nrofghosts;\r
29         this.pacMenX = new int[this.nrofpacs];\r
30         this.pacMenY = new int[this.nrofpacs];\r
31         this.ghostsX = new int[this.nrofghosts];\r
32         this.ghostsY = new int[this.nrofghosts];\r
33         this.targets = new int[this.nrofghosts];\r
34         this.desX = new int[this.nrofpacs];\r
35         this.desY = new int[this.nrofpacs];\r
36         this.ghosts = new Ghost[this.nrofghosts];\r
37         this.pacmen = new Pacman[this.nrofpacs];\r
38         //this.toupdate = false;\r
39         this.ghostcount = 0;\r
40         this.paccount = 0;\r
41         this.deathcount = 0;\r
42         this.r = new Random();\r
43         \r
44         //System.printString("step 2\n");\r
45         for(int i = 0; i < this.nrofpacs; i++) {\r
46             this.pacMenX[i] = this.pacMenY[i] = -1;\r
47             this.desX[i] = this.desY[i] = -1;\r
48             this.pacmen[i] = null;\r
49         }\r
50         //System.printString("step 3\n");\r
51         for(int i = 0; i < this.nrofghosts; i++) {\r
52             this.ghostsX[i] = this.ghostsY[i] = -1;\r
53             this.targets[i] = -1;\r
54             this.ghosts[i] = null;\r
55         }\r
56         //System.printString("step 4\n");\r
57     }\r
58     \r
59     public void init() {\r
60         int i = 0;\r
61         this.map[i++]=3;this.map[i++]=10;this.map[i++]=10;this.map[i++]=6;this.map[i++]=9;this.map[i++]=12;this.map[i++]=3;this.map[i++]=10;this.map[i++]=6;this.map[i++]=9;this.map[i++]=12;this.map[i++]=3;this.map[i++]=10;this.map[i++]=10;this.map[i++]=6;\r
62         this.map[i++]=5;this.map[i++]=11;this.map[i++]=14;this.map[i++]=1;this.map[i++]=10;this.map[i++]=10;this.map[i++]=4;this.map[i++]=15;this.map[i++]=1;this.map[i++]=10;this.map[i++]=10;this.map[i++]=4;this.map[i++]=11;this.map[i++]=14;this.map[i++]=5;\r
63         this.map[i++]=1;this.map[i++]=10;this.map[i++]=10;this.map[i++]=4;this.map[i++]=11;this.map[i++]=6;this.map[i++]=1;this.map[i++]=10;this.map[i++]=4;this.map[i++]=3;this.map[i++]=14;this.map[i++]=1;this.map[i++]=10;this.map[i++]=10;this.map[i++]=4;\r
64         this.map[i++]=5;this.map[i++]=3;this.map[i++]=6;this.map[i++]=9;this.map[i++]=6;this.map[i++]=5;this.map[i++]=5;this.map[i++]=7;this.map[i++]=5;this.map[i++]=5;this.map[i++]=3;this.map[i++]=12;this.map[i++]=3;this.map[i++]=6;this.map[i++]=5;\r
65         this.map[i++]=5;this.map[i++]=9;this.map[i++]=8;this.map[i++]=14;this.map[i++]=5;this.map[i++]=13;this.map[i++]=5;this.map[i++]=5;this.map[i++]=5;this.map[i++]=13;this.map[i++]=5;this.map[i++]=11;this.map[i++]=8;this.map[i++]=12;this.map[i++]=5;\r
66         this.map[i++]=9;this.map[i++]=2;this.map[i++]=10;this.map[i++]=2;this.map[i++]=8;this.map[i++]=2;this.map[i++]=12;this.map[i++]=5;this.map[i++]=9;this.map[i++]=2;this.map[i++]=8;this.map[i++]=2;this.map[i++]=10;this.map[i++]=2;this.map[i++]=12;\r
67         this.map[i++]=6;this.map[i++]=5;this.map[i++]=7;this.map[i++]=5;this.map[i++]=7;this.map[i++]=5;this.map[i++]=11;this.map[i++]=8;this.map[i++]=14;this.map[i++]=5;this.map[i++]=7;this.map[i++]=5;this.map[i++]=7;this.map[i++]=5;this.map[i++]=3;\r
68         this.map[i++]=4;this.map[i++]=5;this.map[i++]=5;this.map[i++]=5;this.map[i++]=5;this.map[i++]=5;this.map[i++]=10;this.map[i++]=10;this.map[i++]=10;this.map[i++]=5;this.map[i++]=5;this.map[i++]=5;this.map[i++]=5;this.map[i++]=5;this.map[i++]=1;\r
69         this.map[i++]=12;this.map[i++]=5;this.map[i++]=13;this.map[i++]=5;this.map[i++]=13;this.map[i++]=5;this.map[i++]=11;this.map[i++]=10;this.map[i++]=14;this.map[i++]=5;this.map[i++]=13;this.map[i++]=5;this.map[i++]=13;this.map[i++]=5;this.map[i++]=9;\r
70         this.map[i++]=3;this.map[i++]=8;this.map[i++]=10;this.map[i++]=8;this.map[i++]=10;this.map[i++]=0;this.map[i++]=10;this.map[i++]=2;this.map[i++]=10;this.map[i++]=0;this.map[i++]=10;this.map[i++]=8;this.map[i++]=10;this.map[i++]=8;this.map[i++]=6;\r
71         this.map[i++]=5;this.map[i++]=3;this.map[i++]=2;this.map[i++]=2;this.map[i++]=6;this.map[i++]=5;this.map[i++]=15;this.map[i++]=5;this.map[i++]=15;this.map[i++]=5;this.map[i++]=3;this.map[i++]=2;this.map[i++]=2;this.map[i++]=6;this.map[i++]=5;\r
72         this.map[i++]=5;this.map[i++]=9;this.map[i++]=8;this.map[i++]=8;this.map[i++]=4;this.map[i++]=1;this.map[i++]=10;this.map[i++]=8;this.map[i++]=10;this.map[i++]=4;this.map[i++]=1;this.map[i++]=8;this.map[i++]=8;this.map[i++]=12;this.map[i++]=5;\r
73         this.map[i++]=1;this.map[i++]=10;this.map[i++]=10;this.map[i++]=6;this.map[i++]=13;this.map[i++]=5;this.map[i++]=11;this.map[i++]=2;this.map[i++]=14;this.map[i++]=5;this.map[i++]=13;this.map[i++]=3;this.map[i++]=10;this.map[i++]=10;this.map[i++]=4;\r
74         this.map[i++]=5;this.map[i++]=11;this.map[i++]=14;this.map[i++]=1;this.map[i++]=10;this.map[i++]=8;this.map[i++]=6;this.map[i++]=13;this.map[i++]=3;this.map[i++]=8;this.map[i++]=10;this.map[i++]=4;this.map[i++]=11;this.map[i++]=14;this.map[i++]=5;\r
75         this.map[i++]=9;this.map[i++]=10;this.map[i++]=10;this.map[i++]=12;this.map[i++]=3;this.map[i++]=6;this.map[i++]=9;this.map[i++]=10;this.map[i++]=12;this.map[i++]=3;this.map[i++]=6;this.map[i++]=9;this.map[i++]=10;this.map[i++]=10;this.map[i++]=12; // 15*15    \r
76     } \r
77 \r
78     public void placePacman(Pacman t) {\r
79         this.pacMenX[t.index] = t.x;\r
80         this.pacMenY[t.index] = t.y;\r
81         //this.map[t.y * this.nrofblocks + t.x - 1] |= 16;\r
82         this.paccount++;\r
83     }\r
84     \r
85     public void placeGhost(Ghost t) {\r
86         this.ghostsX[t.index] = t.x;\r
87         this.ghostsY[t.index] = t.y;\r
88         //this.map[t.y * this.nrofblocks + t.x - 1] |= 32;\r
89         this.ghostcount++;\r
90     }\r
91     \r
92     public boolean check(Pacman t) {\r
93         boolean death = false;\r
94         int i = 0;\r
95         while((!death) && (i < this.nrofghosts)) {\r
96             if((t.x == this.ghostsX[i]) && (t.y == this.ghostsY[i])) {\r
97                 death = true;\r
98             }\r
99             i++;\r
100         }\r
101         if((!death) && (t.x == t.tx) && (t.y == t.ty)) {\r
102             // reach the destination\r
103             //System.printString("Hit destination!\n");\r
104             death = true;\r
105         }\r
106         if(death) {\r
107             // pacman caught by ghost\r
108             // set pacman as death\r
109             t.death = true;\r
110             // kick it out\r
111             //this.map[t.y * this.nrofblocks + t.x - 1] -= 16;\r
112             this.deathcount++;\r
113             this.pacMenX[t.index] = -1;\r
114             this.pacMenY[t.index] = -1;\r
115         }\r
116         return death;\r
117     }\r
118     \r
119     public boolean isfinish() {\r
120         return nrofpacs == 0;\r
121     }\r
122 }