diff --git a/_2_oo/src/main/java/code/_4_student_effort/Main.java b/_2_oo/src/main/java/code/_4_student_effort/Main.java deleted file mode 100644 index 95bb1182c..000000000 --- a/_2_oo/src/main/java/code/_4_student_effort/Main.java +++ /dev/null @@ -1,8 +0,0 @@ -package code._4_student_effort; - -public class Main { - - public static void main(String[] args) { - //TODO put your code changes in here - } -} diff --git a/_2_oo/src/main/java/code/_4_student_effort/out/production/_4_student_effort_TwoFighters/BoxingMatch.class b/_2_oo/src/main/java/code/_4_student_effort/out/production/_4_student_effort_TwoFighters/BoxingMatch.class new file mode 100644 index 000000000..c98bc188e Binary files /dev/null and b/_2_oo/src/main/java/code/_4_student_effort/out/production/_4_student_effort_TwoFighters/BoxingMatch.class differ diff --git a/_2_oo/src/main/java/code/_4_student_effort/out/production/_4_student_effort_TwoFighters/Fighter.class b/_2_oo/src/main/java/code/_4_student_effort/out/production/_4_student_effort_TwoFighters/Fighter.class new file mode 100644 index 000000000..855d4a708 Binary files /dev/null and b/_2_oo/src/main/java/code/_4_student_effort/out/production/_4_student_effort_TwoFighters/Fighter.class differ diff --git a/_2_oo/src/main/java/code/_4_student_effort/src/BoxingMatch.java b/_2_oo/src/main/java/code/_4_student_effort/src/BoxingMatch.java new file mode 100644 index 000000000..5e9380414 --- /dev/null +++ b/_2_oo/src/main/java/code/_4_student_effort/src/BoxingMatch.java @@ -0,0 +1,29 @@ +public class BoxingMatch { + private Fighter fighter1; + private Fighter fighter2; + + public BoxingMatch(Fighter f1, Fighter f2) { + this.fighter1 = f1; + this.fighter2 = f2; + } + public String fight(){ + while(fighter1.health > 0 && fighter2.health > 0){ + fighter1.attack(fighter2); + fighter2.attack(fighter1); + } + if(fighter1.health <= 0){ + return fighter2.name; + }else{ + return fighter1.name; + } + } + + public static void main(String[] args) { + Fighter f1 = new Fighter("Fighter 1", 100, 15); + Fighter f2 = new Fighter("Fighter 2", 100, 30); + + BoxingMatch boxingMatch = new BoxingMatch(f1,f2); + + System.out.println("The winner is: " + boxingMatch.fight()); + } +} diff --git a/_2_oo/src/main/java/code/_4_student_effort/src/Fighter.java b/_2_oo/src/main/java/code/_4_student_effort/src/Fighter.java new file mode 100644 index 000000000..79ca16a3c --- /dev/null +++ b/_2_oo/src/main/java/code/_4_student_effort/src/Fighter.java @@ -0,0 +1,19 @@ +public class Fighter { + public String name; + public int health; + public double damagePerAttack; + + public Fighter(String name, int health, double damagePerAttack) { + this.name = name; + if(health > 100 || health <= 0) { + this.health = 100; + }else{ + this.health = health; + } + this.damagePerAttack = damagePerAttack; + } + + public void attack(Fighter opponent){ + opponent.health -= this.damagePerAttack; + } +} diff --git a/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Car.java b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Car.java new file mode 100644 index 000000000..745abef24 --- /dev/null +++ b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Car.java @@ -0,0 +1,112 @@ +package clean.code.design_patterns.requirements; + +public class Car { + private final Object carManufacturer; + + private enum carManufacturer{ + BMW, Audi, Deimler, Ford, Porsche, Lamborghini + } + private String carModel; + private int numberOfWheels; + private int numberOfSeats; + private String engineModel; + private String carColor; + private boolean navigation; + private boolean bluetooth; + private boolean adaptiveCruiseControl; + + public Object getCarManufacturer() { return carManufacturer; } + public String getCarModel() { return carModel; } + public int getNumberOfWheels() { return numberOfWheels; } + public int getNumberOfSeats() { return numberOfSeats; } + + public String withEngineModel() { return engineModel;} + public String withCarColor() { return carColor;} + public boolean withNavigation() { return navigation;} + public boolean withBluetooth() { return bluetooth;} + public boolean withAdaptiveCruiseControl() { return adaptiveCruiseControl;} + + private Car(Builder builder){ + this.carManufacturer = builder.carManufacturer; + this.carModel = builder.carModel; + this.numberOfWheels = builder.numberOfWheels; + this.numberOfSeats = builder.numberOfSeats; + this.engineModel = builder.engineModel; + this.carColor = builder.carColor; + this.navigation = builder.navigation; + this.bluetooth = builder.bluetooth; + this.adaptiveCruiseControl = builder.adaptiveCruiseControl; + } + + public static class Builder{ + private final Object carManufacturer; + + private enum carManufacturer{ + BMW, Audi, Deimler, Ford, Porsche, Lamborghini + } + private String carModel; + private int numberOfWheels; + private int numberOfSeats; + + private String engineModel; + private String carColor; + private boolean navigation; + private boolean bluetooth; + private boolean adaptiveCruiseControl; + + public Builder(String carManufacturer,String carModel,int numberOfWheels,int numberOfSeats){ + this.carManufacturer = carManufacturer; + this.carModel = carModel; + if(numberOfWheels != 2 && numberOfWheels != 3 && numberOfWheels != 4 && numberOfSeats != 2 + && numberOfSeats != 3 && numberOfSeats != 4 && numberOfSeats != 8){ + this.numberOfWheels = 4; + this.numberOfSeats = 4; + } + else{ + this.numberOfWheels = numberOfWheels; + this.numberOfSeats = numberOfSeats; + } + } + + public Builder withEngineModel(String engineModel){ + this.engineModel = engineModel; + return this; + } + + public Builder withCarColor(String carColor){ + this.carColor = carColor; + return this; + } + + public Builder withNavigation(boolean navigation){ + this.navigation = navigation; + return this; + } + + public Builder withBluetooth(boolean bluetooth){ + this.bluetooth = bluetooth; + return this; + } + + public Builder withAdaptiveCruiseControl(boolean adaptiveCruiseControl){ + this.adaptiveCruiseControl = adaptiveCruiseControl; + return this; + } + + public Object getCarManufacturer() { return carManufacturer; } + public String getCarModel() { return carModel; } + public int getNumberOfWheels() { return numberOfWheels; } + public int getNumberOfSeats() { return numberOfSeats; } + public String getEngineModel() { return engineModel; } + public String getCarColor() { return carColor; } + public boolean isNavigation() { return navigation; } + public boolean isBluetooth() { return bluetooth; } + public boolean isAdaptiveCruiseControl() { return adaptiveCruiseControl; } + + public Car buildCar(){ + return new Car(this); + } + } +} + + diff --git a/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/CarShowInit.java b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/CarShowInit.java new file mode 100644 index 000000000..d6938d58c --- /dev/null +++ b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/CarShowInit.java @@ -0,0 +1,53 @@ +package clean.code.design_patterns.requirements; + +import java.util.*; + +public class CarShowInit { + + private final adaptSeats seats = new adaptSeats(); + private final ArrayList carList = new ArrayList(); + + private static final CarShowInit carShow = new CarShowInit(); + private CarShowInit() {} + public static CarShowInit getInstance(){ + return carShow; + } + + public void addCarToShow(Car car){ + this.carList.add(car); + } + public void setSeats(int seatSet){ + seats.setSeatsNumber(seatSet); + seats.resizeNumberOfPeopleAndSeats(); + } + + public void presentCars(){ + System.out.println("\nCars added to the show:\n"); + int i = 1; + for(Car o : this.carList){ + System.out.println("Car #" + i); + System.out.println(o.getCarManufacturer() + " " + o.getCarModel()); + System.out.println("Wheels: " + o.getNumberOfWheels()); + System.out.println("Seats: " + o.getNumberOfSeats()); + System.out.println("Engine Model: " + o.withEngineModel()); + System.out.println("Color: " + o.withCarColor()); + System.out.println("Navigation: " + o.withNavigation()); + System.out.println("Bluetooth: " + o.withBluetooth()); + System.out.println("Adaptive Cruise Control: " + o.withAdaptiveCruiseControl() + "\n"); + i++; + } + + System.out.println("\nEnjoy watching them!"); + } + + public static void main(String[] args) { + + CarShowInit show = getInstance(); + show.setSeats(6000); + Car car1 = new Car.Builder("Audi","A8",4,4).withCarColor("Green").withBluetooth(true).withNavigation(true).buildCar(); + Car car2 = new Car.Builder("BMW","i8",4,4).withCarColor("Green").withEngineModel("ALH").withBluetooth(true).withNavigation(true).buildCar(); + show.addCarToShow(car1); + show.addCarToShow(car2); + show.presentCars(); + } +} diff --git a/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Main.java b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Main.java deleted file mode 100644 index 8a9fccb7b..000000000 --- a/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Main.java +++ /dev/null @@ -1,8 +0,0 @@ -package clean.code.design_patterns.requirements; - -public class Main { - - public static void main(String[] args) { - //TODO implement your design patterns in this package - } -} diff --git a/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/People.java b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/People.java new file mode 100644 index 000000000..33bb29df7 --- /dev/null +++ b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/People.java @@ -0,0 +1,17 @@ +package clean.code.design_patterns.requirements; + +import java.util.Random; + +class People { + private int peopleAtShow; + public People(){ + Random r = new Random(); + int randomNumberOfPeople = (int)r.nextInt(50000); + this.peopleAtShow = randomNumberOfPeople; + } + + public int getPeopleAtShow(){return peopleAtShow;} + public void setPeople(int people){ + this.peopleAtShow = people; + } +} diff --git a/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Seats.java b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Seats.java new file mode 100644 index 000000000..3a9a38eab --- /dev/null +++ b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Seats.java @@ -0,0 +1,7 @@ +package clean.code.design_patterns.requirements; + +public class Seats { + public People getPeopleAtShow(){ + return new People(); + } +} diff --git a/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/SeatsAdapter.java b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/SeatsAdapter.java new file mode 100644 index 000000000..17ddda758 --- /dev/null +++ b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/SeatsAdapter.java @@ -0,0 +1,5 @@ +package clean.code.design_patterns.requirements; + +public interface SeatsAdapter { + public People resizeNumberOfPeopleAndSeats(); +} diff --git a/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/adaptSeats.java b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/adaptSeats.java new file mode 100644 index 000000000..6e7974643 --- /dev/null +++ b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/adaptSeats.java @@ -0,0 +1,36 @@ +package clean.code.design_patterns.requirements; + +public class adaptSeats extends Seats implements SeatsAdapter { + private int seatsNumber; + + public adaptSeats(){ + this.seatsNumber = 0; + } + + public adaptSeats setSeatsNumber(int seats){ + this.seatsNumber = seats; + return this; + } + + public People adaptNumberOfSeatsAndPeople(People p){ + if(p.getPeopleAtShow() > this.seatsNumber){ + int persons = p.getPeopleAtShow(); + + System.out.println("\nThere are less seats (" + this.seatsNumber + ") than people (" + persons + ") at the show!" + + "\nAdjusting the number of seats and people...\n"); + + persons /= 2; + this.seatsNumber += (persons-this.seatsNumber); + p.setPeople(persons); + + System.out.println("After the adjust:\nSeats: " + this.seatsNumber + "\nParticipants: " + persons); + }else{ + System.out.println("\nThere are enough seats!\nSeats: " + this.seatsNumber + "\nParticipants: " + p.getPeopleAtShow()); + } + return p; + } + @Override + public People resizeNumberOfPeopleAndSeats(){ + return adaptNumberOfSeatsAndPeople(getPeopleAtShow()); + } +} diff --git a/clean_code_projects/_2_project_requirements_design_patterns/src/out/production/_2_project_requirements_design_patterns/clean/code/design_patterns/requirements/Car$Builder$carManufacturer.class b/clean_code_projects/_2_project_requirements_design_patterns/src/out/production/_2_project_requirements_design_patterns/clean/code/design_patterns/requirements/Car$Builder$carManufacturer.class new file mode 100644 index 000000000..9f223a4a1 Binary files /dev/null and b/clean_code_projects/_2_project_requirements_design_patterns/src/out/production/_2_project_requirements_design_patterns/clean/code/design_patterns/requirements/Car$Builder$carManufacturer.class differ diff --git a/clean_code_projects/_2_project_requirements_design_patterns/src/out/production/_2_project_requirements_design_patterns/clean/code/design_patterns/requirements/Car$Builder.class b/clean_code_projects/_2_project_requirements_design_patterns/src/out/production/_2_project_requirements_design_patterns/clean/code/design_patterns/requirements/Car$Builder.class new file mode 100644 index 000000000..fe528d7d7 Binary files /dev/null and b/clean_code_projects/_2_project_requirements_design_patterns/src/out/production/_2_project_requirements_design_patterns/clean/code/design_patterns/requirements/Car$Builder.class differ diff --git a/clean_code_projects/_2_project_requirements_design_patterns/src/out/production/_2_project_requirements_design_patterns/clean/code/design_patterns/requirements/Car$carManufacturer.class b/clean_code_projects/_2_project_requirements_design_patterns/src/out/production/_2_project_requirements_design_patterns/clean/code/design_patterns/requirements/Car$carManufacturer.class new file mode 100644 index 000000000..dae5123ce Binary files /dev/null and b/clean_code_projects/_2_project_requirements_design_patterns/src/out/production/_2_project_requirements_design_patterns/clean/code/design_patterns/requirements/Car$carManufacturer.class differ diff --git a/clean_code_projects/_2_project_requirements_design_patterns/src/out/production/_2_project_requirements_design_patterns/clean/code/design_patterns/requirements/Car.class b/clean_code_projects/_2_project_requirements_design_patterns/src/out/production/_2_project_requirements_design_patterns/clean/code/design_patterns/requirements/Car.class new file mode 100644 index 000000000..200c4d07f Binary files /dev/null and b/clean_code_projects/_2_project_requirements_design_patterns/src/out/production/_2_project_requirements_design_patterns/clean/code/design_patterns/requirements/Car.class differ diff --git a/clean_code_projects/_2_project_requirements_design_patterns/src/out/production/_2_project_requirements_design_patterns/clean/code/design_patterns/requirements/CarShowInit.class b/clean_code_projects/_2_project_requirements_design_patterns/src/out/production/_2_project_requirements_design_patterns/clean/code/design_patterns/requirements/CarShowInit.class new file mode 100644 index 000000000..ba7960a87 Binary files /dev/null and b/clean_code_projects/_2_project_requirements_design_patterns/src/out/production/_2_project_requirements_design_patterns/clean/code/design_patterns/requirements/CarShowInit.class differ diff --git a/clean_code_projects/_2_project_requirements_design_patterns/src/out/production/_2_project_requirements_design_patterns/clean/code/design_patterns/requirements/People.class b/clean_code_projects/_2_project_requirements_design_patterns/src/out/production/_2_project_requirements_design_patterns/clean/code/design_patterns/requirements/People.class new file mode 100644 index 000000000..110e37992 Binary files /dev/null and b/clean_code_projects/_2_project_requirements_design_patterns/src/out/production/_2_project_requirements_design_patterns/clean/code/design_patterns/requirements/People.class differ diff --git a/clean_code_projects/_2_project_requirements_design_patterns/src/out/production/_2_project_requirements_design_patterns/clean/code/design_patterns/requirements/Seats.class b/clean_code_projects/_2_project_requirements_design_patterns/src/out/production/_2_project_requirements_design_patterns/clean/code/design_patterns/requirements/Seats.class new file mode 100644 index 000000000..bfb31ca1c Binary files /dev/null and b/clean_code_projects/_2_project_requirements_design_patterns/src/out/production/_2_project_requirements_design_patterns/clean/code/design_patterns/requirements/Seats.class differ diff --git a/clean_code_projects/_2_project_requirements_design_patterns/src/out/production/_2_project_requirements_design_patterns/clean/code/design_patterns/requirements/SeatsAdapter.class b/clean_code_projects/_2_project_requirements_design_patterns/src/out/production/_2_project_requirements_design_patterns/clean/code/design_patterns/requirements/SeatsAdapter.class new file mode 100644 index 000000000..e2840edbd Binary files /dev/null and b/clean_code_projects/_2_project_requirements_design_patterns/src/out/production/_2_project_requirements_design_patterns/clean/code/design_patterns/requirements/SeatsAdapter.class differ diff --git a/clean_code_projects/_2_project_requirements_design_patterns/src/out/production/_2_project_requirements_design_patterns/clean/code/design_patterns/requirements/adaptSeats.class b/clean_code_projects/_2_project_requirements_design_patterns/src/out/production/_2_project_requirements_design_patterns/clean/code/design_patterns/requirements/adaptSeats.class new file mode 100644 index 000000000..545df8c37 Binary files /dev/null and b/clean_code_projects/_2_project_requirements_design_patterns/src/out/production/_2_project_requirements_design_patterns/clean/code/design_patterns/requirements/adaptSeats.class differ