Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file not shown.
Binary file not shown.
Binary file modified out/production/14072019/Lesson_1/Marathon/Main.class
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added out/production/14072019/Lesson_1/Members/Cat.class
Binary file not shown.
Binary file added out/production/14072019/Lesson_1/Members/Dog.class
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
9 changes: 9 additions & 0 deletions src/Lesson_1/Act/Competitor.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package Lesson_1.Act;

public interface Competitor {
void run(int dist);
void swim(int dist);
void jump(int height);
boolean isOnDistance();
void info();
}
41 changes: 41 additions & 0 deletions src/Lesson_1/Marathon/Course.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package Lesson_1.Marathon;

import Lesson_1.Act.Competitor;
import Lesson_1.Obstacles.*;

public class Course {
int number;
Obstacle[] course;

public Course(int numberObstacle){
this.number = numberObstacle;

course = new Obstacle[number];

for (int i = 0; i < number; i++) {
int randomMember = 0 + (int) (Math.random() * 3);

switch (randomMember) {
case 0:
course[i] = new Wall(2);
break;
case 1:
course[i] = new Cross(100);
break;
case 2:
course[i] = new Water(50);
break;
}
}
}

public void doIt(Team competitors) {
for (Competitor c : competitors.competitors) {
for (Obstacle o : course) {
o.doIt(c);
if (!c.isOnDistance()) break;
}
}

}
}
15 changes: 4 additions & 11 deletions src/Lesson_1/Marathon/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,9 @@

public class Main {
public static void main(String[] args) {
Competitor[] competitors = {new Human("Боб"), new Cat("Барсик"), new Dog("Бобик")};
Obstacle[] course = {new Cross(80), new Wall(2), new Wall(1), new Cross(120)};
for (Competitor c : competitors) {
for (Obstacle o : course) {
o.doIt(c);
if (!c.isOnDistance()) break;
}
}
for (Competitor c : competitors) {
c.info();
}
Course line = new Course(10);
Team team = new Team(10);
line.doIt(team);
team.showResult();
}
}
37 changes: 37 additions & 0 deletions src/Lesson_1/Marathon/Team.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package Lesson_1.Marathon;

import Lesson_1.Act.*;
import Lesson_1.Members.*;

public class Team {
int number;
Competitor[] competitors;

public Team(int numberMember) {
this.number = numberMember;

competitors = new Competitor[number];

for (int i = 0; i < number; i++) {
int randomMember = 0 + (int) (Math.random() * 3);

switch (randomMember) {
case 0:
competitors[i] = new Human("Человек" + i);
break;
case 1:
competitors[i] = new Cat("Кот" + i);
break;
case 2:
competitors[i] = new Dog("Собака" + i);
break;
}
}
}

public void showResult() {
for (Competitor c : competitors) {
c.info();
}
}
}
68 changes: 68 additions & 0 deletions src/Lesson_1/Members/Animal.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
package Lesson_1.Members;

import Lesson_1.Act.Competitor;

public class Animal implements Competitor {
String type;
String name;

int maxRunDistance;
int maxJumpHeight;
int maxSwimDistance;

boolean onDistance;

@Override
public boolean isOnDistance() {
return onDistance;
}

public Animal(String type, String name, int maxRunDistance, int maxJumpHeight, int maxSwimDistance) {
this.type = type;
this.name = name;
this.maxRunDistance = maxRunDistance;
this.maxJumpHeight = maxJumpHeight;
this.maxSwimDistance = maxSwimDistance;
this.onDistance = true;
}

@Override
public void run(int dist) {
if (dist <= maxRunDistance) {
System.out.println(type + " " + name + " хорошо справился с кроссом");
} else {
System.out.println(type + " " + name + " не справился с кроссом");
onDistance = false;
}
}

@Override
public void jump(int height) {
if (height <= maxJumpHeight) {
System.out.println(type + " " + name + " удачно перепрыгнул через стену");
} else {
System.out.println(type + " " + name + " не смог перепрыгнуть стену");
onDistance = false;
}
}

@Override
public void swim(int dist) {
if (maxSwimDistance == 0) {
System.out.println(type + " " + name + " не умеет плавать");
onDistance = false;
return;
}
if (dist <= maxSwimDistance) {
System.out.println(type + " " + name + " отлично проплыл");
} else {
System.out.println(type + " " + name + " не смог проплыть");
onDistance = false;
}
}

@Override
public void info() {
System.out.println(type + " " + name + " - " + onDistance);
}
}
7 changes: 7 additions & 0 deletions src/Lesson_1/Members/Cat.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package Lesson_1.Members;

public class Cat extends Animal {
public Cat(String name) {
super("Кот", name, 200, 20, 0);
}
}
7 changes: 7 additions & 0 deletions src/Lesson_1/Members/Dog.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package Lesson_1.Members;

public class Dog extends Animal {
public Dog(String name) {
super("Пес", name, 500, 5, 20);
}
}
61 changes: 61 additions & 0 deletions src/Lesson_1/Members/Human.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
package Lesson_1.Members;

import Lesson_1.Act.Competitor;

public class Human implements Competitor {
String name;

int maxRunDistance;
int maxJumpHeight;
int maxSwimDistance;

boolean active;

@Override
public boolean isOnDistance() {
return active;
}

public Human(String name) {
this.name = name;
this.maxRunDistance = 5000;
this.maxJumpHeight = 30;
this.maxSwimDistance = 200;
this.active = true;
}

@Override
public void run(int dist) {
if (dist <= maxRunDistance) {
System.out.println(name + " хорошо справился с кроссом");
} else {
System.out.println(name + " не справился с кроссом");
active = false;
}
}

@Override
public void jump(int height) {
if (height <= maxJumpHeight) {
System.out.println(name + " удачно перепрыгнул через стену");
} else {
System.out.println(name + " не смог перепрыгнуть стену");
active = false;
}
}

@Override
public void swim(int dist) {
if (dist <= maxSwimDistance) {
System.out.println(name + " отлично проплыл");
} else {
System.out.println(name + " не смог проплыть");
active = false;
}
}

@Override
public void info() {
System.out.println(name + " - " + active);
}
}
16 changes: 16 additions & 0 deletions src/Lesson_1/Obstacles/Cross.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package Lesson_1.Obstacles;

import Lesson_1.Act.Competitor;

public class Cross extends Obstacle {
int length;

public Cross(int length) {
this.length = length;
}

@Override
public void doIt(Competitor competitor) {
competitor.run(length);
}
}
7 changes: 7 additions & 0 deletions src/Lesson_1/Obstacles/Obstacle.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package Lesson_1.Obstacles;

import Lesson_1.Act.Competitor;

public abstract class Obstacle {
public abstract void doIt(Competitor competitor);
}
16 changes: 16 additions & 0 deletions src/Lesson_1/Obstacles/Wall.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package Lesson_1.Obstacles;

import Lesson_1.Act.Competitor;

public class Wall extends Obstacle {
int height;

public Wall(int height) {
this.height = height;
}

@Override
public void doIt(Competitor competitor) {
competitor.jump(height);
}
}
16 changes: 16 additions & 0 deletions src/Lesson_1/Obstacles/Water.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package Lesson_1.Obstacles;

import Lesson_1.Act.Competitor;

public class Water extends Obstacle {
int length;

public Water(int length) {
this.length = length;
}

@Override
public void doIt(Competitor competitor) {
competitor.swim(length);
}
}