Zweidimensionale Arrays in Java - Java Programmieren Lernen - 26

แชร์
ฝัง
  • เผยแพร่เมื่อ 30 ม.ค. 2025

ความคิดเห็น • 22

  • @JonasKeil
    @JonasKeil  3 ปีที่แล้ว +1

    🔥Exklusiver Content: www.patreon.com/user?u=50183366
    👉Trete der Discord-Community bei: discord.gg/wkWe3FvdSu
    🚀Java in einer Playlist lernen (Beginner bis Profi):
    th-cam.com/play/PLO-P6W97sI0Q-o0oZy8NeUgi0s5WKK8IV.html

  • @h3xx1tt
    @h3xx1tt ปีที่แล้ว +8

    Ich habe gestern schon ein video von dir kommentiert :D
    Dieses Thema muss ich mir noch näher bringen war etwas schnell für meinen Geschmack und das mit dem Dreieckigen Array hat mich komplett aus der Bahn geworfen :D aber sonst gutes Video :)

  • @leas_flowergarden
    @leas_flowergarden ปีที่แล้ว

    Vielen Dank für die Erklärung!!

  • @paddysusi7808
    @paddysusi7808 5 หลายเดือนก่อน +2

    Gutes Video, wenn ich auch nach wie vor Probleme mit dem Dreieck habe.
    Dafür habe ich mich mal an TicTacToe versucht und folgendes programmiert (objektorientiert, zum Ausführen muss Methode spieltictactoe in main aufgerufen werden). Es lässt sich jedenfalls spielen ;):
    import java.util.Scanner;
    public class TicTacToe {
    String[][] spielfeld = new String[3][3];
    int counter = 0;
    int spielfelder = 0;
    boolean belegt = false;
    boolean gueltig = false;
    int runde = 0;
    String rundenwert;
    Scanner scan = new Scanner(System.in);
    public void spieltictactoe(){
    System.out.println("Das ist TicTacToe. Du kannst die Felder A1 oben links bis B3 unten rechts besetzen. X beginnt. Bitte gib dein Feld mit A1/A2... an.");
    System.out.println(spielfeld.length);
    for (int i = 0; i < spielfeld.length; i++) {
    for (int i1 = 0; i1 < spielfeld.length; i1++) {
    if (spielfeld[i][i1] == null){
    System.out.print(" . ");
    } else {
    System.out.print(spielfeld[i][i1] + "\t");
    }
    }
    System.out.println();
    }
    while (spielfeld[0][0] == null || spielfeld[0][1] == null || spielfeld[0][2] == null || spielfeld[1][0] == null || spielfeld[1][1] == null || spielfeld[1][2] == null || spielfeld[2][0] == null || spielfeld[2][1] == null || spielfeld[2][2] == null) {
    if(spielfelder < 9) {
    System.out.println(spielfelder);
    if (counter == 0) {
    if (runde == 0) {
    System.out.println("X ist an der reihe!");
    rundenwert = " X ";
    } else {
    System.out.println("O ist an der reihe!");
    rundenwert = " O ";
    }
    String xin = scan.next();
    if (xin.equals("A1")) {
    if (spielfeld[0][0] == null) {
    spielfeld[0][0] = rundenwert;
    gueltig = true;
    } else {
    belegt = true;
    }
    } else if (xin.equals("A2")) {
    if (spielfeld[0][1] == null) {
    spielfeld[0][1] = rundenwert;
    gueltig = true;
    } else {
    belegt = true;
    }
    } else if (xin.equals("A3")) {
    if (spielfeld[0][2] == null) {
    spielfeld[0][2] = rundenwert;
    gueltig = true;
    } else {
    belegt = true;
    }
    } else if (xin.equals("B1")) {
    if (spielfeld[1][0] == null) {
    spielfeld[1][0] = rundenwert;
    gueltig = true;
    } else {
    belegt = true;
    }
    } else if (xin.equals("B2")) {
    if (spielfeld[1][1] == null) {
    spielfeld[1][1] = rundenwert;
    gueltig = true;
    } else {
    belegt = true;
    }
    } else if (xin.equals("B3")) {
    if (spielfeld[1][2] == null) {
    spielfeld[1][2] = rundenwert;
    gueltig = true;
    } else {
    belegt = true;
    }
    } else if (xin.equals("C1")) {
    if (spielfeld[2][0] == null) {
    spielfeld[2][0] = rundenwert;
    gueltig = true;
    } else {
    belegt = true;
    }
    } else if (xin.equals("C2")) {
    if (spielfeld[2][1] == null) {
    spielfeld[2][1] = rundenwert;
    gueltig = true;
    } else {
    belegt = true;
    }
    } else if (xin.equals("C3")) {
    if (spielfeld[2][2] == null) {
    spielfeld[2][2] = rundenwert;
    gueltig = true;
    } else {
    belegt = true;
    }
    }
    if (belegt == true) {
    System.out.println("Feld ist bereits belegt, bitte wähle ein anderes aus!");
    belegt = false;
    } else if (gueltig == true) {
    spielfelder++;
    runde++;
    if (runde == 2) {
    runde = 0;
    }
    }
    gueltig = false;
    for (int i = 0; i < spielfeld.length; i++) {
    for (int i1 = 0; i1 < spielfeld.length; i1++) {
    if (spielfeld[i][i1] == null) {
    System.out.print(" . ");
    } else {
    System.out.print(spielfeld[i][i1] + "\t");
    }
    }
    System.out.println();
    }
    counter = 1;
    } else {
    counter = 0;
    }
    if (spielfeld[0][0] == spielfeld[0][1] && spielfeld[0][1] == spielfeld[0][2] && spielfeld[0][1] != null) {
    System.out.println(spielfeld[0][0] + "hat gewonnen!");
    break;
    } else if (spielfeld[1][0] == spielfeld[1][1] && spielfeld[1][1] == spielfeld[1][2] && spielfeld[1][1] != null) {
    System.out.println(spielfeld[1][0] + "hat gewonnen!");
    break;
    } else if (spielfeld[2][0] == spielfeld[2][1] && spielfeld[2][1] == spielfeld[2][2] && spielfeld[2][1] != null) {
    System.out.println(spielfeld[2][0] + "hat gewonnen!");
    break;
    } else if (spielfeld[0][0] == spielfeld[1][0] && spielfeld[1][0] == spielfeld[2][0] && spielfeld[2][0] != null) {
    System.out.println(spielfeld[0][0] + "hat gewonnen!");
    break;
    } else if (spielfeld[0][1] == spielfeld[1][1] && spielfeld[1][1] == spielfeld[2][1] && spielfeld[0][1] != null) {
    System.out.println(spielfeld[0][1] + "hat gewonnen!");
    break;
    } else if (spielfeld[0][2] == spielfeld[1][2] && spielfeld[1][2] == spielfeld[2][2] && spielfeld[1][2] != null) {
    System.out.println(spielfeld[0][2] + "hat gewonnen!");
    break;
    } else if (spielfeld[0][0] == spielfeld[1][1] && spielfeld[1][1] == spielfeld[2][2] && spielfeld[2][2] != null) {
    System.out.println(spielfeld[0][0] + "hat gewonnen!");
    break;
    } else if (spielfeld[0][2] == spielfeld[1][1] && spielfeld[1][1] == spielfeld[2][0] && spielfeld[2][0] != null) {
    System.out.println(spielfeld[0][2] + "hat gewonnen!");
    break;
    }
    }
    }
    System.out.println("Unentschieden... Keiner hat gewonnen! Bitte Neustarten!");
    }
    }

  • @medinecevik2991
    @medinecevik2991 7 หลายเดือนก่อน

    Sag mal wie kann ich die zeilensumme und spaltensumme vom array berechnen und ausgeben komme drauf nicht hilfe danke

  • @jakoblorenz1785
    @jakoblorenz1785 7 หลายเดือนก่อน

    Ich hab Deine sehr hilfreiche Playlist nun durchgemacht und verstanden. Gibt es ein geeignetes Übungsprogramm, das mir hilf das Erlernte zu üben und festigen?

  • @ladonveron
    @ladonveron 10 หลายเดือนก่อน

    Müssten die Wochentage nicht in den Zeilen stehen und der rest in den Spalten?

    • @tomxle6278
      @tomxle6278 8 หลายเดือนก่อน

      Dann hätte der Montag mit der 1 gar nichts mehr zu tun, da sie in versch. Arrays sind. So kann man auf den wochentagsint vom Montag leicht zugreifen. Und wenn du es sonst nur so untereinander sehen möchtest, dann Dreh dein Monitor :)

  • @dsdasad
    @dsdasad ปีที่แล้ว +3

    super gemacht, allerdings wie du auf Array 2D zugreift mit schleifen. wird nicht funktionieren, wenn du ein Array mit 5*10 hast oder 10*5. Deswegen musst du folgendes machen
    String [][] eins_mal_eins = new String [10][10];
    for (int i = 0; i < eins_mal_eins.length; i++) {
    for (int j = 0; j < eins_mal_eins[i].length; j++) {
    ........

  • @Cr7goat1111
    @Cr7goat1111 2 ปีที่แล้ว

    Tolles Video. Wie könnte man davon sie Zeilen/Spaltensumme berechnen, dass er mir es wie folgt ausgibt.
    Zeilennummer:
    1. 55
    2. 80
    …..
    Spaltensumme:
    1. 200
    2.
    …..
    (die Ergebnisse sind natürlich nicht richtig:))
    Danke im Voraus

  • @lme3679
    @lme3679 3 ปีที่แล้ว +1

    wäre es nicht einfacher, dem Index 11 zu übergeben, um 10 Elemente im Index zur Verfügung zu haben? Danke - top Video :)

    • @JonasKeil
      @JonasKeil  3 ปีที่แล้ว

      Hey LME, erstmal vielen dank für dein Feedback😁 Wenn du den Index 10 übergibst hast du ja 10 Elemente, nämlich von 0-9 :)

    • @JonasKeil
      @JonasKeil  3 ปีที่แล้ว

      Also beim Index 11 hättest du dann auch 11 Elemente (0,1,2,3,4,5,6,7,8,9,10). Beantwortet das deinen Vorschlag?

    • @lme3679
      @lme3679 3 ปีที่แล้ว +1

      @@JonasKeil ich dachte, man könnte den Index auf 11 setzen, um die Werte von 0-10 auch zu erhalten. So könnte man sich das +1 in der for-Schleife sparen?! Danke für deine schnelle Antwort :)

    • @JonasKeil
      @JonasKeil  3 ปีที่แล้ว +1

      @@lme3679 Den Gedanken finde ich echt gut😁 Das zeigt nämlich dass du For-Schleifen sehr gut verstanden hast :) Das Problem ist hier nur, dass wir den Index von 1-10 haben wollen, deshalb das Plus 1 (es kann ja keine 0 gewürfelt werden). Für einen Wertebereich von 0-10 wäre deine Lösung aber selbstverständlich eleganter 😇👍🏻

  • @vegetager2308
    @vegetager2308 2 ปีที่แล้ว +5

    Da sich noch niemand getraut hat hier mein Versuch von Tic-Tac-Toe. Es ist nicht Perfekt es fehlt die Abfrage nach der Doppelbelegung von Spielfeldern und was passiert wenn man außerhalb des Spielfeldes platziert aber es ist ein Anfang.
    import java.util.Scanner;
    public class TicTacToe {
    public static void main(String[] args) {
    String A0 = "empty";
    String A1 = "empty";
    String A2 = "empty";
    String B0 = "empty";
    String B1 = "empty";
    String B2 = "empty";
    String C0 = "empty";
    String C1 = "empty";
    String C2 = "empty";
    int counter = 0;
    String[][] spielfeld = new String[3][3];
    System.out.println("Lass uns TIC-TAC-TOE spielen" + "
    " + "Du kannst in die Felder A0(oben links) bis C3 (unten rechts setzen)" + "
    " + "Es beginnt X dann ist O an der Reihe"
    + "
    " + "Wer 3 Symbole in einer Reihe Horizontal, Diagonal oder Vertikal hat, hat gewonnen!" + "
    " + "X beginnt! Bitte gib dein Feld mit A0,A1,A2,B0 usw an!");
    for (int i = 0; i < spielfeld.length; i++) {
    for (int i1 = 0; i1 < spielfeld.length; i1++) {
    spielfeld[i][i1] = " . ";
    }
    }
    for (int i = 0; i < spielfeld.length; i++) {
    for (int i1 = 0; i1 < spielfeld.length; i1++) {
    System.out.print(spielfeld
    [i][i1] + "\t" + "\t");
    }
    System.out.println();
    System.out.println();
    }
    while (A0.contains("empty") || A1.contains("empty") || A2.contains("Empty") || B0.contains("Empty") || B1.contains("empty") || B2.contains("empty") || C0.contains("empty")
    || C1.contains("empty") || C2.contains("empty")) {
    counter++;
    Scanner scannerx = new Scanner(System.in);
    if (counter % 2 != 0) {
    System.out.println("X ist an der reihe!");
    String xin = scannerx.next();
    xin.toUpperCase();
    if (xin.equals("A0")) {
    A0 = "X";
    spielfeld[0][0] = " X ";
    for (int i = 0; i < spielfeld.length; i++) {
    for (int i1 = 0; i1 < spielfeld.length; i1++) {
    System.out.print(spielfeld
    [i][i1] + "\t" + "\t");
    }
    System.out.println();
    System.out.println();
    }
    }
    if (xin.equals("A1")) {
    A1 = "X";
    spielfeld[0][1] = " X ";
    for (int i = 0; i < spielfeld.length; i++) {
    for (int i1 = 0; i1 < spielfeld.length; i1++) {
    System.out.print(spielfeld
    [i][i1] + "\t" + "\t");
    }
    System.out.println();
    System.out.println();
    }
    }

    • @vegetager2308
      @vegetager2308 2 ปีที่แล้ว

      if (xin.equals("A2")) {
      A2 = "X";
      spielfeld[0][2] = " X ";
      for (int i = 0; i < spielfeld.length; i++) {
      for (int i1 = 0; i1 < spielfeld.length; i1++) {
      System.out.print(spielfeld
      [i][i1] + "\t" + "\t");
      }
      System.out.println();
      System.out.println();
      }
      }
      if (xin.equals("B0")) {
      B0 = "X";
      spielfeld[1][0] = " X ";
      for (int i = 0; i < spielfeld.length; i++) {
      for (int i1 = 0; i1 < spielfeld.length; i1++) {
      System.out.print(spielfeld
      [i][i1] + "\t" + "\t");
      }
      System.out.println();
      System.out.println();
      }
      }
      if (xin.equals("B1")) {
      B1 = "X";
      spielfeld[1][1] = " X ";
      for (int i = 0; i < spielfeld.length; i++) {
      for (int i1 = 0; i1 < spielfeld.length; i1++) {
      System.out.print(spielfeld
      [i][i1] + "\t" + "\t");
      }
      System.out.println();
      System.out.println();
      }
      }
      if (xin.equals("B2")) {
      B2 = "X";
      spielfeld[1][2] = " X ";
      for (int i = 0; i < spielfeld.length; i++) {
      for (int i1 = 0; i1 < spielfeld.length; i1++) {
      System.out.print(spielfeld
      [i][i1] + "\t" + "\t");
      }
      System.out.println();
      System.out.println();
      }
      }
      if (xin.equals("C0")) {
      C0 = "X";
      spielfeld[2][0] = " X ";
      for (int i = 0; i < spielfeld.length; i++) {
      for (int i1 = 0; i1 < spielfeld.length; i1++) {
      System.out.print(spielfeld
      [i][i1] + "\t" + "\t");
      }

    • @vegetager2308
      @vegetager2308 2 ปีที่แล้ว

      if (oin.equals("B1")) {
      B1 = "O";
      spielfeld[1][1] = " O ";
      for (int i = 0; i < spielfeld.length; i++) {
      for (int i1 = 0; i1 < spielfeld.length; i1++) {
      System.out.print(spielfeld
      [i][i1] + "\t" + "\t");
      }
      System.out.println();
      System.out.println();
      }
      }
      if (oin.equals("B2")) {
      B2 = "O";
      spielfeld[1][2] = " O ";
      for (int i = 0; i < spielfeld.length; i++) {
      for (int i1 = 0; i1 < spielfeld.length; i1++) {
      System.out.print(spielfeld
      [i][i1] + "\t" + "\t");
      }
      System.out.println();
      System.out.println();
      }
      }
      if (oin.equals("C0")) {
      C0 = "O";
      spielfeld[2][0] = " O ";
      for (int i = 0; i < spielfeld.length; i++) {
      for (int i1 = 0; i1 < spielfeld.length; i1++) {
      System.out.print(spielfeld
      [i][i1] + "\t" + "\t");
      }
      System.out.println();
      System.out.println();
      }
      }
      if (oin.equals("C1")) {
      C1 = "O";
      spielfeld[2][1] = " O ";
      for (int i = 0; i < spielfeld.length; i++) {
      for (int i1 = 0; i1 < spielfeld.length; i1++) {
      System.out.print(spielfeld
      [i][i1] + "\t" + "\t");
      }
      System.out.println();
      System.out.println();
      }
      }
      if (oin.equals("C2")) {
      C2 = "O";
      spielfeld[2][2] = " O ";
      for (int i = 0; i < spielfeld.length; i++) {
      for (int i1 = 0; i1 < spielfeld.length; i1++) {
      System.out.print(spielfeld
      [i][i1] + "\t" + "\t");
      }
      System.out.println();
      System.out.println();
      }
      }
      }

    • @vegetager2308
      @vegetager2308 2 ปีที่แล้ว +1

      Sorry für die vielen Antworten Yt wollte mich nicht in einer Antwort alles senden lassen ^^"

    • @OettingerPirat
      @OettingerPirat 2 ปีที่แล้ว +1

      @@vegetager2308 Kannst den Code ja z.B. auf dein GitHub Profil laden und hier teilen. Dort wird einem der Code auch farblich und einrückungstechnisch richtig formatiert angezeigt. Gerade beim Teilen langer Codes ist das echt hilfreich :) Ansonsten finde ich, dass es schonmal richtig gut aussieht und auch mutig war, sich einem so durchaus großem Projekt zu stellen! Da lernt man echt viel.

    • @JonasKeil
      @JonasKeil  2 ปีที่แล้ว

      Hey VegetaGer, richtig gut, dass du dir eine Lösung überlegt hast!! 👏🏻👏🏻👏🏻 Wie OettingerPirat meinte wäre es mega hilfreich, wenn du den Code auf GitHub postest. Würde dir auf jeden Fall ne Menge gutes Karma bringen🤞🏻✨