diff --git a/.idea/misc.xml b/.idea/misc.xml
index a165cb3..3c79abe 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/src/coffeeMachine/CoffeeMachine.java b/src/coffeeMachine/CoffeeMachine.java
new file mode 100644
index 0000000..7bd70f3
--- /dev/null
+++ b/src/coffeeMachine/CoffeeMachine.java
@@ -0,0 +1,149 @@
+package coffeeMachine;
+
+import java.util.Scanner;
+
+public class CoffeeMachine {
+ private Scanner scanner;
+ private int water;
+ private int milk;
+ private int beans;
+ private int cups;
+ private int money;
+ public CoffeeMachine() {
+ this.scanner = new Scanner(System.in);
+ this.water = 400;
+ this.milk = 540;
+ this.beans = 120;
+ this.cups = 9;
+ this.money = 550;
+ }
+ public void printState() {
+ System.out.println("The coffee machine has:\n" +
+ String.format("%d of water\n", this.water) +
+ String.format("%d of milk\n", this.milk) +
+ String.format("%d of coffee beans\n", this.beans) +
+ String.format("%d of disposable cups\n", this.cups) +
+ String.format("%d of money", this.money));
+ }
+ private void processBuy() {
+ System.out.println("What do you want to buy? 1 - espresso, 2 - latte, 3 - cappuccino, back - to main menu:");
+ String type = this.scanner.nextLine();
+
+ if(type.equals("back")) return;;
+
+ this.buy(Integer.valueOf(type));
+ }
+
+ private void processFill() {
+ System.out.println("Write how many ml of water do you want to add:");
+ int water = scanner.nextInt();
+ System.out.println("Write how many ml of milk do you want to add:");
+ int milk = scanner.nextInt();
+ System.out.println("Write how many grams of coffee beans do you want to add:");
+ int beans = scanner.nextInt();
+ System.out.println("Write how many disposable cups of coffee do you want to add:");
+ int cups = scanner.nextInt();
+
+ this.fill(water, milk, beans, cups);
+
+ }
+ private void processTake() {
+ System.out.println(String.format("I gave you $%d", this.money));
+ this.take();
+ }
+
+ private void fill(int water, int milk, int beans, int cups) {
+ this.water +=water;
+ this.milk +=milk;
+ this.beans += beans;
+ this.cups += cups;
+ }
+
+ private void take() {
+ this.money = 0;
+ }
+
+ private void buy(int type) {
+ int water = 0;
+ int milk = 0;
+ int beans = 0;
+ int money = 0;
+
+ switch (type) {
+ case 1: {
+ water = 250;
+ milk = 0;
+ beans = 16;
+ money = 4;
+ break;
+ }
+ case 2: {
+ water = 350;
+ milk = 75;
+ beans = 20;
+ money = 7;
+ break;
+ }
+ case 3:{
+ water = 200;
+ milk = 100;
+ beans = 12;
+ money = 6;
+ break;
+ }
+ default: {
+ break;
+ }
+ }
+
+ if(this.water < water) {
+ System.out.println("Sorry, not enough water!");
+ }
+ else if(this.milk < milk) {
+ System.out.println("Sorry, not enough milk!");
+ }
+ else if(this.beans < beans) {
+ System.out.println("Sorry, not enough coffee beans!");
+ }
+ else if(this.cups < 1) {
+ System.out.println("Sorry, not enough disposable cups!");
+ } else {
+ System.out.println("I have enough resources, making you a coffee!");
+ this.water -= water;
+ this.milk -= milk;
+ this.beans -= beans;
+ this.cups--;
+ this.money += money;
+ }
+ }
+ public boolean processAction() {
+ System.out.println("Write action (buy, fill, take, remaining, exit):");
+ String action = this.scanner.nextLine();
+
+ switch (action) {
+ case "buy": {
+ this.processBuy();
+ break;
+ }
+ case "fill": {
+ this.processFill();
+ break;
+ }
+ case "take": {
+ this.processTake();
+ break;
+ }
+ case "remaining": {
+ this.printState();
+ break;
+ }
+ case "exit": {
+ return false;
+ }
+ default: {
+ break;
+ }
+ }
+ return true;
+ }
+}
diff --git a/src/coffeeMachine/main.kt b/src/coffeeMachine/main.kt
deleted file mode 100644
index 2de31af..0000000
--- a/src/coffeeMachine/main.kt
+++ /dev/null
@@ -1,5 +0,0 @@
-package coffeeMachine
-
-fun main(args: Array) {
- print("Hello world!")
-}
\ No newline at end of file
diff --git a/src/main/Main.java b/src/main/Main.java
new file mode 100644
index 0000000..38e86be
--- /dev/null
+++ b/src/main/Main.java
@@ -0,0 +1,14 @@
+package main;
+
+import coffeeMachine.CoffeeMachine;
+
+public class Main {
+ public static void main(String[] args) {
+ CoffeeMachine machine = new CoffeeMachine();
+ boolean status;
+ do {
+ status = machine.processAction();
+ }
+ while(status);
+ }
+}