Advertisement
Guest User

Untitled

a guest
May 22nd, 2019
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.08 KB | None | 0 0
  1. package com.praktika4_juuse;
  2.  
  3. import java.util.Random;
  4. import java.util.Scanner;
  5.  
  6. public class Main {
  7.  
  8. //loome meetodi mis tekitab sakilise kahedimensioonilise array ning täidame need juhuslike 1 ja 0-dega
  9. public static int[][] looRongiIstekohad() {
  10. int[][] rongiIstekohad = new int[5][];
  11.  
  12. rongiIstekohad[0] = new int[54];
  13. rongiIstekohad[1] = new int[36];
  14. rongiIstekohad[2] = new int[18];
  15. rongiIstekohad[3] = new int[36];
  16. rongiIstekohad[4] = new int[54];
  17.  
  18. //konstrueerime Random klassi 0 ja 1 jaoks
  19. Random rng = new Random();
  20.  
  21. //täidame array juhuarvudega
  22. for (int i = 0; i < rongiIstekohad.length; i++) {
  23. for (int j = 0; j < rongiIstekohad[i].length; j++) {
  24. rongiIstekohad[i][j] = rng.nextInt(2);
  25. }
  26. }
  27.  
  28. return rongiIstekohad;
  29. }
  30.  
  31. //prindime istekohad kõikide vagunite kohta
  32. public static void prindiRongiIstekohad(int[][] rongiIstekohad) {
  33.  
  34. //vagunite tsükkel
  35. System.out.println();
  36. for (int i = 0; i < rongiIstekohad.length; i++) {
  37.  
  38. // prindime kohtade numbrid et kasutaja oskaks valida kohanumbrit
  39. System.out.println();
  40. System.out.print("Istekoht - ");
  41. for (int j = 0; j < rongiIstekohad[i].length; j++) {
  42. System.out.print(" " + (j + 1));
  43. }
  44.  
  45. System.out.println();
  46. System.out.print("Vagun " + (i + 1) + " - ");
  47.  
  48. // prindime vaguni istekohad
  49. for (int j = 0; j < rongiIstekohad[i].length; j++) {
  50. if (j > 9) {
  51. System.out.print(" ");
  52. }
  53. System.out.print(" " + rongiIstekohad[i][j]);
  54. }
  55.  
  56. System.out.println();
  57. }
  58.  
  59. }
  60.  
  61. //prindime seekord ainult valitud vaguni istekohad
  62. public static void prindiVaguniIstekohad(int[][] rongiIstekohad, int vagun) {
  63. System.out.println();
  64. System.out.print("Istekoht - ");
  65. for (int j = 0; j < rongiIstekohad[vagun].length; j++) {
  66. System.out.print(" " + (j + 1));
  67. }
  68.  
  69. System.out.println();
  70. System.out.print("Vagun " + (vagun + 1) + " - ");
  71.  
  72. for (int j = 0; j < rongiIstekohad[vagun].length; j++) {
  73. if (j > 9) {
  74. System.out.print(" ");
  75. }
  76. System.out.print(" " + rongiIstekohad[vagun][j]);
  77. }
  78. }
  79.  
  80. //prindime seekord ainult valitud vaguni istekohad ja lisaks kas ülemised kohad või alumised
  81. public static void prindiVaguniIstekohad(int[][] rongiIstekohad, int vagun, String filter) {
  82. System.out.println();
  83. System.out.print("Istekoht - ");
  84. for (int j = 0; j < rongiIstekohad[vagun].length; j++) {
  85.  
  86. // Jäta istekohad vahele vastavalt kas on nõutud ülemisi või alumisi kohti
  87. if (vagun == 0 || vagun == 1 || vagun == 3 || vagun == 4) {
  88.  
  89. if (filter == "ulemised" && (j + 1) % 2 == 0) {
  90. continue;
  91. } else if (filter == "alumised" && (j + 1) % 2 == 1) {
  92. continue;
  93. }
  94. } else if (vagun == 2) {
  95.  
  96. if (filter.compareTo("kulgmised") == 0 && (j + 1) < 37) {
  97. continue;
  98. } else if (filter.compareTo("sisemised") == 0 && (j + 1) > 37) {
  99. continue;
  100. }
  101. }
  102.  
  103. System.out.print(" " + (j + 1));
  104. }
  105.  
  106. System.out.println();
  107. System.out.print("Vagun " + (vagun + 1) + " - ");
  108.  
  109. for (int j = 0; j < rongiIstekohad[vagun].length; j++) {
  110.  
  111. // Jäta istekohad vahele vastavalt kas on nõutud ülemisi või alumisi kohti
  112. if (vagun == 0 || vagun == 1 || vagun == 3 || vagun == 4) {
  113.  
  114. if (filter.compareTo("ulemised") == 0 && (j + 1) % 2 == 0) {
  115. continue;
  116. } else if (filter.compareTo("alumised") == 0 && (j + 1) % 2 == 1) {
  117. continue;
  118. }
  119. } else if (vagun == 2) {
  120.  
  121. if (filter.compareTo("kulgmised") == 0 && (j + 1) < 37) {
  122. continue;
  123. } else if (filter.compareTo("sisemised") == 0 && (j + 1) > 37) {
  124. continue;
  125. }
  126. }
  127.  
  128. if (j > 9) {
  129. System.out.print(" ");
  130. }
  131. System.out.print(" " + rongiIstekohad[vagun][j]);
  132. }
  133. }
  134.  
  135. public static void main(String[] args) {
  136.  
  137. int[][] rongiIstekohad = Main.looRongiIstekohad();
  138.  
  139. Main.prindiRongiIstekohad(rongiIstekohad);
  140.  
  141. Scanner scn = new Scanner(System.in);
  142.  
  143. // teeme while loopi seni kuni kasutaja sisestab korrektse vaguni numbri
  144. int vagun = -1;
  145. while (vagun == -1) {
  146.  
  147. System.out.println();
  148. System.out.println("Valige vagun kuhu pilet osta: ");
  149.  
  150. if (scn.hasNextInt()) {
  151. vagun = scn.nextInt();
  152.  
  153. if (vagun < 1 || vagun > 5) {
  154. vagun = -1;
  155. }
  156. continue;
  157. }
  158.  
  159. System.out.println("Vaguni valisimisel tekkis viga. Palun proovige uuesti!");
  160. }
  161.  
  162. // array algavad 0-ist aga kasutaja sisestab vaguneid alustades 1-est
  163. vagun = vagun - 1;
  164.  
  165. Main.prindiVaguniIstekohad(rongiIstekohad, vagun);
  166.  
  167. // teeme while loopi seni kuni kasutaja sisestab korrektse koha numbri
  168. int koht = -1;
  169. int tasemeValik = -1;
  170. int kulgKohaValik = -1;
  171. while (koht == -1) {
  172.  
  173. System.out.println();
  174.  
  175. if (tasemeValik == -1 && (vagun == 0 || vagun == 4 || vagun == 1 || vagun == 3)) {
  176. System.out.println("Milliseid kohti soovite?");
  177. System.out.println("[1] Ülemisi");
  178. System.out.println("[2] Alumisi");
  179.  
  180. // teeme while loopi seni kuni kasutaja sisestab korrektse valiku numbri
  181. while (tasemeValik == -1) {
  182.  
  183. if (scn.hasNextInt()) {
  184. tasemeValik = scn.nextInt();
  185.  
  186. // kui kasutaja sisestab väiksema või suurema võimaliku valiku numbri
  187. if (tasemeValik != 1 && tasemeValik != 2) {
  188. tasemeValik = -1;
  189. continue;
  190. }
  191.  
  192. System.out.println("Taseme valisimisel tekkis viga. Palun proovige uuesti!");
  193. }
  194. }
  195.  
  196. if (tasemeValik == 1) {
  197. Main.prindiVaguniIstekohad(rongiIstekohad, vagun, "ulemised");
  198. } else {
  199. Main.prindiVaguniIstekohad(rongiIstekohad, vagun, "alumised");
  200. }
  201. } else if (kulgKohaValik == -1 && vagun == 2) {
  202. System.out.println("Milliseid kohti soovite?");
  203. System.out.println("[1] Külgmisi");
  204. System.out.println("[2] Sisekohad");
  205.  
  206. // teeme while loopi seni kuni kasutaja sisestab korrektse valiku numbri
  207. while (kulgKohaValik == -1) {
  208.  
  209. if (scn.hasNextInt()) {
  210. kulgKohaValik = scn.nextInt();
  211.  
  212. // kui kasutaja sisestab väiksema või suurema võimaliku valiku numbri
  213. if (kulgKohaValik != 1 && kulgKohaValik != 2) {
  214. kulgKohaValik = -1;
  215. System.out.println("Kulgmiste kohtate valisimisel tekkis viga. Palun proovige uuesti!");
  216. continue;
  217. }
  218. }
  219. }
  220.  
  221. if (kulgKohaValik == 1) {
  222. Main.prindiVaguniIstekohad(rongiIstekohad, vagun, "kulgmised");
  223. } else {
  224. Main.prindiVaguniIstekohad(rongiIstekohad, vagun, "sisemised");
  225. }
  226. }
  227.  
  228. System.out.println("Palun valige koht: ");
  229.  
  230. if (scn.hasNextInt()) {
  231. koht = scn.nextInt();
  232.  
  233. // kui kasutaja sisestab väiksema või suurema võimaliku koha numbri
  234. if (!(rongiIstekohad[vagun].length <= koht || koht > 0)) {
  235. koht = -1;
  236. System.out.println("Koha valisimisel tekkis viga. Palun proovige uuesti!");
  237. continue;
  238. }
  239.  
  240. //koht on juba võetud
  241. if (rongiIstekohad[vagun][koht] == 1) {
  242. koht = -1;
  243. System.out.println("Koht on juba kelelgi teise poolt võetud! Palun proovige uuesti.");
  244. continue;
  245. }
  246. }
  247. }
  248.  
  249. System.out.println();
  250. System.out.println();
  251.  
  252. rongiIstekohad[vagun][koht] = 1;
  253. System.out.println("Olete edukalt ostnud pileti " + vagun + " vagunisse kohale " + koht);
  254. Main.prindiVaguniIstekohad(rongiIstekohad, vagun);
  255. }
  256. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement