Weitere UI Erweiterungen. Neue Methoden.
parent
eeda064427
commit
cc7bc20b1d
|
@ -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;
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
Loading…
Reference in New Issue