Weitere UI Erweiterungen. Neue Methoden.

master
Milan Lukic 2023-01-06 13:52:55 +01:00
parent eeda064427
commit cc7bc20b1d
4 changed files with 65 additions and 13 deletions

View File

@ -2,6 +2,8 @@ package Domäne;
import java.util.HashMap; import java.util.HashMap;
import tpe.exceptions.roboter.exceptions.RobotException;
public class RobotFactory { public class RobotFactory {
private String name; private String name;
private HashMap <Integer, Roboter> roboterLager = new HashMap<>(); private HashMap <Integer, Roboter> roboterLager = new HashMap<>();
@ -56,4 +58,12 @@ public RobotFactory (String name) {
boolean zustand = r.isPowerOn(); boolean zustand = r.isPowerOn();
return zustand; return zustand;
} }
public String aufrufSpeakAndThink (int id, int [] zahlen) throws RobotException {
Roboter r = findeRoboter(id);
int [] sotiert = r.think(zahlen);
String ausgabe = r.speak(sotiert);
return ausgabe;
}
} }

View File

@ -7,6 +7,7 @@ import Domäne.R2D2;
import Domäne.RobotFactory; import Domäne.RobotFactory;
import Domäne.RobotType; import Domäne.RobotType;
import Domäne.Roboter; import Domäne.Roboter;
import tpe.exceptions.roboter.exceptions.RobotException;
public class Factorysystem { public class Factorysystem {
private RobotFactory robotFactory; private RobotFactory robotFactory;
@ -39,5 +40,10 @@ public class Factorysystem {
return robotFactory.schalterAnAus(id); return robotFactory.schalterAnAus(id);
} }
public String sprechenAufruf(int id, int[] zahlen) throws RobotException {
String ausgabe = robotFactory.aufrufSpeakAndThink(id, zahlen);
return ausgabe;
}
} }

View File

@ -1,11 +1,12 @@
package main; package main;
import facade.Factorysystem; import facade.Factorysystem;
import tpe.exceptions.roboter.exceptions.RobotException;
import ui.Factory; import ui.Factory;
public class Main { public class Main {
public static void main(String[] args) { public static void main(String[] args) throws RobotException {
Factorysystem fs = new Factorysystem ("Robot Fabrik"); Factorysystem fs = new Factorysystem ("Robot Fabrik");
Factory ui = new Factory (fs); Factory ui = new Factory (fs);
} }

View File

@ -1,21 +1,24 @@
package ui; package ui;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner; import java.util.Scanner;
import Domäne.C3PO; import Domäne.C3PO;
import Domäne.R2D2; import Domäne.R2D2;
import facade.Factorysystem; import facade.Factorysystem;
import tpe.exceptions.roboter.exceptions.RobotException;
public class Factory { public class Factory {
Scanner sc = new Scanner(System.in); Scanner sc = new Scanner(System.in);
private Factorysystem factorysystem; private Factorysystem factorysystem;
public Factory(Factorysystem factorysystem) { public Factory(Factorysystem factorysystem) throws RobotException {
this.factorysystem = factorysystem; this.factorysystem = factorysystem;
hauptmenü(); hauptmenü();
} }
private void hauptmenü() { private void hauptmenü() throws RobotException {
mainloop: while (true) { mainloop: while (true) {
System.out.println(); System.out.println();
@ -31,7 +34,7 @@ public class Factory {
int input = Integer.parseInt(sc.nextLine()); int input = Integer.parseInt(sc.nextLine());
System.out.println(); System.out.println();
try {
switch (input) { switch (input) {
case 0: case 0:
roboterAnzeigen(); roboterAnzeigen();
@ -44,9 +47,7 @@ public class Factory {
break; break;
case 9: case 9:
break mainloop; break mainloop;
}
} catch (Exception e) {
} }
System.out.println(); System.out.println();
@ -71,7 +72,7 @@ public class Factory {
} }
private void roboterAuswählen() { private void roboterAuswählen() throws RobotException {
System.out.println("Geben Sie bitte die Seriennummer ein: "); System.out.println("Geben Sie bitte die Seriennummer ein: ");
int id = Integer.parseInt(sc.nextLine()); int id = Integer.parseInt(sc.nextLine());
@ -79,11 +80,12 @@ public class Factory {
System.out.println("Wählen Sie eine Aktion aus!"); System.out.println("Wählen Sie eine Aktion aus!");
System.out.println("1 -> Zustand abfragen"); System.out.println("1 -> Zustand abfragen");
System.out.println("2 -> AN/AUS machen"); System.out.println("2 -> AN/AUS machen");
System.out.println("3 -> Roboter sprechen lassen");
System.out.println("9 -> Zurück ins Hauptmenü"); System.out.println("9 -> Zurück ins Hauptmenü");
System.out.print("> "); System.out.print("> ");
int input = Integer.parseInt(sc.nextLine()); int input = Integer.parseInt(sc.nextLine());
try {
switch (input) { switch (input) {
case 1: case 1:
zustandAbfragen(id); zustandAbfragen(id);
@ -91,15 +93,16 @@ public class Factory {
case 2: case 2:
schalterBetätigen(id); schalterBetätigen(id);
break; break;
case 3:
sprechen(id);
break;
case 9: case 9:
break loop; break loop;
} }
} catch (Exception e) {
} }
} }
}
private void zustandAbfragen(int id) { private void zustandAbfragen(int id) {
boolean zustand = factorysystem.zustandRoboter(id); boolean zustand = factorysystem.zustandRoboter(id);
@ -119,4 +122,36 @@ public class Factory {
} }
} }
private void sprechen(int id) throws RobotException {
ArrayList <Integer> zahlenHinzufügen = new ArrayList<>();
System.out.println("Geben Sie ein Array an!");
System.out.println();
System.out.println("Geben Sie die 1. Zahl an!");
int zahl = Integer.parseInt(sc.nextLine());
zahlenHinzufügen.add(zahl);
boolean weiter = true;
int i = 2;
while (weiter) {
System.out.println("Geben Sie die " + i + ". Zahl an");
zahl = Integer.parseInt(sc.nextLine());
zahlenHinzufügen.add(zahl);
System.out.println("Möchten Sie weitere Zahl eingeben? (J/N)");
String wahl = sc.nextLine();
if (wahl.equalsIgnoreCase("J")) {
i++;
weiter = true;
} else {
weiter = false;
int[] zahlen = zahlenHinzufügen.stream().mapToInt(j -> j).toArray();
String ausgabe = factorysystem.sprechenAufruf(id, zahlen);
System.out.println("Ausgabe: " + ausgabe);
}
}
}
} }