Witam
Piszę sobie pewien programik i podczas wyświetlania tablicy wykorzystuje modulo aby łamać wiersz. Niestety coś chyba źle robię, ponieważ jakoś nietypowo łamie mi te wiersze.
Zrzut ekranu po wyświetleniu tablicy znajduje się w załączeniu Wynik.png. Poniżej przedstawiam źródło programu
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package wyznaczaniedrogi;
import javax.swing.*;
/**
*
* @author piotrsan
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
new Main();
}
public Main(){
int[][] tab = {{1,1,1,1,1,0},
{0,0,1,0,1,1},
{1,1,1,0,1,1},
{0,1,0,0,1,1},
{0,1,0,0,1,1},
{1,0,0,0,1,1}};
Function.ShowArray(tab);
Function.FindAWay2(tab);
}
}
class Function{
public static void ShowArray(int[][] tab){
String wynik="";
for(int i=0;i<tab.length;i++){
for(int j=0;j<tab[i].length; j++){
wynik+= tab[i][j]+";";
if (j%6==0){
wynik+="\n";
}
}
}
JOptionPane.showMessageDialog(null,wynik);
}
// zle rozwiazanie :/ - zreszta dla tabeli jednowymiarowej
public static void FindAWay(int[] tab){
int i=0; //start
String route="";
do {
if(tab[i+6]>0){
i+=6;
JOptionPane.showMessageDialog(null, i);
route+=i+";";
}else{
if(tab[i+1]>0){
i++;
JOptionPane.showMessageDialog(null, i);
route+=i+";";
}else{
i--;
route+=i+";";
JOptionPane.showMessageDialog(null, i);
}
}
}while(i!=33);
JOptionPane.showMessageDialog(null,"Droga jaką trzeba przebyć to - " + route);
}
public static void FindAWay2(int[][] tab){
int start_indx;
int start_indy;
int end_indx;
int end_indy;
String tmp;
String route = "";
tmp = JOptionPane.showInputDialog("Podaj idex początkowy przeszukiwania drogi");
start_indx = Integer.parseInt(tmp);
tmp = JOptionPane.showInputDialog("Podaj idey początkowy przeszukiwania drogi");
start_indy = Integer.parseInt(tmp);
tmp = JOptionPane.showInputDialog("Podaj idex końcowy przeszukiwania drogi");
end_indx = Integer.parseInt(tmp);
tmp = JOptionPane.showInputDialog("Podaj idey końcowy przeszukiwania drogi");
end_indy = Integer.parseInt(tmp);
for(int i=start_indx; i<tab.length-1; i++){
for(int j=start_indy; j<tab[i].length-1; j++){
if(tab[i][j+1]==1){
tab[i][j+1]=tab[i][j]+1;
}
if(tab[i+1][j]==1){
tab[i+1][j]=tab[i][j]+1;
}
if(i!=0 && tab[i-1][j]==1){
tab[i-1][j]=tab[i][j]+1;
}
if(j!=0 && tab[i][j-1]==1){
tab[i][j-1]=tab[i][j]+1;
}
}
}
Function.ShowArray(tab);
}
}
Funkcja wyświetlająca tablice jak zapewne zauważyliście nazywa się ShowArray. Nie wiem kombinowałem już na różne sposoby, nawet czytałem jakaś rozprawkę tutaj na forum o modulo ale chyba jej do końca nie zrozumiałem. Prośba o jakąś pomoc :/. Wiem, że może być to idiotyczne pytanie ale cóż mogę zrobić :/
dodanie znacznika <code class="java"> - fp
- Wynik.png (63 KB) - ściągnięć: 115