Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package Projekt_ITN;
- public class S19432_p01v2 {
- public static void main(String[] args) {
- int Tab [][] = new int [23][23];
- int jedynki =(int)((Math.random()*476)+53); //ilosc jedynek od 53 do 100
- int i=0; //zmienna pomocnicza
- while(i <= jedynki) {
- int rzad = (int)(Math.random()*23); // w rzedzie
- int kolumna = (int)(Math.random()*23); // w kolumnie
- Tab[rzad][kolumna] = 1;
- i++;
- }
- int rzad2 = (int)(Math.random()*23); // 2 w rzedzie
- int kolumna2 = (int)(Math.random()*23); // 2 w kolumnie
- Tab[rzad2][kolumna2] = 2;
- for(int m=0; m<23; m++) {
- for(int j=0; j<23; j++) {
- System.out.print(Tab[m][j]+" ");
- }
- System.out.println();
- }
- najblizszy(Tab, rzad2, kolumna2);
- }
- public static void naslepo(int[][] Tab, int rzad2, int kolumna2) {
- int TF = 1;
- while(TF > 0) {
- System.out.println();
- int kierunek = (int)((Math.random()*8)+1);
- switch(kierunek) {
- case 1: // w gore
- if(rzad2!=0) {
- Tab[rzad2-1][kolumna2] = 2 ;
- Tab[rzad2][kolumna2] = 3;
- rzad2=rzad2-1;
- }
- else {
- break;
- }
- break;
- case 2: // w dol
- if(rzad2!=2) {
- Tab[rzad2+1][kolumna2] = 2 ;
- Tab[rzad2][kolumna2] = 3;
- rzad2=rzad2+1;
- }
- else {
- break;
- }
- break;
- case 3: // w lewo
- if(kolumna2!=0) {
- Tab[rzad2][kolumna2-1] = 2 ;
- Tab[rzad2][kolumna2] = 3;
- kolumna2 = kolumna2-1;
- }
- else {
- break;
- }
- break;
- case 4: // w prawo
- if(kolumna2!=2) {
- Tab[rzad2][kolumna2+1] = 2 ;
- Tab[rzad2][kolumna2] = 3;
- kolumna2 = kolumna2+1;
- }
- else {
- break;
- }
- break;
- case 5: // w lewo-gora
- if(rzad2!=0 && kolumna2!=0) {
- Tab[rzad2-1][kolumna2-1] = 2 ;
- Tab[rzad2][kolumna2] = 3;
- rzad2=rzad2-1;
- kolumna2=kolumna2-1;
- }
- else {
- break;
- }
- break;
- case 6: // w prawo-gora
- if(rzad2!=0 && kolumna2!=2) {
- Tab[rzad2-1][kolumna2+1] = 2 ;
- Tab[rzad2][kolumna2] = 3;
- rzad2=rzad2-1;
- kolumna2=kolumna2+1;
- }
- else {
- break;
- }
- break;
- case 7: // w lewo-dol
- if(rzad2!=2 && kolumna2!=0) {
- Tab[rzad2+1][kolumna2-1] = 2 ;
- Tab[rzad2][kolumna2] = 3;
- rzad2=rzad2+1;
- kolumna2=kolumna2-1;
- }
- else {
- break;
- }
- break;
- case 8: // w prawo-dol
- if(rzad2!=2 && kolumna2!=2) {
- Tab[rzad2+1][kolumna2+1] = 2 ;
- Tab[rzad2][kolumna2] = 3;
- rzad2=rzad2+1;
- kolumna2=kolumna2+1;
- }
- else {
- break;
- }
- break;
- }
- for(int i=0; i<3; i++) {
- for(int j=0; j<3; j++) {
- if(Tab[i][j]==1) {
- TF = 1;
- break;
- }
- else {
- TF = 0;
- }
- }
- if(TF > 0) {
- break;
- }
- }
- for(int m=0; m<3; m++) {
- for(int j=0; j<3; j++) {
- System.out.print(Tab[m][j]);
- }
- System.out.println();
- }
- }
- for(int m=0; m<3; m++) {
- for(int j=0; j<3; j++) {
- System.out.print(Tab[m][j]);
- }
- System.out.println();
- }
- }
- public static void najblizszy(int[][] Tab, int rzad2, int kolumna2) {
- boolean change = true;
- System.out.println();
- int buff;
- int odl = 100;
- int najrzad2 = rzad2;
- int najkolumna2 = kolumna2;
- int kierunek; // 1=N 2=E 3=S 4=W 5=NW 6=NE 7=SE 8=SW
- int TF = 1;
- while(TF > 0) {
- odl = 100;
- najrzad2 = rzad2;
- najkolumna2 = kolumna2;
- System.out.println();
- change = true;
- for(int i=0; i<23; i++) {
- for(int j=0; j<23; j++) {
- if(Tab[i][j]==1) {
- if(rzad2==i) {
- buff = Math.abs(kolumna2-j);
- if(buff<odl) {
- odl=buff;
- najrzad2=rzad2;
- najkolumna2=j;
- }
- }
- else if(kolumna2==j) {
- buff = Math.abs(rzad2-i);
- if(buff<odl) {
- odl=buff;
- najkolumna2=kolumna2;
- najrzad2=i;
- }
- }
- else if(Math.abs(kolumna2-j)==Math.abs(rzad2-i)) {
- buff = Math.abs(rzad2-i);
- if(buff<odl) {
- odl=buff;
- najkolumna2=j;
- najrzad2=i;
- }
- }
- }
- }
- }
- if(najrzad2 == rzad2) {
- if(najkolumna2>kolumna2) {
- kierunek = 2;
- }
- else{
- kierunek = 4;
- }
- }
- else if(najkolumna2 == kolumna2) {
- if(najrzad2>rzad2) {
- kierunek = 3;
- }
- else {
- kierunek = 1;
- }
- }
- else{
- if(najrzad2>rzad2 && najkolumna2>kolumna2) {
- kierunek = 7;
- }
- else if(najrzad2<rzad2 && najkolumna2<kolumna2) {
- kierunek = 5;
- }
- else if(najrzad2>rzad2 && najkolumna2<kolumna2) {
- kierunek = 8;
- }
- else {
- kierunek = 6;
- }
- }
- while(Tab[rzad2][kolumna2]!=1 && change==true) {
- switch(kierunek) {
- case 2:
- if(Tab[rzad2][kolumna2+1]==1)
- change = false;
- Tab[rzad2][++kolumna2] = 2;
- Tab[rzad2][kolumna2-1] = 3;
- break;
- case 6:
- if(Tab[rzad2-1][kolumna2+1]==1)
- change = false;
- Tab[--rzad2][++kolumna2] = 2;
- Tab[rzad2+1][kolumna2-1] = 3;
- break;
- case 7:
- if(Tab[rzad2+1][kolumna2+1]==1)
- change = false;
- Tab[++rzad2][++kolumna2] = 2;
- Tab[rzad2-1][kolumna2-1] = 3;
- break;
- case 3:
- if(Tab[rzad2+1][kolumna2]==1)
- change = false;
- Tab[++rzad2][kolumna2] = 2;
- Tab[rzad2-1][kolumna2] = 3;
- break;
- case 1:
- if(Tab[rzad2-1][kolumna2]==1)
- change = false;
- Tab[--rzad2][kolumna2] = 2;
- Tab[rzad2+1][kolumna2] = 3;
- break;
- case 4:
- if(Tab[rzad2][kolumna2-1]==1)
- change = false;
- Tab[rzad2][--kolumna2] = 2;
- Tab[rzad2][kolumna2+1] = 3;
- break;
- case 5:
- if(Tab[rzad2-1][kolumna2-1]==1)
- change = false;
- Tab[--rzad2][--kolumna2] = 2;
- Tab[rzad2+1][kolumna2+1] = 3;
- break;
- case 8:
- if(Tab[rzad2+1][kolumna2-1]==1)
- change = false;
- Tab[++rzad2][--kolumna2] = 2;
- Tab[rzad2-1][kolumna2+1] = 3;
- break;
- }
- for(int m=0; m<23; m++) {
- for(int j=0; j<23; j++) {
- System.out.print(Tab[m][j]+" ");
- }
- System.out.println();
- }
- }
- for(int i=0; i<23; i++) {
- for(int j=0; j<23; j++) {
- if(Tab[i][j]==1) {
- TF = 1;
- break;
- }
- else {
- TF = 0;
- }
- }
- if(TF > 0) {
- break;
- }
- }
- }
- System.out.println("Koncowa tablica: ");
- for(int m=0; m<23; m++) {
- for(int j=0; j<23; j++) {
- System.out.print(Tab[m][j]);
- }
- System.out.println();
- }
- }
- // public static void wie(int [][]Tab, int rzad2, int kolumna2, int jedynki) {
- // int first = 0;
- // int second = 0;
- // int jedyneczki[][] = new int [jedynki][2];
- // for(int i=0; i<3; i++) {
- // for(int j=0; j<3; j++) {
- // if(tab[i][j]==1) {
- // jedyneczki[first][first] = tab[i][j];
- // first++;
- // }
- // }
- // }
- // }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement