Стоит задача создать игру: есть поле 100х100, на котором рандомно появляются 2 мыши и начинают бежать по диагонали. Также на поле появляются 18 кустов. Когда мышь (любая) встречает на пути куст (раньше другой мыши) - она выигрывает. Я создал 3 Класса: В первом описал мышь и создал её метод: бег.
package hardcore;
import java.util.Random;
public class Mouse {
private int startX;
private int startY;
private String mouseName;
private String mouseColour;
private int veter;
public int count = 1;
public Mouse(String mouseName) {
Random rand = new Random();
startY = rand.nextInt(100);
startX = rand.nextInt(100);
this.mouseName = this.mouseName;
this.mouseColour = "white";
}
public void run() {
while (count > 0) {
a:
for (int i = 0; i < 99; i++) {
Random rand = new Random();
startX++;
startY++;
veter = rand.nextInt(1);
if (veter > 0) {
startY += veter;
startX += veter;
}
System.out.println(startX + " " + startY);
if (startY == 99 || startX == 99) {
break a;
}
}
if (startY == 99) {
Random rand = new Random();
b:
for (int i = 0; i < 99; i++) {
startX++;
startY--;
veter = rand.nextInt(1);
if (veter > 0) {
startY -= veter;
startX += veter;
}
System.out.println(startX + " " + startY);
if (startX == 99) {
break b;
}
}
if (startX == 99) {
c:
for (int i = 0; i < 99; i++) {
startX--;
startY--;
veter = rand.nextInt(1);
if (veter > 0) {
startY -= veter;
startX -= veter;
}
System.out.println(startX + " " + startY);
if (startY == 0) {
break c;
}
}
}
if (startY == 0) {
d:
for (int i = 0; i < 99; i++) {
startX--;
startY++;
veter = rand.nextInt(1);
if (veter > 0) {
startY += veter;
startX -= veter;
}
System.out.println(startX + " " + startY);
if (startX == 0) {
break d;
}
}
}
} else {
Random rand = new Random();
if (startX == 99) {
e:
for (int i = 0; i < 99; i++) {
startX--;
startY++;
veter = rand.nextInt(1);
if (veter > 0) {
startY += veter;
startX -= veter;
}
System.out.println(startX + " " + startY);
if (startY == 99) {
break e;
}
}
if (startY == 99) {
f:
for (int i = 0; i < 99; i++) {
startX--;
startY--;
veter = rand.nextInt(1);
if (veter > 0) {
startY -= veter;
startX -= veter;
}
System.out.println(startX + " " + startY);
if (startX == 0) {
break f;
}
}
if (startX == 0) {
g:
for (int i = 0; i < 99; i++) {
startX++;
startY--;
veter = rand.nextInt(1);
if (veter > 0) {
startY -= veter;
startX += veter;
}
System.out.println(startX + " " + startY);
if (startX == 0) {
break g;
}
}
}
}
}
}
count++;
}
}
}
Во втором классе описал куст, создал конструктор и написал метод появления кустов
package hardcore;
import java.util.Random;
public class Kust {
public int x;
public int y;
private String kustColour;
public void born() {
Random random = new Random();
x = random.nextInt(100);
y = random.nextInt(100);
String[] rKustColour = {"red", "blue", "browm", "green", "orange"};
int i = random.nextInt(rKustColour.length);
kustColour = rKustColour[i];
System.out.println("Цвет куста: " + kustColour + "\nКоординаты: " + x + ", " + y);
}
}
В 3-ем классе, основном, я создал 18 кустов, объявил их появление, объявил начало "забега".
package hardcore;
public class Runner {
public static void main(String args[]) {
/* for (int i = 1; i <= 18; i++) {
String name = "kust"+i;
Kust name = new Kust();*/
Kust kust1 = new Kust();
Kust kust2 = new Kust();
Kust kust3 = new Kust();
Kust kust4 = new Kust();
Kust kust5 = new Kust();
Kust kust6 = new Kust();
Kust kust7 = new Kust();
Kust kust8 = new Kust();
Kust kust9 = new Kust();
Kust kust10 = new Kust();
Kust kust11 = new Kust();
Kust kust12 = new Kust();
Kust kust13 = new Kust();
Kust kust14 = new Kust();
Kust kust15 = new Kust();
Kust kust16 = new Kust();
Kust kust17 = new Kust();
Kust kust18 = new Kust();
kust1.born();
kust2.born();
kust3.born();
kust4.born();
kust5.born();
kust6.born();
kust7.born();
kust8.born();
kust9.born();
kust10.born();
kust11.born();
kust12.born();
kust13.born();
kust14.born();
kust15.born();
kust16.born();
kust17.born();
kust18.born();
Mouse mouse1 = new Mouse("Klava");
Mouse mouse2 = new Mouse("Lika");
System.out.println("Бежит мышь 1");
mouse1.run();
System.out.println("Бежит мышь 2");
mouse2.run();
if (mouse1.count > mouse2.count) {
System.out.println("Поебдила мышь 1");
} else {
if (mouse1.count < mouse2.count) {
System.out.println("Поебдила мышь 2");
} else {
System.out.println("Мышки нашли куст одновременно");
}
}
}
}
Теперь я не могу понять каким образом сравнить координаты мышей с координатами кустов. Каким образом их вытащить (координаты кустов) и вставить в мышиный метод с бегом?
Это неполный ответ на ваш вопрос, но вот ответ на вопрос о том, как создать массив кустов.
ArrayList<Kust> kustList = new ArrayList();
for(int i = 0; i < number_of_kusts; i++) {
kustList.add(new Kust("its name +" + i))
kustList.get(i).born();
}
Решение, с помощью массива
Kust[] kustArray = new Kust[your_number_was_18];
for(int i = 0 i < your_number_was_18; i++) {
kustArray[i] = new Kust("your name" + i);
kustArray[i].born();
}
Отличительная особенность листа от массива заключается в том, что у массива вам необходимо заранее указать его размер. В вашем случаи это 18. Массив можно расширять, но это делается с помощью инициализации другого массива, заполнения его, а затем присваивание ссылки нового замест старого.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Что будет со значением переменной, если объявить её в классе (те
Я изучаю SVG, и я хотел бы знать, возможно ли создать такой эффект свечения с SVG, в интерактивном режиме, как в следующем примере- наведение вызывает...
Я новичок в JS и jQueryЧитаю "JavaScript для детей"