00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 package main.ausgabe;
00019
00020 import java.io.BufferedWriter;
00021 import java.io.IOException;
00022
00023 import main.Main;
00024 import main.verarbeitung.Matrix;
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 public class Ausgabe
00036 {
00037
00038 private Matrix matrix;
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052 public Ausgabe(Matrix matrix, BufferedWriter bw) throws IOException
00053 {
00054
00055 this.matrix = matrix;
00056
00057
00058 this.ausgabe(bw, false);
00059
00060
00061
00062 if (matrix.isWegGefunden())
00063 {
00064 this.ausgabe(bw, true);
00065 }
00066
00067 else
00068 {
00069 this.keinWegGefundenAusgabe(bw);
00070 }
00071 }
00072
00073
00074
00075
00076
00077
00078
00079 private void keinWegGefundenAusgabe(BufferedWriter bw)
00080 throws IOException
00081 {
00082 String s = " Keine Sprungfolge gefunden - Aufgabe unlösbar";
00083
00084
00085 if (Main.debug)
00086 {
00087 System.out.println(s);
00088 }
00089
00090
00091 bw.write(System.getProperty("line.separator"));
00092 bw.write(s);
00093 }
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107 private void ausgabe(BufferedWriter bw, boolean zustand)
00108 throws IOException
00109 {
00110
00111 StringBuffer ausgabeString = new StringBuffer();
00112
00113
00114 String lineEnd = System.getProperty("line.separator");
00115
00116
00117 if (lineEnd == null)
00118 {
00119 lineEnd = "\n";
00120 }
00121
00122
00123 String tabulator = " ";
00124
00125
00126 int y = matrix.getYDimension();
00127 int x = matrix.getXDimension();
00128
00129
00130 String trennzeichen = "+";
00131
00132 for( int i=0; i<x; i++ )
00133 {
00134 trennzeichen+=" -- +";
00135 }
00136
00137
00138 if (zustand)
00139 {
00140 ausgabeString.append(
00141 lineEnd + lineEnd + tabulator + "Ausgabedatei: " + lineEnd);
00142 ausgabeString.append(tabulator + "*************" + lineEnd);
00143 }
00144 else
00145 {
00146 ausgabeString.append(
00147 lineEnd + tabulator + "Eingabedaten: " + lineEnd);
00148 ausgabeString.append(tabulator + "*************" + lineEnd);
00149 }
00150
00151
00152
00153 for (int i = 0; i < y; i++)
00154 {
00155
00156 ausgabeString.append(lineEnd + tabulator);
00157 ausgabeString.append(trennzeichen);
00158 ausgabeString.append(lineEnd + tabulator);
00159
00160
00161 for (int j = 0; j < x; j++)
00162 {
00163
00164
00165 String zeichen = " ";
00166 int wert = matrix.getWert(i, j);
00167
00168 switch (wert)
00169 {
00170
00171 case -1 :
00172 zeichen = "X";
00173 break;
00174
00175 case 0 :
00176 zeichen = matrix.isStartpunkt(i,j) ? "1" : " ";
00177 break;
00178
00179 case 1 :
00180 zeichen = "1";
00181 break;
00182
00183 default :
00184 if (zustand)
00185 zeichen = "" + wert;
00186 else
00187 zeichen = " ";
00188 }
00189
00190
00191 ausgabeString.append(
00192 "| " + (zeichen.length() < 2 ? " " : "") + zeichen + " ");
00193 }
00194 ausgabeString.append("|");
00195 }
00196
00197 ausgabeString.append(lineEnd + tabulator);
00198 ausgabeString.append(trennzeichen);
00199 ausgabeString.append(lineEnd);
00200
00201
00202
00203 if (Main.debug)
00204 {
00205 System.out.println(ausgabeString);
00206 }
00207
00208
00209 bw.write(ausgabeString.toString());
00210 }
00211 }