Advertisement
Zidinjo

Aufgabe 10 - TicTacToe

Dec 8th, 2014
205
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.14 KB | None | 0 0
  1. import java.util.Scanner;
  2. public class tictactoe2
  3. {
  4.     public static void main(String[] args) throws NotInFieldgr
  5.     {
  6.         Scanner scanner = new Scanner(System.in);
  7.         boolean schleife = true;
  8.         int aufsteigendeZahl = 0;
  9.         int durchlaufe = 0;
  10.         int counter = 0;
  11.         String feld3 = "X";
  12.         String feld2 = "Feld";
  13.         String feld = "O";
  14.         String stringaufsteigendeZahl;     
  15.        
  16.         System.out.println("Wie viele Spalten wollen sie verwenden?");
  17.         int spalten = scanner.nextInt();
  18.        
  19.         System.out.println("Wie viele Reihen wollen sie verwenden?");
  20.         int reihen = scanner.nextInt();
  21.        
  22.         String[][] spielfeld = new String [spalten][reihen]; // 2 Arrays - 1 Spalte - 2 Reihe
  23.         String[] felder = new String[spalten*reihen]; // Fuer die Erstellung der Felder - automatisch
  24.        
  25.         for(int i=0; i < felder.length;i++) // Damit der String Feld immer um eine Zahl erhöht wird
  26.         {
  27.             aufsteigendeZahl = 1+i;
  28.             stringaufsteigendeZahl = Integer.toString(aufsteigendeZahl); // Int wird umgeparst zum String
  29.             felder[i] = feld2+stringaufsteigendeZahl; // String Feld2 wird eine Zahl hinzugefügt umd dann ins Array gespeichert
  30.         }
  31.        
  32.         for(int i =0; i < spalten; i++) // Einfügen der Felder[] Array in das 2 dimensionales Array
  33.         {
  34.             for(int j = 0; j < reihen; j++)
  35.             {
  36.                 spielfeld[i][j] = felder[durchlaufe];
  37.                 durchlaufe++;
  38.             }
  39.         }
  40.        
  41.         while(schleife)
  42.         {
  43.             try
  44.             {  
  45.                 if(counter == (spalten*reihen))
  46.                 {
  47.                     schleife = false;
  48.                     throw new KeineEingabeMoeglich();
  49.                 }
  50.                 for(int i =0; i < spalten; i++) // Ausgabe vom Spielfeld
  51.                 {  
  52.                     for(int b=0;b < reihen ;b++)
  53.                     {
  54.                             System.out.print(spielfeld[i][b]+ " ");
  55.                     }
  56.                     System.out.println();
  57.                 }
  58.  
  59.                 System.out.println("Spieler 1, bitte geben Sie ihre Position ein \n");
  60.                 String spieler1 = scanner.next();
  61.                 markieren(spielfeld,spieler1,feld3,spalten,reihen); // Übergabe der Parameter
  62.                 counter++;
  63.                 for(int i =0; i < spalten; i++) // Erneute Ausgabe des Spielfeldes
  64.                 {  
  65.                     for(int b=0;b < reihen ;b++)
  66.                     {
  67.                             System.out.print(spielfeld[i][b]+ " ");
  68.                     }
  69.                     System.out.println();
  70.                 }
  71.                 System.out.println("Spieler 2, bitte geben Sie ihre Position ein \n");
  72.                 String spieler2 = scanner.next();
  73.                 markieren(spielfeld,spieler2,feld,spalten,reihen); // Übergabe der Parameter vom zweiten Spieler
  74.                 counter++;
  75.             }
  76.             catch(NotInFieldgr e)
  77.             {
  78.                 System.out.println("Fehler --- "+e+"Angabe ist nicht mehr im Feld \n");
  79.             }
  80.             catch (KeineEingabeMoeglich e)
  81.             {
  82.                 System.out.println("Fehler --- Keine Eingabe mehr moeglich");
  83.             }
  84.         }
  85.         scanner.close();
  86.     }
  87.  
  88.     public static String markieren(String[][] spielfeld,String spieler, String Feld, int spalten,int reihen) throws NotInFieldgr
  89.     {
  90.         for(int i = 0; i < spalten; i++)
  91.         {
  92.             for(int j = 0; j < reihen ;j++)
  93.             {
  94.                 if(spielfeld[i][j].equals(spieler))
  95.                 {
  96.                     spielfeld[i][j] = Feld;
  97.                     return spielfeld[i][j];
  98.                 }
  99.             }
  100.         }
  101.         throw new NotInFieldgr();
  102.     }
  103. }
  104.  
  105. class NotInFieldgr extends Exception
  106. {
  107.     private static final long serialVersionUID = 1L;
  108. }
  109. class KeineEingabeMoeglich extends Exception
  110. {
  111.     private static final long serialVersionUID = 1L;
  112. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement