Skip to content

Commit

Permalink
new solved tasks
Browse files Browse the repository at this point in the history
  • Loading branch information
proshchenkodv committed Aug 21, 2019
1 parent fcc27d1 commit cdd10be
Show file tree
Hide file tree
Showing 7 changed files with 218 additions and 26 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,24 +11,20 @@ public Hippodrome(List horses) {
this.horses = horses;
}

public void run() throws Exception{
public void run() throws Exception {
for (int i = 1; i < 101; i++) {
move();
print();
Thread.sleep(200);
}
}



public void move() {
for (int i = 0; i < getHorses().size(); i++) {
(getHorses()).get(i).move();
}
}



public void print() {
for (int i = 0; i < getHorses().size(); i++) {
(getHorses()).get(i).print();
Expand All @@ -38,13 +34,26 @@ public void print() {
}
}



public List<Horse> getHorses() {
return horses;
}

public static void main(String[] args) throws Exception{
public Horse getWinner() {
int maxdist = 0;
for (int i = 0; i < horses.size() - 1; i++) {

if(horses.get(i).getDistance() > horses.get(i + 1).getDistance()) maxdist = i;
else maxdist=i+1;
}
return horses.get(maxdist);
}

public void printWinner() {

System.out.println("Winner is " + getWinner().name+"!");
}

public static void main(String[] args) throws Exception {
Horse Bella = new Horse("Bella", 3, 0);
Horse Cella = new Horse("Cella", 3, 0);
Horse Della = new Horse("Della", 3, 0);
Expand All @@ -54,6 +63,7 @@ public static void main(String[] args) throws Exception{
newhorse.add(Della);
game = new Hippodrome(newhorse);
game.run();
game.printWinner();

}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,16 @@
taskKey="com.javarush.task.task21.task2113.big15"\n\nИпподром(15)
taskKey="com.javarush.task.task21.task2113.big16"\n\nИпподром(16)

Теперь уже точно все.
Добавь вызов метода printWinner в конец метода main.
Запускай и любуйся своей первой компьютерной игрой :)



Требования:
1. Метод printWinner должен быть вызван в методе main после метода run.


Ипподром(15)

Добавим определение победителя.
В классе Hippodrome сделаем два метода:
Expand All @@ -12,12 +24,6 @@ Winner is Lucky!



Требования:
1. В классе Hippodrome должен быть создан метод getWinner без параметров.
2. В классе Hippodrome должен быть создан метод printWinner без параметров.
3. Метод getWinner должен возвращать лошадь пробежавшую наибольшую дистанцию.
4. Метод printWinner должен выводить на экран имя победителя на экран в формате заданном в условии задачи.


Ипподром(14)

Expand Down Expand Up @@ -80,12 +86,3 @@ game.run();



Ипподром(10)

Еще нужно написать метод print класса Hippodrome.
В нем тоже все просто: в цикле для каждой лошади вызываем ее метод print.
Ну, и еще выведи после цикла 10 пустых строк: System.out.println() - чтобы было красивее.




4 changes: 2 additions & 2 deletions JavaRushPlugin.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#Tue Aug 20 13:13:00 MSK 2019
javarush.last.task.key=com.javarush.task.task21.task2113.big15
#Wed Aug 21 09:00:09 MSK 2019
javarush.last.task.key=com.javarush.task.task21.task2113.big16
javarush.session.id=7F47EE0E58271346345975044B4B1777
javarush.skip.set.autoscrolls=true
javarush.user.secretkey=7e30b968-41a8-4d9c-998a-3ad4b6d9a79f
Expand Down
94 changes: 94 additions & 0 deletions out.log
Original file line number Diff line number Diff line change
Expand Up @@ -3445,3 +3445,97 @@
2019-08-20 13:12:56 INFO ApacheHttpClient.getFilteredTasks(322) - responseCode = 200
2019-08-20 13:13:00 INFO ApacheHttpClient.getTaskTemplateInfo(339) - responseCode = 200
2019-08-20 13:13:00 INFO ApacheHttpClient.getWebResourceAsStream(483) - responseCode = 200
2019-08-20 13:13:43 INFO ApacheHttpClient.sendEvent(516) - responseCode = 200
2019-08-20 13:14:04 INFO PluginTasksProjectComponent.projectClosing(188) - ---------- Project closed ----------

2019-08-20 13:14:05 INFO ApacheHttpClient.getTask(469) - responseCode = 200
2019-08-20 13:14:05 INFO ApacheHttpClient.getTask(469) - responseCode = 200
2019-08-20 13:14:05 INFO ApacheHttpClient.getTask(469) - responseCode = 200
2019-08-20 13:14:09 INFO ApacheHttpClient.getTask(469) - responseCode = 200
2019-08-20 13:14:09 INFO ApacheHttpClient.getTask(469) - responseCode = 200
2019-08-20 13:14:09 INFO ApacheHttpClient.getTask(469) - responseCode = 200
2019-08-20 13:14:09 INFO ApacheHttpClient.getTask(469) - responseCode = 200
2019-08-20 13:14:09 INFO ApacheHttpClient.getTask(469) - responseCode = 200
2019-08-20 13:14:09 INFO ApacheHttpClient.getTask(469) - responseCode = 200
2019-08-20 13:14:09 INFO ApacheHttpClient.getTask(469) - responseCode = 200
2019-08-20 13:14:09 INFO ApacheHttpClient.getTask(469) - responseCode = 200
2019-08-20 13:14:09 INFO ApacheHttpClient.getTask(469) - responseCode = 200
2019-08-20 13:14:09 INFO ApacheHttpClient.getTask(469) - responseCode = 200
2019-08-20 13:14:10 INFO ApacheHttpClient.getTask(469) - responseCode = 200
2019-08-20 13:14:10 INFO ApacheHttpClient.getTask(469) - responseCode = 200
2019-08-20 13:14:10 INFO ApacheHttpClient.getTask(469) - responseCode = 200
2019-08-20 13:14:10 INFO ApacheHttpClient.getTask(469) - responseCode = 200
2019-08-20 13:14:10 INFO ApacheHttpClient.getTask(469) - responseCode = 200
2019-08-20 13:14:10 INFO ApacheHttpClient.getTask(469) - responseCode = 200
2019-08-20 13:14:10 INFO ApacheHttpClient.getTask(469) - responseCode = 200
2019-08-21 08:28:36 INFO PluginTasksProjectComponent.projectOpened(77) - ---------- Project opened ----------
2019-08-21 08:28:36 INFO PluginTasksProjectComponent.projectOpened(78) - ---------- Version 3.31 ----------

2019-08-21 08:28:36 INFO ApacheHttpClient.createAsyncHttpClient(133) - 1 proxies selected. Type: DIRECT
2019-08-21 08:28:36 INFO ApacheHttpClient.<init>(91) - ApacheHttpClient was successfully instantiated.
2019-08-21 08:28:37 INFO ApacheHttpClient.testConnection(191) - responseCode = 200
2019-08-21 08:28:37 INFO ApacheHttpClient.testConnection(206) - result = true
2019-08-21 08:28:37 INFO ApacheHttpClient.isSessionAppropriateWithSecretKey(583) - Waiting for server response.
2019-08-21 08:28:38 INFO ApacheHttpClient.refreshUserInfo(291) - responseCode = 200
2019-08-21 08:28:38 INFO ApacheHttpClient.refreshUserInfo(297) - User information received.
2019-08-21 08:28:38 INFO ApacheHttpClient.startGA(35) - GAService started.
2019-08-21 08:28:38 INFO AbstractRestApiClient.startService(71) - EventsService started.
2019-08-21 08:28:44 INFO ApacheHttpClient.getWebResourceAsStream(483) - responseCode = 200
2019-08-21 08:29:38 INFO ApacheHttpClient.sendEvent(516) - responseCode = 200
2019-08-21 08:30:38 INFO ApacheHttpClient.sendEvent(516) - responseCode = 200
2019-08-21 08:31:38 INFO ApacheHttpClient.sendEvent(516) - responseCode = 200
2019-08-21 08:32:38 INFO ApacheHttpClient.sendEvent(516) - responseCode = 200
2019-08-21 08:33:38 INFO ApacheHttpClient.sendEvent(516) - responseCode = 200
2019-08-21 08:34:38 INFO ApacheHttpClient.sendEvent(516) - responseCode = 200
2019-08-21 08:35:38 INFO ApacheHttpClient.sendEvent(516) - responseCode = 200
2019-08-21 08:36:38 INFO ApacheHttpClient.sendEvent(516) - responseCode = 200
2019-08-21 08:37:11 INFO ApacheHttpClient.getWebResourceAsStream(483) - responseCode = 200
2019-08-21 08:37:11 INFO ApacheHttpClient.getTask(469) - responseCode = 200
2019-08-21 08:37:11 INFO ApacheHttpClient.getWebResourceAsStream(483) - responseCode = 200
2019-08-21 08:37:12 INFO ApacheHttpClient.completed(28) - responseCode = 200
2019-08-21 08:37:38 INFO ApacheHttpClient.sendEvent(516) - responseCode = 200
2019-08-21 08:38:38 INFO ApacheHttpClient.sendEvent(516) - responseCode = 200
2019-08-21 08:39:38 INFO ApacheHttpClient.sendEvent(516) - responseCode = 200
2019-08-21 08:40:38 INFO ApacheHttpClient.sendEvent(516) - responseCode = 200
2019-08-21 08:41:19 INFO ApacheHttpClient.getWebResourceAsStream(483) - responseCode = 200
2019-08-21 08:41:19 INFO ApacheHttpClient.getTask(469) - responseCode = 200
2019-08-21 08:41:38 INFO ApacheHttpClient.sendEvent(516) - responseCode = 200
2019-08-21 08:42:38 INFO ApacheHttpClient.sendEvent(516) - responseCode = 200
2019-08-21 08:43:38 INFO ApacheHttpClient.sendEvent(516) - responseCode = 200
2019-08-21 08:44:38 INFO ApacheHttpClient.sendEvent(516) - responseCode = 200
2019-08-21 08:45:38 INFO ApacheHttpClient.sendEvent(516) - responseCode = 200
2019-08-21 08:46:23 INFO ApacheHttpClient.getWebResourceAsStream(483) - responseCode = 200
2019-08-21 08:46:24 INFO ApacheHttpClient.getTask(469) - responseCode = 200
2019-08-21 08:46:38 INFO ApacheHttpClient.sendEvent(516) - responseCode = 200
2019-08-21 08:47:38 INFO ApacheHttpClient.sendEvent(516) - responseCode = 200
2019-08-21 08:48:22 INFO ApacheHttpClient.getWebResourceAsStream(483) - responseCode = 200
2019-08-21 08:48:22 INFO ApacheHttpClient.getTask(469) - responseCode = 200
2019-08-21 08:48:38 INFO ApacheHttpClient.sendEvent(516) - responseCode = 200
2019-08-21 08:49:38 INFO ApacheHttpClient.sendEvent(516) - responseCode = 200
2019-08-21 08:50:38 INFO ApacheHttpClient.sendEvent(516) - responseCode = 200
2019-08-21 08:51:38 INFO ApacheHttpClient.sendEvent(516) - responseCode = 200
2019-08-21 08:52:38 INFO ApacheHttpClient.sendEvent(516) - responseCode = 200
2019-08-21 08:53:38 INFO ApacheHttpClient.sendEvent(516) - responseCode = 200
2019-08-21 08:54:38 INFO ApacheHttpClient.sendEvent(516) - responseCode = 200
2019-08-21 08:55:38 INFO ApacheHttpClient.sendEvent(516) - responseCode = 200
2019-08-21 08:56:38 INFO ApacheHttpClient.sendEvent(516) - responseCode = 200
2019-08-21 08:57:38 INFO ApacheHttpClient.sendEvent(516) - responseCode = 200
2019-08-21 08:58:38 INFO ApacheHttpClient.sendEvent(516) - responseCode = 200
2019-08-21 08:59:38 INFO ApacheHttpClient.sendEvent(516) - responseCode = 200
2019-08-21 08:59:47 INFO ApacheHttpClient.getWebResourceAsStream(483) - responseCode = 200
2019-08-21 08:59:47 INFO ApacheHttpClient.getWebResourceAsStream(483) - responseCode = 200
2019-08-21 08:59:47 INFO ApacheHttpClient.getTask(469) - responseCode = 200
2019-08-21 08:59:48 INFO ApacheHttpClient.completed(28) - responseCode = 200
2019-08-21 08:59:48 INFO ApacheHttpClient.getTask(469) - responseCode = 200
2019-08-21 08:59:54 INFO ApacheHttpClient.getWebResourceAsStream(483) - responseCode = 200
2019-08-21 08:59:54 INFO ApacheHttpClient.getFilteredTasks(322) - responseCode = 200
2019-08-21 09:00:01 INFO ApacheHttpClient.getTaskTemplateInfo(339) - responseCode = 200
2019-08-21 09:00:01 INFO ApacheHttpClient.getWebResourceAsStream(483) - responseCode = 200
2019-08-21 09:00:09 INFO ApacheHttpClient.getWebResourceAsStream(483) - responseCode = 200
2019-08-21 09:00:09 INFO ApacheHttpClient.getTask(469) - responseCode = 200
2019-08-21 09:00:09 INFO ApacheHttpClient.getWebResourceAsStream(483) - responseCode = 200
2019-08-21 09:00:10 INFO ApacheHttpClient.completed(28) - responseCode = 200
2019-08-21 09:00:11 INFO ApacheHttpClient.getTask(469) - responseCode = 200
2019-08-21 09:00:16 INFO ApacheHttpClient.getWebResourceAsStream(483) - responseCode = 200
2019-08-21 09:00:16 INFO ApacheHttpClient.getFilteredTasks(322) - responseCode = 200
2019-08-21 09:00:38 INFO ApacheHttpClient.sendEvent(516) - responseCode = 200
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
taskKey="com.javarush.task.task21.task2113.big15"\n\nИпподром(15)

Добавим определение победителя.
В классе Hippodrome сделаем два метода:
public Horse getWinner() и public void printWinner()

Метод getWinner должен возвращать лошадь пробежавшую самую большую дистанцию.
Метод printWinner выводит на экран имя победителя в виде:
Winner is <name>!
Пример:
Winner is Lucky!



Требования:
1. В классе Hippodrome должен быть создан метод getWinner без параметров.
2. В классе Hippodrome должен быть создан метод printWinner без параметров.
3. Метод getWinner должен возвращать лошадь пробежавшую наибольшую дистанцию.
4. Метод printWinner должен выводить на экран имя победителя на экран в формате заданном в условии задачи.


Ипподром(14)

Запускаем и любуемся.
У нас каждые полсекунды отображается новый кадр с ситуацией на ипподроме.
Мышкой уменьши размер консоли так, чтобы был виден только один "кадр" и на том же самом месте.
Тогда можно наблюдать забег в живую и даже покомментировать:
- Старт.
- Гомер неожиданно обходит Лаки.
- Слевин вырывается вперед.
- Вперед Лаки!
- 10 баксов на Слевина.
- Похоже Лаки сбросил жокея и расслабился.
- Гомер уверенно вырывается вперед.
- Неожиданно для всех побеждает Гомер. Вот это номер!




Ипподром(13)

Теперь вернемся к методу print класса Horse.
Т.к. мы работаем с консолью, то все лошади на бегах будут выглядеть примерно так:
........Slevin
....Lucky
..........Homer

Другими словами, в методе print надо вывести на экран строку состоящую из точек и имени лошади.
Количество точек равно distance, округленному(в меньшую сторону) до целого числа.




Ипподром(12)

Осталось совсем немного - дописать класс Horse.
Каждый ход у лошади будет вызываться метод move.
Когда у лошади вызывают метод move, лошадь должна пробежать некоторую дистанцию.
Дистанция зависит от скорости лошади (speed). В самом простом варианте, выглядеть этот метод должен примерно так:
distance += speed;

Но, чтобы было интереснее, давай сделаем так, чтобы скорость все время немного менялась.
Для этого умножь speed на случайное число.
Случайное число можно получить с помощью метода Math.random().



Ипподром(11)

С классом Hippodrome почти закончили.
Добавь в конец метода main вызов run().

Подсказка:
run() - это нестатический метод, поэтому вызвать его можно только у объекта.
А где взять объект?

Подсказка 2:
game.run();




Ипподром(10)

Еще нужно написать метод print класса Hippodrome.
В нем тоже все просто: в цикле для каждой лошади вызываем ее метод print.
Ну, и еще выведи после цикла 10 пустых строк: System.out.println() - чтобы было красивее.




0 comments on commit cdd10be

Please sign in to comment.