From 7f3f5d6ded6baf9ee4565a5b382f2508381fb820 Mon Sep 17 00:00:00 2001 From: 3009594 Date: Thu, 29 Aug 2024 10:34:50 +0200 Subject: [PATCH 1/2] Graphen --- Programmierung2/src/Graphen/Graph.java | 2 + Programmierung2/src/Graphen/Kanten.java | 63 ++++++++++++++++++++----- Programmierung2/src/Graphen/Knote.java | 15 +++--- Programmierung2/src/Graphen/Test.java | 10 ++-- 4 files changed, 68 insertions(+), 22 deletions(-) diff --git a/Programmierung2/src/Graphen/Graph.java b/Programmierung2/src/Graphen/Graph.java index 279a7d9..2e098a1 100644 --- a/Programmierung2/src/Graphen/Graph.java +++ b/Programmierung2/src/Graphen/Graph.java @@ -11,6 +11,8 @@ public class Graph { KnotenGraph.add(k); } + + public Knote getKnote(String name) { for (Knote kAusKnotenGraph: KnotenGraph) { diff --git a/Programmierung2/src/Graphen/Kanten.java b/Programmierung2/src/Graphen/Kanten.java index 16beb6a..6561065 100644 --- a/Programmierung2/src/Graphen/Kanten.java +++ b/Programmierung2/src/Graphen/Kanten.java @@ -1,22 +1,61 @@ package Graphen; -public class Kanten { - //jede Kante verbindet zwei Knoten - Knote anfangsKnote; // mannheim - Knote endeKnote; // heidelberg - +public class Kanten { + // jede Kante verbindet zwei Knoten + private Knote anfangsKnote; + private Knote endeKnote; + private boolean UndirectedGraph; + private int gewicht; + // Kante verbindet zwei Knoten (Undirected Graph) + public Kanten(Knote anfangsKnote, Knote endeKnote, boolean UndirectedGraph) { + this.anfangsKnote = anfangsKnote; + this.endeKnote = endeKnote; + this.UndirectedGraph = UndirectedGraph; + anfangsKnote.addKante(this); //speichert dann zu ihrem ArrayList diese Kante + endeKnote.addKante(this);//speichert dann auch zu ihrem ArrayList diese gleiche Kante + } + + // Kante verbindet eine Knote (Directed Graph) public Kanten(Knote anfangsKnote, Knote endeKnote) { this.anfangsKnote = anfangsKnote; this.endeKnote = endeKnote; anfangsKnote.addKante(this); - endeKnote.addKante(this); - } - - public Knote getPartner(Knote k) { - Knote partner = (k == anfangsKnote) ? endeKnote : anfangsKnote; - - return partner; } + // Kante verbindet eine Knoten und mit Gewicht (Weighted Directed Graph) + public Kanten(Knote anfangsKnote, Knote endeKnote, int gewicht) { + this.anfangsKnote = anfangsKnote; + this.endeKnote = endeKnote; + //anfangsKnote.addkanteMitGewicht(this,gewicht); + } + + // Kante verbindet zwei Knoten und mit Gewicht (Weighted UnDirected Graph) + public Kanten(Knote anfangsKnote, Knote endeKnote, int gewicht, boolean UndirectedGraph) { + this.anfangsKnote = anfangsKnote; + this.endeKnote = endeKnote; +// anfangsKnote.addkanteMitGewicht(this, gewicht); +// endeKnote.addkanteMitGewicht(this, gewicht); + this.UndirectedGraph = UndirectedGraph; + } + + public Knote getPartner(Knote k) { + return (k == anfangsKnote) ? endeKnote : anfangsKnote; + } + + public int getGewicht() { + return gewicht; + } + + public Knote getAnfangsKnote() { + return anfangsKnote; + } + + public Knote getEndeKnote() { + return endeKnote; + } + + + + } diff --git a/Programmierung2/src/Graphen/Knote.java b/Programmierung2/src/Graphen/Knote.java index d6c7f7f..1c99b2d 100644 --- a/Programmierung2/src/Graphen/Knote.java +++ b/Programmierung2/src/Graphen/Knote.java @@ -1,36 +1,39 @@ package Graphen; import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; public class Knote { - String name; - ArrayList kantenList = new ArrayList<>(); + private String name; + private ArrayList kantenList = new ArrayList<>(); Knote(String name){ this.name = name; } + //add kante zu this (knote) public void addKante(Kanten k) { kantenList.add(k); } + public String getName() { return name; } - + public ArrayList getKantenList() { return kantenList; } - - ArrayList verbindeteKnoten; + public void getPartner() { ArrayList merker = getKantenList(); if (merker == null) return ; - verbindeteKnoten = new ArrayList<>(); + ArrayList verbindeteKnoten = new ArrayList<>(); for (Kanten m : merker) verbindeteKnoten.add(m.getPartner(this)); diff --git a/Programmierung2/src/Graphen/Test.java b/Programmierung2/src/Graphen/Test.java index 133bf62..b6f910b 100644 --- a/Programmierung2/src/Graphen/Test.java +++ b/Programmierung2/src/Graphen/Test.java @@ -4,15 +4,17 @@ public class Test { public static void main(String[] args) { Graph graph = new Graph(); + Knote mannheim = new Knote("Mannheim"); Knote heidelberg = new Knote("Heidelberg"); + Knote Maiz = new Knote("Maiz"); graph.addknoten(mannheim); graph.addknoten(heidelberg); + graph.addknoten(Maiz); - new Kanten(graph.getKnote("Mannheim"),graph.getKnote("Heidelberg")); - - mannheim.getPartner(); - heidelberg.getPartner(); + + Kanten k3 = new Kanten(graph.getKnote("Heidelberg"),graph.getKnote("Maiz"),25,true); + } From 88e97dc34ebe24927f64207ce80ae156829e6938 Mon Sep 17 00:00:00 2001 From: 3009594 Date: Thu, 29 Aug 2024 22:12:05 +0200 Subject: [PATCH 2/2] Excell --- Programmierung2/src/Übungen/Excel/Excell.java | 22 ++++ .../src/Übungen/TicTac/Controller.java | 73 ++++++++++++ .../src/Übungen/TicTac/Modell.java | 39 ++++++ .../src/Übungen/TicTac/Tic_Tac_Toe.java | 58 +++++++++ Programmierung2/src/Übungen/TicTac/View.java | 5 + Programmierung2/src/Übungen/Tic_Tac_Toe.java | 111 ------------------ 6 files changed, 197 insertions(+), 111 deletions(-) create mode 100644 Programmierung2/src/Übungen/Excel/Excell.java create mode 100644 Programmierung2/src/Übungen/TicTac/Controller.java create mode 100644 Programmierung2/src/Übungen/TicTac/Modell.java create mode 100644 Programmierung2/src/Übungen/TicTac/Tic_Tac_Toe.java create mode 100644 Programmierung2/src/Übungen/TicTac/View.java delete mode 100644 Programmierung2/src/Übungen/Tic_Tac_Toe.java diff --git a/Programmierung2/src/Übungen/Excel/Excell.java b/Programmierung2/src/Übungen/Excel/Excell.java new file mode 100644 index 0000000..3aa9f30 --- /dev/null +++ b/Programmierung2/src/Übungen/Excel/Excell.java @@ -0,0 +1,22 @@ +package Übungen.Excel; + +public class Excell { + private static char[] buchstaben; + public static void main(String[] args) { + fülleTabell(); + printTabelle(); + } + + public static void fülleTabell() { + buchstaben = new char[26]; + int i = 0; + for (char b = 'A'; b <= 'Z';b++) { + buchstaben[i++] = b; + } + } + + public static void printTabelle() { + for (char a: buchstaben) + System.out.print("| " + a + " |"); + } +} diff --git a/Programmierung2/src/Übungen/TicTac/Controller.java b/Programmierung2/src/Übungen/TicTac/Controller.java new file mode 100644 index 0000000..10e936d --- /dev/null +++ b/Programmierung2/src/Übungen/TicTac/Controller.java @@ -0,0 +1,73 @@ +package Übungen.TicTac; + +import java.util.Scanner; + +public class Controller { + static Scanner scan = new Scanner(System.in); + static String[][] spielField = new String[3][3]; + private Modell spieler1; + private Modell spieler2; + private View view; + + public Controller(Modell spieler1, Modell spieler2, View view) { + this.spieler1 = spieler1; + this.spieler2 = spieler2; + this.view = view; + } + + public static boolean checkSet(String X_O, int x, int y) { + if (x < 0 || x > 2 || y < 0 || y > 2) + return false; + + if (!(spielField[x][y].equals("-"))) + return false; + + return true; + } + + + public static boolean checkGewinner(String player) { + for (int i = 0; i < 3; i++) { + if (spielField[i][0].equals(player) && spielField[i][1].equals(player) && spielField[i][2].equals(player)) + return true; + } + for (int i = 0; i < 3; i++) { + if (spielField[0][i].equals(player) && spielField[1][i].equals(player) && spielField[2][i].equals(player)) + return true; + } + if (spielField[0][0].equals(player) && spielField[1][1].equals(player) && spielField[2][2].equals(player)) + return true; + + if (spielField[0][2].equals(player) && spielField[1][1].equals(player) && spielField[2][0].equals(player)) + return true; + + return false; + } + + public static void ausgabeSpielFeld(String X_O, int x, int y) { + spielField[x][y] = X_O; + for (int i = 0; i < 3; i++) { + for (int j = 0; j < 3; j++) { + System.out.print(spielField[i][j] + "|"); + } + System.out.println(); + } + } + + public static void printSpielfeld() { + for (int i = 0; i < 3; i++) { + for (int j = 0; j < 3; j++) { + if (j == 2) { + spielField[i][j] = "-"; + System.out.print(spielField[i][j]); + } else { + spielField[i][j] = "-"; + System.out.print(spielField[i][j]); + System.out.print("|"); + } + } + System.out.println(); + } + } + +} diff --git a/Programmierung2/src/Übungen/TicTac/Modell.java b/Programmierung2/src/Übungen/TicTac/Modell.java new file mode 100644 index 0000000..c1d904b --- /dev/null +++ b/Programmierung2/src/Übungen/TicTac/Modell.java @@ -0,0 +1,39 @@ +package Übungen.TicTac; + +public class Modell { + + private String name; + private String vorname; + private int anzahlGewinn; + private String zeichen; + + public Modell(String name, String vorname, int anzahlGewinn,String zeichen) { + this.name = name; + this.vorname = vorname; + this.anzahlGewinn = anzahlGewinn; + this.zeichen = zeichen; + } + + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + public String getVorname() { + return vorname; + } + public void setVorname(String vorname) { + this.vorname = vorname; + } + public int getAnzahlGewinn() { + return anzahlGewinn; + } + public void setAnzahlGewinn(int anzahlGewinn) { + this.anzahlGewinn = anzahlGewinn; + } + + public String getZeichen() { + return zeichen; + } +} diff --git a/Programmierung2/src/Übungen/TicTac/Tic_Tac_Toe.java b/Programmierung2/src/Übungen/TicTac/Tic_Tac_Toe.java new file mode 100644 index 0000000..3c60d62 --- /dev/null +++ b/Programmierung2/src/Übungen/TicTac/Tic_Tac_Toe.java @@ -0,0 +1,58 @@ +package Übungen.TicTac; +import java.util.Scanner; + +public class Tic_Tac_Toe { + + + public static void main(String[] args){ + +// +// printSpielfeld(); +// while (true) { +// System.out.println("Bitte geben Sie 'x' und neue Position ein: "); +// String playerx =scan.nextLine(); +// int x = scan.nextInt(); +// int y = scan.nextInt(); +// while (!checkSet(playerx, x, y)) { +// scan.nextLine(); +// System.out.println("Falsche Eingabe! Versuchen Sie nochmal: "); +// playerx =scan.nextLine(); +// x = scan.nextInt(); +// y = scan.nextInt(); +// if (checkSet(playerx, x, y)) +// break; +// } +// ausgabeSpielFeld(playerx, x, y); +// if (checkGewinner(playerx)) { +// System.out.println("Spieler X hat gewonnen!"); +// break; +// } +// scan.nextLine(); +// +// System.out.println("Bitte geben Sie 'O' und neue Position ein: "); +// String playero =scan.nextLine(); +// x = scan.nextInt(); +// y = scan.nextInt(); +// while (!checkSet(playero, x, y)) { +// scan.nextLine(); +// System.out.println("Falsche Eingabe! Versuchen Sie nochmal: "); +// playero =scan.nextLine(); +// x = scan.nextInt(); +// y = scan.nextInt(); +// } +// ausgabeSpielFeld(playero, x, y); +// if (checkGewinner(playero)) { +// System.out.println("Spieler O hat gewonnen!"); +// break; +// } +// scan.nextLine(); +// } +// } +// +// + + + + + } +} diff --git a/Programmierung2/src/Übungen/TicTac/View.java b/Programmierung2/src/Übungen/TicTac/View.java new file mode 100644 index 0000000..6a103ef --- /dev/null +++ b/Programmierung2/src/Übungen/TicTac/View.java @@ -0,0 +1,5 @@ +package Übungen.TicTac; + +public class View { + +} diff --git a/Programmierung2/src/Übungen/Tic_Tac_Toe.java b/Programmierung2/src/Übungen/Tic_Tac_Toe.java deleted file mode 100644 index 21f9e5c..0000000 --- a/Programmierung2/src/Übungen/Tic_Tac_Toe.java +++ /dev/null @@ -1,111 +0,0 @@ -package Übungen; -import java.util.Scanner; - -public class Tic_Tac_Toe { - static Scanner scan = new Scanner(System.in); - static String[][] spielField = new String[3][3]; - static final String playerx = "x" ; - static final String playero = "o" ; - - public static void main(String[] args){ - - - printSpielfeld(); - while (true) { - System.out.println("Bitte geben Sie 'x' und neue Position ein: "); - String playerx =scan.nextLine(); - int x = scan.nextInt(); - int y = scan.nextInt(); - while (!checkSet(playerx, x, y)) { - scan.nextLine(); - System.out.println("Falsche Eingabe! Versuchen Sie nochmal: "); - playerx =scan.nextLine(); - x = scan.nextInt(); - y = scan.nextInt(); - if (checkSet(playerx, x, y)) - break; - } - ausgabeSpielFeld(playerx, x, y); - if (checkGewinner(playerx)) { - System.out.println("Spieler X hat gewonnen!"); - break; - } - scan.nextLine(); - - System.out.println("Bitte geben Sie 'O' und neue Position ein: "); - String playero =scan.nextLine(); - x = scan.nextInt(); - y = scan.nextInt(); - while (!checkSet(playero, x, y)) { - scan.nextLine(); - System.out.println("Falsche Eingabe! Versuchen Sie nochmal: "); - playero =scan.nextLine(); - x = scan.nextInt(); - y = scan.nextInt(); - } - ausgabeSpielFeld(playero, x, y); - if (checkGewinner(playero)) { - System.out.println("Spieler O hat gewonnen!"); - break; - } - scan.nextLine(); - } - } - - public static boolean checkSet(String X_O, int x, int y){ - if ( x < 0 || x > 2 || y < 0 || y > 2) - return false; - - if (!(spielField[x][y].equals("-")) ) - return false; - - return true; - } - - public static boolean checkGewinner(String player){ - for(int i = 0 ; i < 3; i++){ - if (spielField[i][0].equals(player) && spielField[i][1].equals(player) && spielField[i][2].equals(player)) - return true; - } - for (int i = 0; i < 3; i++){ - if (spielField[0][i].equals(player) &&spielField[1][i].equals(player) &&spielField[2][i].equals(player)) - return true; - } - if (spielField[0][0].equals(player)&& spielField[1][1].equals(player)&& spielField[2][2].equals(player)) - return true; - - if (spielField[0][2].equals(player)&& spielField[1][1].equals(player)&& spielField[2][0].equals(player)) - return true; - - return false; - } - - public static void ausgabeSpielFeld(String X_O, int x, int y){ - spielField[x][y] = X_O; - for (int i = 0; i < 3; i++){ - for (int j = 0; j < 3; j++){ - System.out.print(spielField[i][j] + "|"); - } - System.out.println(); - } - - - - } - public static void printSpielfeld(){ - for (int i = 0; i < 3; i++){ - for (int j = 0; j < 3; j++){ - if (j == 2){ - spielField[i][j] = "-"; - System.out.print(spielField[i][j]); - }else{ - spielField[i][j] = "-"; - System.out.print(spielField[i][j]); - System.out.print("|"); - } - } - System.out.println(); - } - - } -}