Advertisement
Guest User

Untitled

a guest
Apr 25th, 2019
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.96 KB | None | 0 0
  1. package Projekt_ITN;
  2.  
  3. public class S19432_p01v2 {
  4.  
  5. public static void main(String[] args) {
  6. int Tab [][] = new int [23][23];
  7. int jedynki =(int)((Math.random()*476)+53); //ilosc jedynek od 53 do 100
  8. int i=0; //zmienna pomocnicza
  9.  
  10. while(i <= jedynki) {
  11. int rzad = (int)(Math.random()*23); // w rzedzie
  12. int kolumna = (int)(Math.random()*23); // w kolumnie
  13. Tab[rzad][kolumna] = 1;
  14. i++;
  15. }
  16.  
  17. int rzad2 = (int)(Math.random()*23); // 2 w rzedzie
  18. int kolumna2 = (int)(Math.random()*23); // 2 w kolumnie
  19. Tab[rzad2][kolumna2] = 2;
  20.  
  21.  
  22.  
  23. for(int m=0; m<23; m++) {
  24. for(int j=0; j<23; j++) {
  25. System.out.print(Tab[m][j]+" ");
  26. }
  27. System.out.println();
  28. }
  29.  
  30. najblizszy(Tab, rzad2, kolumna2);
  31. }
  32.  
  33. public static void naslepo(int[][] Tab, int rzad2, int kolumna2) {
  34.  
  35. int TF = 1;
  36. while(TF > 0) {
  37. System.out.println();
  38. int kierunek = (int)((Math.random()*8)+1);
  39. switch(kierunek) {
  40. case 1: // w gore
  41. if(rzad2!=0) {
  42. Tab[rzad2-1][kolumna2] = 2 ;
  43. Tab[rzad2][kolumna2] = 3;
  44. rzad2=rzad2-1;
  45.  
  46. }
  47. else {
  48. break;
  49. }
  50. break;
  51. case 2: // w dol
  52. if(rzad2!=2) {
  53. Tab[rzad2+1][kolumna2] = 2 ;
  54. Tab[rzad2][kolumna2] = 3;
  55. rzad2=rzad2+1;
  56.  
  57. }
  58. else {
  59. break;
  60. }
  61. break;
  62. case 3: // w lewo
  63. if(kolumna2!=0) {
  64. Tab[rzad2][kolumna2-1] = 2 ;
  65. Tab[rzad2][kolumna2] = 3;
  66. kolumna2 = kolumna2-1;
  67.  
  68. }
  69. else {
  70. break;
  71. }
  72. break;
  73. case 4: // w prawo
  74. if(kolumna2!=2) {
  75. Tab[rzad2][kolumna2+1] = 2 ;
  76. Tab[rzad2][kolumna2] = 3;
  77. kolumna2 = kolumna2+1;
  78.  
  79. }
  80. else {
  81. break;
  82. }
  83. break;
  84. case 5: // w lewo-gora
  85. if(rzad2!=0 && kolumna2!=0) {
  86. Tab[rzad2-1][kolumna2-1] = 2 ;
  87. Tab[rzad2][kolumna2] = 3;
  88. rzad2=rzad2-1;
  89. kolumna2=kolumna2-1;
  90.  
  91. }
  92. else {
  93. break;
  94. }
  95. break;
  96. case 6: // w prawo-gora
  97. if(rzad2!=0 && kolumna2!=2) {
  98. Tab[rzad2-1][kolumna2+1] = 2 ;
  99. Tab[rzad2][kolumna2] = 3;
  100. rzad2=rzad2-1;
  101. kolumna2=kolumna2+1;
  102.  
  103. }
  104. else {
  105. break;
  106. }
  107. break;
  108. case 7: // w lewo-dol
  109. if(rzad2!=2 && kolumna2!=0) {
  110. Tab[rzad2+1][kolumna2-1] = 2 ;
  111. Tab[rzad2][kolumna2] = 3;
  112. rzad2=rzad2+1;
  113. kolumna2=kolumna2-1;
  114.  
  115. }
  116. else {
  117. break;
  118. }
  119. break;
  120. case 8: // w prawo-dol
  121. if(rzad2!=2 && kolumna2!=2) {
  122. Tab[rzad2+1][kolumna2+1] = 2 ;
  123. Tab[rzad2][kolumna2] = 3;
  124. rzad2=rzad2+1;
  125. kolumna2=kolumna2+1;
  126.  
  127. }
  128. else {
  129. break;
  130. }
  131. break;
  132. }
  133. for(int i=0; i<3; i++) {
  134. for(int j=0; j<3; j++) {
  135. if(Tab[i][j]==1) {
  136. TF = 1;
  137. break;
  138. }
  139. else {
  140. TF = 0;
  141. }
  142. }
  143. if(TF > 0) {
  144. break;
  145. }
  146. }
  147. for(int m=0; m<3; m++) {
  148. for(int j=0; j<3; j++) {
  149. System.out.print(Tab[m][j]);
  150. }
  151. System.out.println();
  152. }
  153. }
  154.  
  155.  
  156. for(int m=0; m<3; m++) {
  157. for(int j=0; j<3; j++) {
  158. System.out.print(Tab[m][j]);
  159. }
  160. System.out.println();
  161. }
  162.  
  163. }
  164.  
  165. public static void najblizszy(int[][] Tab, int rzad2, int kolumna2) {
  166. boolean change = true;
  167. System.out.println();
  168. int buff;
  169. int odl = 100;
  170. int najrzad2 = rzad2;
  171. int najkolumna2 = kolumna2;
  172. int kierunek; // 1=N 2=E 3=S 4=W 5=NW 6=NE 7=SE 8=SW
  173.  
  174. int TF = 1;
  175.  
  176. while(TF > 0) {
  177. odl = 100;
  178. najrzad2 = rzad2;
  179. najkolumna2 = kolumna2;
  180. System.out.println();
  181. change = true;
  182. for(int i=0; i<23; i++) {
  183.  
  184. for(int j=0; j<23; j++) {
  185. if(Tab[i][j]==1) {
  186. if(rzad2==i) {
  187. buff = Math.abs(kolumna2-j);
  188. if(buff<odl) {
  189. odl=buff;
  190. najrzad2=rzad2;
  191. najkolumna2=j;
  192. }
  193. }
  194. else if(kolumna2==j) {
  195. buff = Math.abs(rzad2-i);
  196. if(buff<odl) {
  197. odl=buff;
  198. najkolumna2=kolumna2;
  199. najrzad2=i;
  200. }
  201. }
  202. else if(Math.abs(kolumna2-j)==Math.abs(rzad2-i)) {
  203. buff = Math.abs(rzad2-i);
  204. if(buff<odl) {
  205. odl=buff;
  206. najkolumna2=j;
  207. najrzad2=i;
  208. }
  209. }
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216. }
  217. }
  218. }
  219.  
  220. if(najrzad2 == rzad2) {
  221. if(najkolumna2>kolumna2) {
  222. kierunek = 2;
  223. }
  224. else{
  225. kierunek = 4;
  226. }
  227. }
  228. else if(najkolumna2 == kolumna2) {
  229. if(najrzad2>rzad2) {
  230. kierunek = 3;
  231. }
  232. else {
  233. kierunek = 1;
  234. }
  235. }
  236. else{
  237. if(najrzad2>rzad2 && najkolumna2>kolumna2) {
  238. kierunek = 7;
  239. }
  240. else if(najrzad2<rzad2 && najkolumna2<kolumna2) {
  241. kierunek = 5;
  242. }
  243. else if(najrzad2>rzad2 && najkolumna2<kolumna2) {
  244. kierunek = 8;
  245. }
  246. else {
  247. kierunek = 6;
  248. }
  249.  
  250. }
  251.  
  252. while(Tab[rzad2][kolumna2]!=1 && change==true) {
  253. switch(kierunek) {
  254. case 2:
  255. if(Tab[rzad2][kolumna2+1]==1)
  256. change = false;
  257. Tab[rzad2][++kolumna2] = 2;
  258. Tab[rzad2][kolumna2-1] = 3;
  259.  
  260. break;
  261. case 6:
  262. if(Tab[rzad2-1][kolumna2+1]==1)
  263. change = false;
  264. Tab[--rzad2][++kolumna2] = 2;
  265. Tab[rzad2+1][kolumna2-1] = 3;
  266.  
  267. break;
  268. case 7:
  269. if(Tab[rzad2+1][kolumna2+1]==1)
  270. change = false;
  271. Tab[++rzad2][++kolumna2] = 2;
  272. Tab[rzad2-1][kolumna2-1] = 3;
  273.  
  274. break;
  275. case 3:
  276. if(Tab[rzad2+1][kolumna2]==1)
  277. change = false;
  278. Tab[++rzad2][kolumna2] = 2;
  279. Tab[rzad2-1][kolumna2] = 3;
  280.  
  281. break;
  282. case 1:
  283. if(Tab[rzad2-1][kolumna2]==1)
  284. change = false;
  285. Tab[--rzad2][kolumna2] = 2;
  286. Tab[rzad2+1][kolumna2] = 3;
  287.  
  288. break;
  289. case 4:
  290. if(Tab[rzad2][kolumna2-1]==1)
  291. change = false;
  292. Tab[rzad2][--kolumna2] = 2;
  293. Tab[rzad2][kolumna2+1] = 3;
  294.  
  295. break;
  296. case 5:
  297. if(Tab[rzad2-1][kolumna2-1]==1)
  298. change = false;
  299. Tab[--rzad2][--kolumna2] = 2;
  300. Tab[rzad2+1][kolumna2+1] = 3;
  301.  
  302. break;
  303. case 8:
  304. if(Tab[rzad2+1][kolumna2-1]==1)
  305. change = false;
  306. Tab[++rzad2][--kolumna2] = 2;
  307. Tab[rzad2-1][kolumna2+1] = 3;
  308.  
  309. break;
  310. }
  311. for(int m=0; m<23; m++) {
  312. for(int j=0; j<23; j++) {
  313. System.out.print(Tab[m][j]+" ");
  314. }
  315. System.out.println();
  316. }
  317.  
  318. }
  319. for(int i=0; i<23; i++) {
  320. for(int j=0; j<23; j++) {
  321. if(Tab[i][j]==1) {
  322. TF = 1;
  323. break;
  324. }
  325. else {
  326. TF = 0;
  327. }
  328. }
  329. if(TF > 0) {
  330. break;
  331. }
  332. }
  333.  
  334.  
  335. }
  336. System.out.println("Koncowa tablica: ");
  337. for(int m=0; m<23; m++) {
  338. for(int j=0; j<23; j++) {
  339. System.out.print(Tab[m][j]);
  340. }
  341. System.out.println();
  342. }
  343. }
  344.  
  345. // public static void wie(int [][]Tab, int rzad2, int kolumna2, int jedynki) {
  346. // int first = 0;
  347. // int second = 0;
  348. // int jedyneczki[][] = new int [jedynki][2];
  349. // for(int i=0; i<3; i++) {
  350. // for(int j=0; j<3; j++) {
  351. // if(tab[i][j]==1) {
  352. // jedyneczki[first][first] = tab[i][j];
  353. // first++;
  354. // }
  355. // }
  356. // }
  357. // }
  358.  
  359. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement