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 tpe.exceptions.roboter.exceptions.RobotException;
public class RobotFactory {
private String name;
private HashMap <Integer, Roboter> roboterLager = new HashMap<>();
@ -56,4 +58,12 @@ public RobotFactory (String name) {
boolean zustand = r.isPowerOn();
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.RobotType;
import Domäne.Roboter;
import tpe.exceptions.roboter.exceptions.RobotException;
public class Factorysystem {
private RobotFactory robotFactory;
@ -39,5 +40,10 @@ public class Factorysystem {
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;
import facade.Factorysystem;
import tpe.exceptions.roboter.exceptions.RobotException;
import ui.Factory;
public class Main {
public static void main(String[] args) {
public static void main(String[] args) throws RobotException {
Factorysystem fs = new Factorysystem ("Robot Fabrik");
Factory ui = new Factory (fs);
}

View File

@ -1,21 +1,24 @@
package ui;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
import Domäne.C3PO;
import Domäne.R2D2;
import facade.Factorysystem;
import tpe.exceptions.roboter.exceptions.RobotException;
public class Factory {
Scanner sc = new Scanner(System.in);
private Factorysystem factorysystem;
public Factory(Factorysystem factorysystem) {
public Factory(Factorysystem factorysystem) throws RobotException {
this.factorysystem = factorysystem;
hauptmenü();
}
private void hauptmenü() {
private void hauptmenü() throws RobotException {
mainloop: while (true) {
System.out.println();
@ -31,7 +34,7 @@ public class Factory {
int input = Integer.parseInt(sc.nextLine());
System.out.println();
try {
switch (input) {
case 0:
roboterAnzeigen();
@ -44,11 +47,9 @@ public class Factory {
break;
case 9:
break mainloop;
}
} catch (Exception e) {
}
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: ");
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("1 -> Zustand abfragen");
System.out.println("2 -> AN/AUS machen");
System.out.println("3 -> Roboter sprechen lassen");
System.out.println("9 -> Zurück ins Hauptmenü");
System.out.print("> ");
int input = Integer.parseInt(sc.nextLine());
try {
switch (input) {
case 1:
zustandAbfragen(id);
@ -91,13 +93,14 @@ public class Factory {
case 2:
schalterBetätigen(id);
break;
case 3:
sprechen(id);
break;
case 9:
break loop;
}
} catch (Exception e) {
}
}
}
@ -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);
}
}
}
}