initial stuff

This commit is contained in:
schmaeddes 2022-08-03 12:30:37 +02:00
commit 6a34cf4813
11 changed files with 233 additions and 0 deletions

2
.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
target
.idea

10
pom.xml Normal file
View file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>schmaeddes</groupId>
<artifactId>untitledTextAdventure</artifactId>
<version>1.0-SNAPSHOT</version>
</project>

View file

@ -0,0 +1,19 @@
import areas.Area;
public class Commands {
public static void go(Area area) {
Main.environment.setArea(area);
area.enterArea();
}
public static void info() {
String infoText = TextColors.PURPLE.colorize("Du bist hier: " +
Environment.getArea().getNameWithArticle()) + "\n" +
"Du kannst folgende Bereiche von hier erreichen: " +
String.join(", ", Environment.getArea().getReachableAreas());
System.out.println(infoText);
}
}

View file

@ -0,0 +1,14 @@
import areas.Area;
public class Environment {
private static Area area;
public static Area getArea() {
return area;
}
public void setArea(Area area) {
this.area = area;
}
}

25
src/main/java/Main.java Normal file
View file

@ -0,0 +1,25 @@
import java.util.Arrays;
import java.util.List;
import java.util.Locale;
import java.util.Scanner;
public class Main {
public static Environment environment = new Environment();
public static Parser parser = new Parser();
public static void main(String[] args) {
String greenPrompt = TextColors.BLUE.colorize(">");
Scanner scanner = new Scanner(System.in);
while(true) {
System.out.printf("%s ", greenPrompt);
List<String> input = Arrays.stream(scanner.nextLine().split(" ")).map(o -> o.toLowerCase(Locale.ROOT)).toList();
parser.parse(input);
}
}
}

15
src/main/java/Parser.java Normal file
View file

@ -0,0 +1,15 @@
import areas.GetArea;
import java.util.List;
public class Parser {
public void parse(List<String> parameter) {
switch (parameter.get(0)) {
case "go" -> Commands.go(GetArea.getArea(parameter.get(1)));
case "info" -> Commands.info();
}
}
}

View file

@ -0,0 +1,24 @@
import org.w3c.dom.Text;
public enum TextColors {
RESET("\u001B[0m"),
BLACK("\u001B[30m"),
RED("\u001B[31m"),
GREEN("\u001B[32m"),
YELLOW("\u001B[33m"),
BLUE("\u001B[34m"),
PURPLE("\u001B[35m"),
CYAN("\u001B[36m"),
WHITE("\u001B[37m");
public String value;
TextColors(String value) {
this.value = value;
}
public String colorize(String word) {
return this.value + word + TextColors.RESET.value;
}
}

View file

@ -0,0 +1,54 @@
package areas;
import java.util.ArrayList;
import java.util.List;
public class Area {
private List<String> enterText;
private String name;
private String article;
private List<String> reachableAreas = new ArrayList<>();
public List<String> getEnterText() {
return enterText;
}
public void setEnterText(List<String> enterText) {
this.enterText = enterText;
}
public void enterArea() {
for(String text: this.getEnterText()) {
System.out.println(text);
}
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getArticle() {
return article;
}
public void setArticle(String article) {
this.article = article;
}
public List<String> getReachableAreas() {
return reachableAreas;
}
public void setReachableAreas(List<String> reachableAreas) {
this.reachableAreas = reachableAreas;
}
public String getNameWithArticle() {
return this.article + " " + this.name;
}
}

View file

@ -0,0 +1,22 @@
package areas;
import java.util.ArrayList;
import java.util.List;
public class Forrest extends Area {
public Forrest() {
this.setArticle("Der");
this.setName("Wald");
this.getReachableAreas().add("Das Haus");
List<String> enterText = new ArrayList<>();
enterText.add("Du betrittst den Wald.");
enterText.add("Eine kleine Lichtung befindet sich genau in der Mitte.");
this.setEnterText(enterText);
}
}

View file

@ -0,0 +1,23 @@
package areas;
public class GetArea {
public static Area getArea(String area) {
switch (area){
case "house" -> {
return new House();
}
case "forrest" -> {
return new Forrest();
}
default -> {
System.out.println("Area not found");
return null;
}
}
}
}

View file

@ -0,0 +1,25 @@
package areas;
import com.sun.tools.javac.Main;
import java.util.ArrayList;
import java.util.List;
public class House extends Area {
public House() {
this.setArticle("Das");
this.setName("Haus");
this.getReachableAreas().add("Der Wald");
this.getReachableAreas().add("Der See");
List<String> enterText = new ArrayList<>();
enterText.add("Du betrittst das Haus.");
enterText.add("Ein leichter Luftzug geht durch den Eingangsbereich. Irgendjemand hat ein Fenster aufgelassen.");
this.setEnterText(enterText);
}
}