-
Notifications
You must be signed in to change notification settings - Fork 1
/
World.java
120 lines (98 loc) · 2.91 KB
/
World.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
import java.util.ArrayList;
//c[0] är namn
//c[1] är direction
public class World {
ArrayList<Snake> snake = new ArrayList();
volatile Fruit fruit = new Fruit(800, 600);
char eater = 'z';
public World() {
}
public void addSnake(char name, String pName) {
int startX = 20;
int startY = 20;
int noSnakes = snake.size();
int uNames = noSnakes;
switch (noSnakes) {
case 0:
startX = 20;
startY = 20;
break;
case 1:
startX = 20;
startY = 160;
break;
case 2:
startX = 20;
startY = 300;
break;
case 3:
startX = 20;
startY = 440;
break;
default:
System.out.println("Fel antal snakes");
break;
}
Snake a = new Snake(name, pName, startX, startY);
for (int i = 0; i < snake.size(); i++) {
if (snake.get(i).getName() != name) {
uNames -= 1;
} else {
System.out.println(name + " finns redan");
}
}
if (uNames == 0) {
snake.add(a);
System.out.println("Skapar en ny orm");
}
}
//sätter ny riktning och flyttar ormen
public void updatePosition(char c[]) {
for (int i = 0; i < snake.size(); i++) {
if (snake.get(i).getName() == c[0]) {
snake.get(i).setDirection(c[1]);
snake.get(i).move();
break;
}
}
for (int i = 0; i < snake.size(); i++) {
if (eat(snake.get(i))) {
fruit.respawn();
eater = snake.get(i).getName();
snake.get(i).grow();
System.out.println("frukten åts av " + eater);
break;
}
}
}
//Tittar om en orm åt en frukt
public boolean eat(Snake s) {
int nBalls = s.getSize();
int xHead = s.getSnakeX().get(nBalls - 1);
int yHead = s.getSnakeY().get(nBalls - 1);
if (xHead == fruit.getxFruit() && yHead == fruit.getyFruit()) {
return true;
}
return false;
}
public String response() {
String data = "";
//den som åt
data += this.eater + ";";
//frukten
data += fruit.getxFruit() + ";";
data += fruit.getyFruit() + ";";
//ormarna
for (int i = 0; i < snake.size(); i++) {
data += snake.get(i).getName() + ";";
data += snake.get(i).getHead();
}
return data;
}
public ArrayList<Snake> getSnakes() {
return this.snake;
}
public String getFruit() {
return "" + fruit.getxFruit() + ";" + fruit.getyFruit() + ";";
}
}