diff --git a/_1_basics/src/main/java/code/_3_in_class/Boxer.java b/_1_basics/src/main/java/code/_3_in_class/Boxer.java new file mode 100644 index 000000000..e9155b4f5 --- /dev/null +++ b/_1_basics/src/main/java/code/_3_in_class/Boxer.java @@ -0,0 +1,19 @@ +package code._3_in_class; + +public class Boxer { + String name; + int health = 100; + int damagePerAttack = 10; + + + public Boxer(String name, int health, int damage){ + this.name = name; + this.health = health; + this.damagePerAttack = damage; + } + public Boxer(String name){ + this.name = name; + } + + +} diff --git a/_1_basics/src/main/java/code/_3_in_class/ClasaBunaZiua.java b/_1_basics/src/main/java/code/_3_in_class/ClasaBunaZiua.java new file mode 100644 index 000000000..eb4c1e593 --- /dev/null +++ b/_1_basics/src/main/java/code/_3_in_class/ClasaBunaZiua.java @@ -0,0 +1,7 @@ +package code._3_in_class; + +public class ClasaBunaZiua { + public static void main(String[] args) { + System.out.println("Salutari!"); + } +} diff --git a/_1_basics/src/main/java/code/_3_in_class/CorelatieNrString.java b/_1_basics/src/main/java/code/_3_in_class/CorelatieNrString.java new file mode 100644 index 000000000..58eb2e0a9 --- /dev/null +++ b/_1_basics/src/main/java/code/_3_in_class/CorelatieNrString.java @@ -0,0 +1,11 @@ +package code._3_in_class; + +public class CorelatieNrString { + int nr; + String word; + CorelatieNrString(int nr, String word){ + this.nr = nr; + this.word = word; + } + +} diff --git a/_1_basics/src/main/java/code/_3_in_class/FizzBuzz.java b/_1_basics/src/main/java/code/_3_in_class/FizzBuzz.java new file mode 100644 index 000000000..c6efd76cc --- /dev/null +++ b/_1_basics/src/main/java/code/_3_in_class/FizzBuzz.java @@ -0,0 +1,50 @@ +package code._3_in_class; + +public class FizzBuzz { + public static void main(String[] args) { + + int nr; + // fizzBuzzCuIf(); + fizzBuzzCuObiecte(); + } + + private static void fizzBuzzCuObiecte() { + + CorelatieNrString[] corelatii = { + new CorelatieNrString(3, "Fizz"), + new CorelatieNrString(5, "Buzz"), + new CorelatieNrString(7, "Rizz"), + new CorelatieNrString(11, "Tizz") + + }; + for (int i = 1; i <= 100; i++) { + boolean nrEsteDivizibil = false; + String textPtNrDivizibil = ""; + for (CorelatieNrString corelatie : corelatii) { + if (i % corelatie.nr == 0) { + textPtNrDivizibil = textPtNrDivizibil + corelatie.word; + nrEsteDivizibil = true; + } + } + if (nrEsteDivizibil == true) { + System.out.println(textPtNrDivizibil); + } else { + System.out.println(i); + } + } + } + + private static void fizzBuzzCuIf() { + for (int i = 1; i <= 100; i++) { + if (i % 3 == 0 && i % 5 == 0) { + System.out.println("FizzBuzz"); + } else if (i % 3 == 0) { + System.out.println("Fizz"); + } else if (i % 5 == 0) { + System.out.println("Buzz"); + } else { + System.out.println(i); + } + } + } +} diff --git a/_1_basics/src/main/java/code/_3_in_class/Main.java b/_1_basics/src/main/java/code/_3_in_class/Main.java index 3b87b4563..a4f55a4aa 100644 --- a/_1_basics/src/main/java/code/_3_in_class/Main.java +++ b/_1_basics/src/main/java/code/_3_in_class/Main.java @@ -1,8 +1,26 @@ package code._3_in_class; +import java.util.Random; +import java.util.SortedMap; + public class Main { public static void main(String[] args) { //TODO put your code changes in here + Boxer ion = new Boxer("ion", 100, 10); + Boxer vasile = new Boxer("vasile"); + + AnuntareWinner(ion, vasile); + } + + private static void AnuntareWinner(Boxer a, Boxer b){ + if(a.health <= 0){ + System.out.println(b.name + "a castigat meciul"); + } + else{ + System.out.println(a.name + "a castigat meciul"); + } } + + } \ No newline at end of file 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 index 8a9fccb7b..b6bfd95c6 100644 --- 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 @@ -1,8 +1,35 @@ package clean.code.design_patterns.requirements; -public class Main { +// Main class +public class Main { public static void main(String[] args) { - //TODO implement your design patterns in this package + // Factory Pattern + Vehicle car = VehicleFactory.createVehicle("car"); +// car.start(); +// car.stop(); + + Vehicle motorcycle = VehicleFactory.createVehicle("motorcycle"); +// motorcycle.start(); +// motorcycle.stop(); + + // State Pattern + TrafficLight trafficLight = new TrafficLight(); + trafficLight.AddCarTraffic(car); + trafficLight.AddCarTraffic(motorcycle); + + trafficLight.printState(); + + trafficLight.change(); + trafficLight.printState(); + + trafficLight.RemoveCarTraffic(car); + + trafficLight.change(); + trafficLight.printState(); + + trafficLight.change(); + trafficLight.printState(); } } + diff --git a/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/TrafficLight.java b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/TrafficLight.java new file mode 100644 index 000000000..f0ad8e45a --- /dev/null +++ b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/TrafficLight.java @@ -0,0 +1,82 @@ +package clean.code.design_patterns.requirements; +import java.util.List; +import java.util.ArrayList; + +// State Pattern +// Context class +class TrafficLight { + public List vehicule = new ArrayList<>(); + private TrafficLightState state; + + public TrafficLight() { + state = new RedState(); + } + + public void AddCarTraffic(Vehicle new_vehicle){ + vehicule.add(new_vehicle); + } + + public void RemoveCarTraffic(Vehicle new_vehicle){ + vehicule.remove(new_vehicle); + } + + public void setState(TrafficLightState state) { + this.state = state; + } + + public void change() { + state.change(this); + } + + public void printState() { + state.printState(); + } +} + +// State interface +interface TrafficLightState { + void change(TrafficLight light); + void printState(); +} + +// Concrete States +class RedState implements TrafficLightState { + public void change(TrafficLight light) { + System.out.println("Changing light from red to green"); + light.setState(new GreenState()); + + for (Vehicle vehicle : light.vehicule){ + vehicle.start(); + } + } + + public void printState() { + System.out.println("Red Light"); + } +} + +class GreenState implements TrafficLightState { + public void change(TrafficLight light) { + System.out.println("Changing light from green to yellow"); + light.setState(new YellowState()); + } + + public void printState() { + System.out.println("Green Light"); + } +} + +class YellowState implements TrafficLightState { + public void change(TrafficLight light) { + System.out.println("Changing light from yellow to red"); + light.setState(new RedState()); + + for (Vehicle vehicle : light.vehicule){ + vehicle.stop(); + } + } + + public void printState() { + System.out.println("Yellow Light"); + } +} diff --git a/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Vehicle.java b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Vehicle.java new file mode 100644 index 000000000..32da232c2 --- /dev/null +++ b/clean_code_projects/_2_project_requirements_design_patterns/src/main/java/clean/code/design_patterns/requirements/Vehicle.java @@ -0,0 +1,43 @@ +package clean.code.design_patterns.requirements; + +// Factory Pattern +// Product interface +interface Vehicle { + void start(); + void stop(); +} + +// Concrete Products +class Car implements Vehicle { + public void start() { + System.out.println("Car started"); + } + + public void stop() { + System.out.println("Car stopped"); + } +} + +class Motorcycle implements Vehicle { + public void start() { + System.out.println("Motorcycle started"); + } + + public void stop() { + System.out.println("Motorcycle stopped"); + } +} + +// Factory class +class VehicleFactory { + public static Vehicle createVehicle(String type) { + if (type.equalsIgnoreCase("car")) { + return new Car(); + } else if (type.equalsIgnoreCase("motorcycle")) { + return new Motorcycle(); + } else { + throw new IllegalArgumentException("Invalid vehicle type"); + } + } +} +