diff --git a/Programmieren/.classpath b/Programmieren/.classpath
index ac9ce57..8854d8d 100644
--- a/Programmieren/.classpath
+++ b/Programmieren/.classpath
@@ -6,5 +6,7 @@
+
+
diff --git a/Programmieren/src/Lernen/BinSuche.java b/Programmieren/src/Lernen/BinSuche.java
index 808e711..f58679d 100644
--- a/Programmieren/src/Lernen/BinSuche.java
+++ b/Programmieren/src/Lernen/BinSuche.java
@@ -5,7 +5,7 @@ public class BinSuche {
public static void main(String[] args) {
int[] arr = {17, 4, 3, 8, 7, 2, 5, 9, 12, 25, 0, 6, 19, 16, 42, 21};
- BubbleSort.bubblesort(arr);
+ BubbleSort.bubbleSort(arr);
int ergebnis = binaereSuche(arr, 42);
if (ergebnis != -1) {
diff --git a/Programmieren/src/Lernen/BubbleSort.java b/Programmieren/src/Lernen/BubbleSort.java
index a173a62..b8f9c4e 100644
--- a/Programmieren/src/Lernen/BubbleSort.java
+++ b/Programmieren/src/Lernen/BubbleSort.java
@@ -1,3 +1,5 @@
+package Lernen;
+
import java.util.Arrays;
public class BubbleSort {
@@ -18,36 +20,41 @@ public class BubbleSort {
public static void main(String[] args) {
-// int[] arr = {1,2,3,4,5,6,7,8}; // best case
- int[] arr = {17, 4, 3, 8, 7, 2, 5, 9, 12}; // *some* average case
-// int[] arr = {17, 8, 6, 5, 4, 3, 2, 1}; // worst case
- int zähler = 0;
+
+ // int[] arr = {1,2,3,4,5,6,7,8}; // best case
+ int[] arr = {17, 4, 3, 8, 7, 2, 5, 9, 12}; // *some* average case
+ // int[] arr = {17, 8, 6, 5, 4, 3, 2, 1}; // worst case
- boolean sortiert;
- do {
- sortiert = true;
-
- for (int x = 0; x < arr.length-1; x++) {
- if (arr[x] > arr[x+1]) {
- swap(arr, x, x+1);
- sortiert = false;
- }
+ bubbleSort(arr);
- zähler++;
- } // for
-
- } while(!sortiert);
+ System.out.println(Arrays.toString(arr));
+ }
+ public static void bubbleSort(int[] arr) {
+ int zähler = 0;
+ boolean sortiert;
- System.out.println(Arrays.toString(arr));
- System.out.println(zähler);
- }
+ do {
+ sortiert = true;
- public static void swap(int[] brr, int ei, int zi ) {
- int merker = brr[ei];
- brr[ei] = brr[zi];
- brr[zi] = merker;
- }
+ for (int x = 0; x < arr.length - 1; x++) {
+ if (arr[x] > arr[x + 1]) {
+ swap(arr, x, x + 1);
+ sortiert = false;
+ }
-}
\ No newline at end of file
+ zähler++;
+ } // for
+
+ } while (!sortiert);
+
+ System.out.println("Anzahl der Vergleiche: " + zähler);
+ }
+
+ public static void swap(int[] brr, int ei, int zi) {
+ int merker = brr[ei];
+ brr[ei] = brr[zi];
+ brr[zi] = merker;
+ }
+ }
\ No newline at end of file
diff --git a/Programmieren/src/Lernen/Testat1.java b/Programmieren/src/Lernen/Testat1.java
index 82096b2..917e00b 100644
--- a/Programmieren/src/Lernen/Testat1.java
+++ b/Programmieren/src/Lernen/Testat1.java
@@ -18,41 +18,41 @@ public class Testat1 {
System.out.println("Geben Sie das Initialpasswort ein:");
String passwort1 = scanner.nextLine();
while(fehlversuche <=2) {
- if(passwort1.equals(initialpasswort)) {
- System.out.println("Wie soll Ihr neues Passwort aussehen?");
- String passwort2 = scanner.nextLine();
- if(passwort2.length()>=8 && passwort2.length() <= 16 ) {
- System.out.println("Das Passwort erfüllt die Längenvorgaben");
- System.out.println("Bitte geben Sie zur Sicherheit das neue Passwort erneut ein");
- String passwort3 = scanner.nextLine();
- if(passwort3.equals(passwort2)) {
- System.out.println("Ihr neues Passwort wurde gesetzt");
- initialpasswort = passwort2;
- System.out.println("Wollen Sie erneut ein neues passwort setzen?");
- bereit = scanner.nextLine();
- }//schließt if abfrage ob neues passwort 2te eingabe ist erste eingabe
+ if(passwort1.equals(initialpasswort)) {
+ System.out.println("Wie soll Ihr neues Passwort aussehen?");
+ String passwort2 = scanner.nextLine();
+ if(passwort2.length()>=8 && passwort2.length() <= 16 ) {
+ System.out.println("Das Passwort erfüllt die Längenvorgaben");
+ System.out.println("Bitte geben Sie zur Sicherheit das neue Passwort erneut ein");
+ String passwort3 = scanner.nextLine();
+ if(passwort3.equals(passwort2)) {
+ System.out.println("Ihr neues Passwort wurde gesetzt");
+ initialpasswort = passwort2;
+ System.out.println("Wollen Sie erneut ein neues passwort setzen?");
+ bereit = scanner.nextLine();
+ }//schließt if abfrage ob neues passwort 2te eingabe ist erste eingabe
+ else {
+ System.out.println("Ihr neues Passwort stimmt nicht überein.");
+ System.out.println("Bitte versuchen sie das neu gesetzte Passwort erneut");
+ passwort3 = scanner.nextLine();
+ }//schließt passwort neu eingabe 2 und 1 sind nicht klein
+ }//schließt if passwort is größer 8 kleiner 16
else {
- System.out.println("Ihr neues Passwort stimmt nicht überein.");
- System.out.println("Bitte versuchen sie das neu gesetzte Passwort erneut");
- passwort3 = scanner.nextLine();
- }//schließt passwort neu eingabe 2 und 1 sind nicht klein
- }//schließt if passwort is größer 8 kleiner 16
- else {
- System.out.println("Das Passwort erfüllt leider nicht die Längenvorgaben");
- System.out.println("Bitte versuchen Sie es nocheinmal");
- passwort2 = scanner.nextLine();
- }//schließst else falsche länge
- }//schließt die if abfrage ob passwort1 initialpasswort
+ System.out.println("Das Passwort erfüllt leider nicht die Längenvorgaben");
+ System.out.println("Bitte versuchen Sie es nocheinmal");
+ passwort2 = scanner.nextLine();
+ }//schließst else falsche länge
+ }//schließt die if abfrage ob passwort1 initialpasswort
- else {
- fehlversuche = fehlversuche +1;
- System.out.println("Das Passwort ist leider nicht korrekt.");
- System.out.println("Bitte versuchen Sie es noch einmal");
- passwort1 = scanner.nextLine();
- }//schließt die falsche Passwort else
+ else {
+ fehlversuche = fehlversuche +1;
+ System.out.println("Das Passwort ist leider nicht korrekt.");
+ System.out.println("Bitte versuchen Sie es noch einmal");
+ passwort1 = scanner.nextLine();
+ }//schließt die falsche Passwort else
}
-
-
+
+
{
System.out.println("Sie haben zu viele Falsche eingaben gemacht.");
System.out.println("Bitte Kontaktieren Sie den Support.");
diff --git a/Programmieren/src/Lernen/VierGewinnt.java b/Programmieren/src/Lernen/VierGewinnt.java
index 393c45a..998cb41 100644
--- a/Programmieren/src/Lernen/VierGewinnt.java
+++ b/Programmieren/src/Lernen/VierGewinnt.java
@@ -1,132 +1,154 @@
+package Lernen;
+
import java.util.Scanner;
public class VierGewinnt {
- public static char[][] spielfeldInitialisieren() {
- char[][] spielfeld = new char[6][7];
- return spielfeld;
- }
+
+ public static void main(String[] args) {
+ System.out.println("Willkommen zu 4 Gewinnt!");
+
+ // Game Loop
+ Scanner kb = new Scanner(System.in);
+
+ boolean weiter = false;
+ char spieler = 'x';
+ do {
+ char[][] spielfeld = spielfeldInitialisieren();
+ int steineZähler = 0;
+
+ spielfeldAusgeben(spielfeld);
+
+ // Gewinner Loop
+ boolean gewonnen = false;
+ do {
+ if (spieler == 'o')
+ spieler = 'x';
+ else
+ spieler = 'o';
+
+ // Spielstein einwerfen
+ int spalte, zeile;
+ do {
+ System.out.print("Spieler " + spieler + ", bitte wählen Sie eine Spalte aus: ");
+ spalte = kb.nextInt() - 1; // da Spalte eins verschoben
+
+ if ((zeile = einwurfVerarbeiten(spielfeld, spalte, spieler)) == -1)
+ System.err.println("Ungültige Auswahl!");
+ else
+ break;
+ } while(true);
+ steineZähler++;
+
+ spielfeldAusgeben(spielfeld);
- public static void spielfeldAusgeben(char[][] spielfeld) {
- for (int z = 0; z < spielfeld.length; z++) {
- for (int s = 0; s < spielfeld[z].length; s++) {
- System.out.print(spielfeld[z][s] + " ");
- }
- System.out.println();
- }
- }
+ gewonnen = gewinnerPrüfung(spielfeld, zeile, spalte);
+ } while(!gewonnen && steineZähler < 42);
+
+ if (!gewonnen && steineZähler == 42) {
+ System.out.println("Das Spiel endet unentschieden.");
+ } else {
+ System.out.println("Es gewinnt Spieler " + spieler);
+ }
+
+ } while (weiter);
+
+ System.out.println("Auf Wiedersehen!");
+ } // main
- public static boolean gewinnpruefung(char[][] spielfeld, char spieler) {
- // Check for horizontal win
- for (int z = 0; z < spielfeld.length; z++) {
- for (int s = 0; s <= spielfeld[z].length - 4; s++) {
- if (spielfeld[z][s] == spieler &&
- spielfeld[z][s + 1] == spieler &&
- spielfeld[z][s + 2] == spieler &&
- spielfeld[z][s + 3] == spieler) {
- return true;
- }
- }
- }
+ public static char[][] spielfeldInitialisieren() {
+ char[][] spielfeld = new char[6][7];
+
+ for (int z = 0; z < spielfeld.length; z++) {
+ for (int s = 0; s < spielfeld[z].length; s++) {
+ spielfeld[z][s] = '_';
+ }
+ }
+
+ return spielfeld;
+ }
+
+ public static void spielfeldAusgeben(char[][] spielfeld) {
+ System.out.println();
+
+ // Alle Zeilen ausgeben
+ for (int z = 0; z < spielfeld.length; z++) {
+
+ // Alle Spalten der z-ten Zeile ausgeben
+ for (int s = 0; s < spielfeld[z].length; s++) {
+ System.out.print("| " + spielfeld[z][s] + " " );
+ }
+ System.out.println("|");
+ }
+
+ System.out.println();
+
+ for (int s = 0; s < spielfeld[0].length; s++) {
+ System.out.print("| " + (s+1) + " " );
+ }
+
+ System.out.println("|");
+ System.out.println();
+ }
- // Check for vertical win
- for (int s = 0; s < spielfeld[0].length; s++) {
- for (int z = 0; z <= spielfeld.length - 4; z++) {
- if (spielfeld[z][s] == spieler &&
- spielfeld[z + 1][s] == spieler &&
- spielfeld[z + 2][s] == spieler &&
- spielfeld[z + 3][s] == spieler) {
- return true;
- }
- }
- }
+ public static int einwurfVerarbeiten(char[][] spielfeld, int spalte, char stein) {
+ if (spalte < 0 || spalte > 6)
+ return -1;
+
+ for (int z = spielfeld.length - 1; z >= 0 ; z--) {
+ if (spielfeld[z][spalte] != '_' && z == 0) // Spalte voll?
+ return -1;
+
+ if (spielfeld[z][spalte] == '_') {
+ spielfeld[z][spalte] = stein;
+ return z;
+ }
+ }
+
+ return -1;
+ }
- // Check for diagonal win (from top-left to bottom-right)
- for (int z = 0; z <= spielfeld.length - 4; z++) {
- for (int s = 0; s <= spielfeld[z].length - 4; s++) {
- if (spielfeld[z][s] == spieler &&
- spielfeld[z + 1][s + 1] == spieler &&
- spielfeld[z + 2][s + 2] == spieler &&
- spielfeld[z + 3][s + 3] == spieler) {
- return true;
- }
- }
- }
+ public static boolean gewinnerPrüfung(char[][] spielfeld, int zeile, int spalte) {
+
+ // vertikale Prüfung
+ for (int i = 0; i < 3; i++) {
+ if (spielfeld[0 + i][spalte] == spielfeld[1 + i][spalte]
+ && spielfeld[0 + i][spalte] == spielfeld[2 + i][spalte]
+ && spielfeld[0 + i][spalte] == spielfeld[3 + i][spalte]
+ && spielfeld[0 + i][spalte] != '_')
+ return true;
+ }
+
+ // horizontale Prüfung
+ for (int i = 0; i < 4; i++) {
+ if (spielfeld[zeile][0 + i] == spielfeld[zeile][1 + i]
+ && spielfeld[zeile][0 + i] == spielfeld[zeile][2 + i]
+ && spielfeld[zeile][0 + i] == spielfeld[zeile][3 + i]
+ && spielfeld[zeile][0 + i] != '_')
+ return true;
+ }
- // Check for diagonal win (from top-right to bottom-left)
- for (int z = 0; z <= spielfeld.length - 4; z++) {
- for (int s = 3; s < spielfeld[z].length; s++) {
- if (spielfeld[z][s] == spieler &&
- spielfeld[z + 1][s - 1] == spieler &&
- spielfeld[z + 2][s - 2] == spieler &&
- spielfeld[z + 3][s - 3] == spieler) {
- return true;
- }
- }
- }
+ // diagonale Prüfung 1: "Plusplus-Fall", z.B. spielfeld[z+1][s+1]
+ for (int z = 0; z < 3; z++) {
+ for (int s = 0; s < 4; s++) {
+ if (spielfeld[z][s] == spielfeld[z+1][s+1]
+ && spielfeld[z][s] == spielfeld[z+2][s+2]
+ && spielfeld[z][s] == spielfeld[z+3][s+3]
+ && spielfeld[z][s] != '_')
+ return true;
+ }
+ }
- // No winning condition found
- return false;
- }
+ // diagonale Prüfung 2: "Minusplus-Fall", z.B. spielfeld[z-1][s+1]
+ for (int z = spielfeld.length-1; z > spielfeld.length-4; z--) {
+ for (int s = 0; s < 4; s++) {
+ if (spielfeld[z][s] == spielfeld[z-1][s+1]
+ && spielfeld[z][s] == spielfeld[z-2][s+2]
+ && spielfeld[z][s] == spielfeld[z-3][s+3]
+ && spielfeld[z][s] != '_')
+ return true;
+ }
+ }
-
- public static void main(String[] args) {
- System.out.println("Willkommen beim 4 Gewinnt der PR1");
-
- boolean weiter = true;
- Scanner scanner = new Scanner(System.in);
-
- // Game loop
- do {
- char[][] spielfeld = spielfeldInitialisieren();
-
- // Gewinner loop
- boolean gewonnen = false;
- char aktuellerSpieler = 'X';
-
- // Game loop
- do {
- // Spielfeld ausgeben
- spielfeldAusgeben(spielfeld);
-
- // Spielstein einwurf
- System.out.println("Spieler " + aktuellerSpieler + " ist am Zug. Bitte Spalte wählen (1-7): ");
- int spalte = scanner.nextInt() - 1;
-
- // Überprüfen, ob die gewählte Spalte gültig ist
- if (spalte < 0 || spalte >= spielfeld[0].length || spielfeld[0][spalte] != ' ') {
- System.out.println("Ungültige Eingabe. Bitte erneut versuchen.");
- continue;
- }
-
- // Spielstein setzen
- for (int z = spielfeld.length - 1; z >= 0; z--) {
- if (spielfeld[z][spalte] == ' ') {
- spielfeld[z][spalte] = aktuellerSpieler;
- break;
- }
- }
-
- // Gewinnprüfung
- gewonnen = gewinnpruefung(spielfeld, aktuellerSpieler);
-
- // Wechsel zum anderen Spieler
- aktuellerSpieler = (aktuellerSpieler == 'X') ? 'O' : 'X';
-
- } while (!gewonnen);
-
- // Spielfeld am Ende nochmal ausgeben
- spielfeldAusgeben(spielfeld);
-
- // Gewinner ausgabe bzw. Unentschieden
- System.out.println("Spieler " + aktuellerSpieler + " hat gewonnen!");
-
- // Spiel nochmal spielen?
- System.out.println("Möchten Sie nochmal spielen? (ja/nein): ");
- String wiederholen = scanner.next();
- weiter = wiederholen.equalsIgnoreCase("ja");
-
- } while (weiter);
-
- scanner.close();
- }
+ return false;
+ }
}
diff --git a/Programmieren/src/Lernen/ZaehlSchleife.java b/Programmieren/src/Lernen/ZaehlSchleife.java
index 573cfb1..f29b97f 100644
--- a/Programmieren/src/Lernen/ZaehlSchleife.java
+++ b/Programmieren/src/Lernen/ZaehlSchleife.java
@@ -3,7 +3,7 @@ package Lernen;
public class ZaehlSchleife {
public static void main (String[]args) {
for(int i=1; i<10; i++) {
- System.out.println("%2d%n",i);
+ System.out.printf("%2d%n",i);
}
}
}