Advertisement
Guest User

Untitled

a guest
May 6th, 2016
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 30.24 KB | None | 0 0
  1. import com.sun.org.apache.xpath.internal.operations.Bool;
  2. import com.sun.xml.internal.ws.policy.privateutil.PolicyUtils;
  3.  
  4. import java.sql.*;
  5. import java.util.ArrayList;
  6. import java.util.Random;
  7. import java.util.Scanner;
  8. import java.io.*;
  9.  
  10. /**
  11.  * Created by activeagent on 02.05.16.
  12.  */
  13.  
  14.  
  15. class Zellen {
  16.     int feldGroesseX;                                                                                                   //Variable zur Einstellung der Feldgröße
  17.     int feldGroesseY;
  18.     int festeZellen=0;
  19.     int auffuelen=0;
  20.  
  21.  
  22.     Zellen(boolean defGr, int berechGr){
  23.  
  24.         if (defGr==true){
  25.             feldGroesseX=berechGr;
  26.             feldGroesseY=berechGr;
  27.         }
  28.  
  29.         else{
  30.             berechGr=6;
  31.             feldGroesseY=berechGr*10;
  32.             feldGroesseX=berechGr*10;
  33.         }
  34.  
  35.     }
  36.  
  37.     //boolean[][] zellen = new boolean[feldGroesseY][feldGroesseX];                                                     //Erstellen eines doppelten Boolean Array für den zustand der Zelle true = leben/false=tot
  38.     //boolean[][] temp = new boolean[feldGroesseY][feldGroesseX];                                                       //    "                                   für die Zwischenspeicherung des Zustands bei Änderun
  39.     ArrayList <Boolean> zellen = new ArrayList<Boolean>();
  40.  
  41.     Scanner scanner = new Scanner(System.in);
  42.  
  43.     String regeln = scanner.next();                                                                                     //Einlesen der Regeln
  44.     String[] parts = regeln.split("/");                                                                                 //String beim "/" splitten
  45.     String part1 = parts[0];                                                                                            //String-Teil1
  46.     String part2 = parts[1];                                                                                            //String-Teil2
  47.     char[] c = part1.toCharArray();                                                                                     //String-Teil1 in einen CharArray umwandeln
  48.     char[] c0 = part2.toCharArray();                                                                                    //String-Teil2    "
  49.     int [] regelnArray1 = new int[part1.length()];                                                                      //Neuen int Array erstellen mit der länge von dem String-Teil1
  50.     int [] regelnArray2 = new int[part2.length()];                                                                      //          "                                     String-Teil2
  51.  
  52.  
  53.     public void regelnSetzen() {
  54.  
  55.     for (int x = 0; x < c.length; x++) {                                                                                //for-Schleife mit der Anzahl an durchgängen wie lange der Chararray c ist
  56.         regelnArray1[x] = Character.getNumericValue(c[x]);                                                              //in den regelnArray den numerischen Wert der einzelnen einträge im charArray einfügen
  57.     }
  58.     for (int y = 0; y<c0.length;y++){
  59.         regelnArray2[y] = Character.getNumericValue(c0[y]);
  60.     }
  61. }
  62.  
  63.     int generation=0;
  64.  
  65.  
  66.     public void arrayStartwerte() {                                                                                     //Methode zum setzen der Startwerte der Zellen
  67.         int zufall;                                                                                                     //Zufallszahl
  68.         Random random = new Random();
  69.  
  70.         for (int i=0;i<feldGroesseY*feldGroesseX;i++){                                                                               //Geschachtelte for-Schleife um Werte im Array zu setzen
  71.             //for (int j=0;j<feldGroesseX;j++){
  72.                 zufall=random.nextInt(10-0+1)+1;                                                                        //Zufallszahl erstellen für das Festlegen der Startzustände der Zellen
  73.                 if (zufall>=5){                                                                                         //Wenn zufall >=5 ist
  74.                     zellen.add(true);                                                                                   //lebt die Zelle
  75.                 }
  76.                 else {                                                                                                  //Sonst
  77.                     zellen.add(false);                                                                                  //ist die Zelle tot
  78.                 }
  79.             //}
  80.         }
  81.     }
  82.  
  83.     public void ausgabeSpielKonsole(String leben, String tot){                                                          //Methode um das Spielfeld auszugeben
  84.  
  85.         System.out.println("Generation: "+generation);                                                                  //Ausgabe in welcher Generation das Spiel sich momentan befindet
  86.         int zeilenumbruch=feldGroesseX;
  87.  
  88.         for (int i=0;i<feldGroesseY*feldGroesseX;i++){                                                                  //Geschachtelte for-Schleife um jedes Feld im Array dur8chzugehen
  89.             //for (int j=0;j<feldGroesseX;j++) {
  90.  
  91.                 if (zellen.get(i)==true){                                                                               //lebende Zellen werden mit einem (O) dargestellt
  92.                     System.out.print(leben);
  93.                 }
  94.                 else{
  95.                     System.out.print(tot);                                                                              //gestorbene Zellen werden mit einem ( ) dargestellt
  96.                 }
  97.             //}
  98.             if (i==zeilenumbruch-1) {
  99.                 System.out.println();                                                                                   //Zeilenumbruch nach einer Zeile des Spielfeldes
  100.                 zeilenumbruch=zeilenumbruch+feldGroesseX;
  101.             }
  102.         }
  103.         generation++;
  104.     }
  105.  
  106.     public void ausgabeSpielTXT(String leben, String tot,String dateiname) throws IOException {
  107.         int zeilenumbruch=feldGroesseX;
  108.  
  109.         String filename = "/Users/activeagent/Desktop/Test/"+dateiname;                                                 //Variabler Dateiname(Einträge werden an alte Datei angehängt wenn eine Datei mit dem selben Namen bereits existiert)
  110.         File file = new File(filename);
  111.         file.getParentFile().mkdirs();                                                                                  //Erstellt Ordnerstruktur falls nicht vorhanden
  112.         Writer out;
  113.         out = new BufferedWriter(new FileWriter(filename,true));
  114.         try {
  115.  
  116.             out.append("Generation: " + generation);                                                                    //Ausgabe in welcher Generation das Spiel sich momentan befindet
  117.             out.append("\n");                                                                                           //"\n" für Zeilenumbruch
  118.             for (int i = 0; i < feldGroesseY*feldGroesseX; i++) {                                                       //Geschachtelte for-Schleife um jedes Feld im Array durchzugehen
  119.                 //for (int j = 0; j < feldGroesseX; j++) {
  120.                     if (zellen.get(i)==true) {
  121.                         out.append(leben);                                                                              //lebende Zellen
  122.                     } else {
  123.                         out.append(tot);                                                                                //gestorbene Zellen
  124.                     }
  125.                 //}
  126.                 if (i==zeilenumbruch-1) {
  127.                     out.append("\n");                                                                                   //Zeilenumbruch nach einer Zeile des Spielfeldes
  128.                     zeilenumbruch = zeilenumbruch + feldGroesseX;
  129.                 }
  130.             }
  131.             out.close();
  132.  
  133.             generation++;                                                                                               //nächste Generation
  134.         }
  135.  
  136.         catch (IOException e){
  137.  
  138.         }
  139.     }
  140.  
  141.     public void spielZug() {                                                                                            //Methode um einen Spielzug zu simulieren
  142.  
  143.         int testsumme = 0;                                                                                              //Testsumme um den neuen Zustand der Zelle festzulegen
  144.         int zeilenumbruch=feldGroesseX;
  145.  
  146.         ArrayList<Boolean> temp = new ArrayList<Boolean>();
  147.         temp.addAll(zellen);                                                                                            //Aktuelles Spielfeld wird in dem Array temp gespeichert
  148.         //for (int i = 0; i < feldGroesseY * feldGroesseX; i++) {
  149.             //for (int j=0;j<feldGroesseX;j++){
  150.           //  temp.addAll(zellen);
  151.             //}
  152.         //}
  153.  
  154.         for (int i = 0; i < feldGroesseY * feldGroesseX; i++) {
  155.             //for (int j=0;j<feldGroesseX;j++){
  156.             //if (j-1>=0){                                                                                              // Prüfen ob j-1 noch im Spielfeld liegt
  157.  
  158.             //if (i==zeilenumbruch-1){
  159.             //    zeilenumbruch=zeilenumbruch+feldGroesseX;
  160.             //}
  161.  
  162.             if (i - 1 >= 0 && i != (feldGroesseX * i) + 1) {                                                            //  "       i-1     "
  163.                 if (temp.get(i - 1) == true) {                                                                          //Prüfen ob die Zelle an dieser Position lebt (LINKS VON DER ZELLE)
  164.                     testsumme = testsumme + 1;                                                                          //wenn ja testsumme um 1 erhöhen
  165.                 }
  166.  
  167.                 if (i - (feldGroesseX + 1) >= 0) {
  168.                     if (temp.get(i - (feldGroesseX + 1)) == true) {                                                     //LINKS ÜBER DER ZELLE
  169.                         testsumme = testsumme + 1;
  170.                     }
  171.                 }
  172.  
  173.                 if (i + (feldGroesseX - 1) < feldGroesseY * feldGroesseX) {
  174.                     if (temp.get(i + (feldGroesseX - 1)) == true) {                                                     //LINKS UNTER DER ZELLE
  175.                         testsumme = testsumme + 1;
  176.                     }
  177.                 }
  178.             }
  179.  
  180.             if (i - feldGroesseX >= 0) {
  181.                 if (temp.get(i - feldGroesseX) == true) {                                                               //GENAU ÜBER DER ZELLE
  182.                     testsumme = testsumme + 1;
  183.                 }
  184.             }
  185.             if (i + feldGroesseX < feldGroesseY*feldGroesseX) {
  186.                 if (temp.get(i + feldGroesseX) == true) {                                                               //GENAU UNTER DER ZELLE
  187.                     testsumme = testsumme + 1;
  188.                 }
  189.             }
  190.  
  191.             if (i - (feldGroesseX - 1) <= feldGroesseX * i && i-(feldGroesseX - 1)>=0 && i!=zeilenumbruch-1) {
  192.                 if (temp.get(i - (feldGroesseX - 1)) == true) {                                                         //RECHTS ÜBER DER ZELLE
  193.                     testsumme = testsumme + 1;
  194.                     //System.out.println("test" + "  +i "+i+"+ zeilenumbruch: "+ zeilenumbruch);
  195.                 }
  196.             }
  197.  
  198.             if (i + 1 <= feldGroesseX * i && i!=zeilenumbruch-1) {
  199.                 if (temp.get(i + 1) == true) {                                                                          //RECHTS VON DER ZELLE
  200.                     //System.out.println("test" + "  +i "+i+"+ zeilenumbruch: "+ zeilenumbruch);
  201.                     testsumme = testsumme + 1;
  202.                 }
  203.                 if (i + (feldGroesseX) < feldGroesseY * feldGroesseX && i!=zeilenumbruch-1) {
  204.                     if (temp.get(i + (feldGroesseX + 1)) == true) {                                                     //RECHTS UNTER DER ZELLE
  205.                         //System.out.println("test" + "  +i "+i+"+ zeilenumbruch: "+ zeilenumbruch);
  206.                         testsumme = testsumme + 1;
  207.                     }
  208.                 }
  209.             }
  210.  
  211.  
  212.             zellen.set(i, false);// = false;                                                                            //Zellen werden erst auf tot gesetzt
  213.  
  214.             int regelnMax;                                                                                              //maximale Anzahl an Regeln
  215.  
  216.             if (regelnArray1.length > regelnArray2.length) {                                                            //Wenn regelnArray1 länger als regelnArray2
  217.                 regelnMax = regelnArray1.length;                                                                        //wird regelnArray1 Länge als maximale Anzahl Regeln gesetzt
  218.             } else {                                                                                                    //Sonst (also wenn regelnArray2 länger als regelnArray1 ist oder bei gleichstand)
  219.                 regelnMax = regelnArray2.length;                                                                        //wird regelnArray2 Länge als maximale Anzahl Regeln gesetzt
  220.             }
  221.  
  222.  
  223.             for (int l = 0; l < regelnMax; l++) {                                                                       //for-Schleife mit Anzahl an durchgängen der maximalen Anzahl an Regeln
  224.                 if (l < regelnArray1.length) {                                                                          //Schutz vor ArrayIndexOutOfBoundsException()
  225.                     if (testsumme == regelnArray1[l]) {                                                                 //Wenn testsumme mit dem Eintrag im regelnArray1 an der Stelle l übereinstimmt
  226.                         zellen.set(i,true);                                                                             //Zelle wird auf leben gesetzt
  227.                         testsumme = 0;                                                                                  //testsumme wird vor nächstem Durchgang auf 0 gesetzt
  228.                     }
  229.                 }
  230.  
  231.                 if (l < regelnArray2.length) {
  232.                     if (testsumme == regelnArray2[l]) {
  233.                         zellen.set(i,true);
  234.                         testsumme = 0;
  235.                     }
  236.                 }
  237.  
  238.             }
  239.  
  240.             testsumme = 0;
  241.             if (i==zeilenumbruch-1){
  242.                 zeilenumbruch=zeilenumbruch+feldGroesseX;
  243.             }
  244.         }
  245.  
  246.  
  247.     }
  248.  
  249.  
  250.  
  251.     public void gleiterTable(Connection connection,int anzGleiter,String leben,String tot,String dateiname, String ausgabeArt) throws SQLException{
  252.  
  253.         Statement stmnt = null;
  254.         String querry = "SELECT ZelleX, ZelleY, ZelleZustand FROM Gleiter";                                             //Der MYSQL Querry
  255.  
  256.         int anzGleiterERST=0;
  257.         int zelleX=0;
  258.         int zelleY=0;
  259.         boolean zelleZustand=false;
  260.         boolean figurFertig=false;
  261.         boolean werteSetzen=true;
  262.  
  263.         try {
  264.             stmnt = connection.createStatement();
  265.             ResultSet rs = stmnt.executeQuery(querry);                                                                  //Den Querry ausführen
  266.             for (int i=0;i<anzGleiter;i++){
  267.                 while (rs.next() && werteSetzen==true) {                                                                //while rs.next true erhält und werteSetzen true ist
  268.                     zelleX = rs.getInt(1);                                                                              //Den Integer an row 1 in MYSQl auslesen
  269.                     zelleY = rs.getInt(2);
  270.                     int zelleZustandTEMP = rs.getInt(3);                                                                //Da MYSQL kein boolean datentyp hat int auslesen
  271.  
  272.                     if (zelleZustandTEMP == 0) {
  273.                         zelleZustand = false;
  274.                     }
  275.                     if (zelleZustandTEMP == 1) {
  276.                         zelleZustand = true;
  277.                     }
  278.  
  279.                     try {
  280.                         ausgabeSpielstartMYSQL(zelleX, zelleY, zelleZustand, anzGleiterERST, figurFertig, leben, tot, ausgabeArt, dateiname);
  281.                     }
  282.                     catch (IOException e){
  283.  
  284.                     }
  285.  
  286.                 }
  287.                 anzGleiterERST++;                                                                                       //Anzahl erstellter Gleiter um 1 erhöhen
  288.                 rs.beforeFirst();                                                                                       //Den MYSQL cursor wieder an den Anfang setzen
  289.                 if (anzGleiterERST==(anzGleiter)){                                                                      //Wenn die Anzahl der erstellten Gleiter mit der der gewünschten Gleiter übereistimmt
  290.                     figurFertig=true;
  291.                     try {
  292.                         ausgabeSpielstartMYSQL(zelleX, zelleY, zelleZustand, anzGleiterERST, figurFertig, leben, tot, ausgabeArt, dateiname);
  293.                     }
  294.                     catch (IOException e){
  295.  
  296.                     }
  297.                  }
  298.             }
  299.         }
  300.  
  301.         catch (SQLException e){}
  302.     }
  303.  
  304.     public void herschelTable(Connection connection,int anzGleiter,String leben,String tot,String dateiname,String ausgabeArt) throws SQLException{
  305.  
  306.         Statement stmnt = null;
  307.         String querry = "SELECT ZelleX, ZelleY, ZelleZustand FROM Herschel";
  308.  
  309.         int anzHerschelERST=0;
  310.         int zelleX=0;
  311.         int zelleY=0;
  312.         boolean zelleZustand=false;
  313.         boolean figurFertig=false;
  314.  
  315.         try {
  316.             stmnt = connection.createStatement();
  317.             ResultSet rs = stmnt.executeQuery(querry);
  318.             for (int i=0;i<anzGleiter;i++){
  319.                 while (rs.next()) {
  320.                     zelleX = rs.getInt(1);
  321.                     zelleY = rs.getInt(2);
  322.                     int zelleZustandTEMP = rs.getInt(3);
  323.  
  324.                     if (zelleZustandTEMP == 0) {
  325.                         zelleZustand = false;
  326.                     }
  327.                     if (zelleZustandTEMP == 1) {
  328.                         zelleZustand = true;
  329.                     }
  330.  
  331.                     try {
  332.                         ausgabeSpielstartMYSQL(zelleX, zelleY, zelleZustand, anzHerschelERST, figurFertig, leben, tot, ausgabeArt, dateiname);
  333.  
  334.                     }
  335.  
  336.                     catch (IOException e){
  337.  
  338.                     }
  339.                 }
  340.                 anzHerschelERST++;
  341.                 rs.beforeFirst();
  342.                 if (anzHerschelERST==(anzGleiter)){
  343.                     figurFertig=true;
  344.                     try {
  345.                         ausgabeSpielstartMYSQL(zelleX, zelleY, zelleZustand, anzHerschelERST, figurFertig, leben, tot, ausgabeArt, dateiname);
  346.                     }
  347.                     catch (IOException e){
  348.  
  349.                     }
  350.                 }
  351.             }
  352.         }
  353.  
  354.         catch (SQLException e){}
  355.     }
  356.  
  357.  
  358.     public void ausgabeSpielstartMYSQL(int zelleX, int zelleY, boolean zelleZustand,int anzFigurERST,boolean figurFertig, String leben,String tot,String ausgabeArt, String dateiname) throws IOException{
  359.  
  360.         boolean figurAbfrage=false;
  361.  
  362.         if (figurFertig==true){                                                                                         //wenn die Figuren presets fertig sind figurAbfrage auf true
  363.             figurAbfrage=true;
  364.         }
  365.  
  366.         if (figurAbfrage==false){                                                                                       //sonst
  367.             if (zelleZustand==true){                                                                                    //Wenn der Zustand der Zelle aus der MYSQL-Tabelle true ist
  368.                 zellen.add(true);                                                                                       //Der ArrayList zellen ein Element true hinzufügen
  369.             }
  370.             if (zelleZustand==false){                                                                                   //Wenn der Zustand der Zelle aus der MYSQL-Tabelle false ist
  371.                 zellen.add(false);                                                                                      ////Der ArrayList zellen ein Element false hinzufügen
  372.             }
  373.  
  374.             auffuelen=auffuelen+1;                                                                                      //integer für die angabe wann die Zeile fertig mit presets der MYSQL-DB ist und den Rest mit false auffülen soll
  375.             festeZellen++;                                                                                              //Anzahl festgelegter Zellen die gesetzt wurden
  376.             if (auffuelen==5){                                                                                          //Wenn alle presets einer Zeile eingetragen sind
  377.                 for (int i =0;i<(feldGroesseX-5);i++){                                                                  //for-Schleife mit Anzahl an durchgängen von feldGrößeX-5
  378.                     zellen.add(false);
  379.                 }
  380.                 auffuelen=0;
  381.                 festeZellen=festeZellen+(feldGroesseX-5);
  382.             }
  383.         }
  384.  
  385.         if (figurAbfrage==true){
  386.             for (int i=0;i<((feldGroesseX*feldGroesseY)-festeZellen);i++){
  387.                 zellen.add(false);
  388.             }
  389.         }
  390.  
  391.         if (figurAbfrage==true){
  392.  
  393.             int zeilenumbruch=feldGroesseX;
  394.             if (ausgabeArt.equals("1")) {
  395.                 System.out.println("Generation: " + generation);
  396.                 for (int i = 0; i < feldGroesseY*feldGroesseX; i++) {
  397.                     //for (int j = 0; j < feldGroesseX; j++) {
  398.                         if (zellen.get(i) == true) {
  399.                             System.out.print(leben);
  400.                         } else {
  401.                             System.out.print(tot);
  402.                         }
  403.                     //}
  404.                     if (i==zeilenumbruch-1) {
  405.                         System.out.println();
  406.                         zeilenumbruch=zeilenumbruch+feldGroesseX;
  407.                     }
  408.                 }
  409.                 generation++;
  410.  
  411.             }
  412.  
  413.             else {
  414.  
  415.                 String filename = "/Users/activeagent/Desktop/Test/"+dateiname;                                         //Variabler Dateiname(Einträge werden an alte Datei angehängt wenn eine Datei mit dem selben Namen bereits existiert)
  416.                 File file = new File(filename);
  417.                 file.getParentFile().mkdirs();                                                                          //Erstellt Ordnerstruktur falls nicht vorhanden
  418.                 Writer out;
  419.                 out = new BufferedWriter(new FileWriter(filename,true));
  420.                 try {
  421.  
  422.                     out.append("Generation: " + generation);                                                            //Ausgabe in welcher Generation das Spiel sich momentan befindet
  423.                     out.append("\n");                                                                                   //"\n" für Zeilenumbruch
  424.                     for (int i = 0; i < feldGroesseY*feldGroesseX; i++) {                                               //Geschachtelte for-Schleife um jedes Feld im Array durchzugehen
  425.                         //for (int j = 0; j < feldGroesseX; j++) {
  426.                             if (zellen.get(i) == true) {
  427.                                 out.append(leben);                                                                      //lebende Zellen
  428.                             } else {
  429.                                 out.append(tot);                                                                        //gestorbene Zellen
  430.                             }
  431.                         //}
  432.                         if (i==zeilenumbruch-1) {
  433.                             out.append("\n");                                                                           //Zeilenumbruch nach einer Zeile des Spielfeldes
  434.                             zeilenumbruch=zeilenumbruch+feldGroesseX;
  435.                         }
  436.                      }
  437.                     out.close();
  438.  
  439.                     generation=1;                                                                                       //nächste Generation
  440.  
  441.                 }
  442.  
  443.                 catch (IOException e){
  444.  
  445.                 }
  446.  
  447.             }
  448.             System.out.println();
  449.         }
  450.  
  451.     }
  452.  
  453.  
  454.  
  455.  
  456. }
  457.  
  458.  
  459.  
  460. public class GameOfLife {
  461.  
  462.     public static void main(String[] args) throws Exception{
  463.         //String driverName="org.gjt.mm.mysql.Driver";
  464.         //class.forName(driverName).newInstance;
  465.  
  466.         System.out.println("Loading driver...");
  467.  
  468.         try {
  469.             Class.forName("com.mysql.jdbc.Driver");
  470.             System.out.println("Driver loaded!");
  471.         } catch (ClassNotFoundException e) {
  472.             throw new IllegalStateException("Cannot find the driver in the classpath!", e);
  473.         }
  474.  
  475.         String serverName="localhost:3306";                                                                             //Servername der MYSQL DB
  476.         String myDatabase="Startpattern";                                                                               //Name der MYSQL DB
  477.         String url = "jdbc:mysql://"+serverName+"/"+myDatabase;                                                         //Genauer URL "
  478.  
  479.         String username="root";                                                                                         //Zugangsdaten "
  480.         String password="joshua123";
  481.  
  482.  
  483.  
  484.  
  485.  
  486.         String dateiname="temp";
  487.         Scanner scanner = new Scanner(System.in);
  488.  
  489.  
  490.  
  491.  
  492.         int defaultGr=50;
  493.         boolean defGr=true;
  494.  
  495.         System.out.println("Wählen Sie das Startfeld(1 Gleiter/2 Herschel/3 Zufall)");
  496.         int preset= scanner.nextInt();
  497.         int anzPreset=0;
  498.         if (preset== 1 || preset==2){
  499.             if (preset==1){
  500.                 System.out.println("Geben Sie die Anzahl der Gleiter an: ");
  501.                 anzPreset= scanner.nextInt();
  502.                 System.out.println("Bitte geben Sie die Regeln an: ");
  503.             }
  504.             else {
  505.                 System.out.println("Geben Sie die Anzahl der Herschel an: ");
  506.                 anzPreset= scanner.nextInt();
  507.                 System.out.println("Bitte geben Sie die Regeln an: ");
  508.             }
  509.  
  510.  
  511.             if (anzPreset*6>defaultGr){
  512.                 defGr=false;
  513.  
  514.             }
  515.  
  516.         }
  517.  
  518.         else {
  519.             System.out.println("Bitte geben Sie die Regeln an: ");
  520.         }
  521.  
  522.         Zellen objekt = new Zellen(defGr,defaultGr);                                                                    //Objekterzeugung mit Übergabeparametern zur Festlegung der Größe
  523.  
  524.  
  525.  
  526.         if (preset==3) {
  527.             //objekt.spielFeld(defaultGr,defGr);
  528.             objekt.arrayStartwerte();                                                                                   //Methode arrayStartawrte aufrufen
  529.         }
  530.  
  531.         objekt.regelnSetzen();
  532.         int anzahlGenerationen=50;                                                                                      //Anzahl der Generationen (Spielzüge) setzen
  533.  
  534.         System.out.println("Geben Sie die Art der Darstellung an");
  535.         System.out.print("lebendig: ");
  536.         String leben= scanner.next();
  537.         System.out.print("tot: ");
  538.         String tot=scanner.next();
  539.  
  540.         System.out.println("Geben Sie die Art der Ausgabe an (1 Konsole/2 Textdatei):");
  541.         String ausgabeArt = scanner.next();
  542.  
  543.         if (ausgabeArt.equals("2")){
  544.             System.out.println("Geben Sie den gewünschten Namen der Datei an: ");
  545.             dateiname= scanner.next();
  546.         }
  547.  
  548.         objekt.regelnSetzen();
  549.  
  550.  
  551.         try (Connection connection = DriverManager.getConnection(url, username, password)){                             //Zu MYSQL verbinden
  552.             System.out.println("Zu mysql verbunden");
  553.  
  554.             if (preset==1) {
  555.                 objekt.gleiterTable(connection,anzPreset,leben,tot,dateiname,ausgabeArt);
  556.             }
  557.             if (preset==2) {
  558.                 objekt.herschelTable(connection,anzPreset,leben,tot,dateiname,ausgabeArt);
  559.             }
  560.         }
  561.         catch (SQLException e){
  562.             throw new IllegalStateException("konnte nicht verbinden");
  563.         }
  564.  
  565.  
  566.  
  567.         if (ausgabeArt.equals("1")) {                                                                                   //Wenn in ausgabeArt "1" steht
  568.             objekt.ausgabeSpielKonsole(leben, tot);                                                                     //Methode ausgabeSpielKonsole aufrufen um Startfeld auszugeben mit übergabe der Strings leben und tot
  569.         }
  570.  
  571.         if (ausgabeArt.equals("2")) {
  572.  
  573.             try {
  574.                 objekt.ausgabeSpielTXT(leben,tot,dateiname);                                                            //   "     ausgabeSpielTXT                       "                                      leben, tot und dateiname
  575.             }
  576.             catch (IOException e){
  577.             }
  578.         }
  579.  
  580.         for (int i=0;i<anzahlGenerationen;i++){                                                                         //for-Schleife mit anzahlGenerationen als Anzahl der Durchläufe
  581.             objekt.spielZug();                                                                                          //Bei jedem durchgang die Methode spielZug aufrufen um eine Generation zu simulieren
  582.             if (ausgabeArt.equals("1")) {
  583.                 objekt.ausgabeSpielKonsole(leben, tot);                                                                 //und ausgabeSpielKonsole um jede Generation auszugeben
  584.  
  585.                 try {
  586.  
  587.                     Thread.sleep(500);                                                                                  //nach jeder Ausgabe 1/2 Sekunde warten
  588.                 }
  589.                 catch (InterruptedException e){
  590.  
  591.                 }
  592.             }
  593.  
  594.             if (ausgabeArt.equals("2")) {
  595.                 try {
  596.                     objekt.ausgabeSpielTXT(leben,tot,dateiname);
  597.                 }
  598.                 catch (IOException e){
  599.                 }
  600.             }
  601.         }
  602.      }
  603. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement