Advertisement
kokusz19

Shell_MineSweeper

Dec 18th, 2017
235
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.79 KB | None | 0 0
  1. package shell;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5.  
  6. public class Game extends Shell{
  7. public boolean start = false;
  8. public boolean vege = false;
  9. public char[][] tabla = new char[10][10];
  10. public int akna;
  11. public int aknaossz;
  12. public int zaszlo;
  13. public int win = 0;
  14.  
  15. public void feltolt(char[][] tabla){
  16. for (int i = 0; i < 10; i++) {
  17. for (int j = 0; j < 10; j++) {
  18. tabla[j][i] = '_';
  19. }
  20. }
  21. }
  22.  
  23. public void kiir(char[][] tabla){
  24. System.out.println(" A B C D E F G H I J");
  25. for (int i = 0; i < 10; i++) {
  26. for (int j = 0; j < 10; j++) {
  27. if(j == 0 && i != 9){
  28. format("%d %c ", i+1, tabla[j][i]);
  29. }
  30. else if(j == 0 && i == 9){
  31. format("%d %c ", i+1, tabla[j][i]);
  32. }
  33. else if(j == 9 && i != 9){
  34. format("%c%n", tabla[j][i]);
  35. }
  36. else{
  37. format("%c ", tabla[j][i]);
  38. }
  39. }
  40. }
  41. }
  42.  
  43. public Game(){
  44.  
  45.  
  46. addCommand(new Command("new") {
  47. @Override
  48. public boolean execute(String... args){
  49. if(args.length > 1) return false;
  50. if(args.length == 1){
  51. akna = Integer.parseInt(args[0]);
  52. zaszlo = akna;
  53. aknaossz = akna;
  54. if(akna > 99 || akna < 1) return false;
  55. }
  56. if(args.length == 0){
  57. akna = 10;
  58. aknaossz = akna;
  59. zaszlo = 10;
  60. }
  61. start = true;
  62. vege = false;
  63. feltolt(tabla);
  64. return true;
  65. }
  66.  
  67. });
  68.  
  69.  
  70. // WIN OR LOSE-ra függvényt írni majd
  71. addCommand(new Command("print"){
  72. @Override
  73. public boolean execute(String... args){
  74. if(args.length > 0 || start == false) return false;
  75.  
  76. else{
  77. kiir(tabla);
  78. format("%nOsszesen %d akna van elrejtve (%d db-ot jelolt meg)%n", aknaossz, aknaossz-akna);
  79. format("%d zaszlod maradt hátra!%n", zaszlo);
  80. if(vege == true) format("A jateknak vege!%n");
  81. if(win == 1) format("Nyertel!%n");
  82. if(win == -1) format("Vesztettel!%n");
  83. }
  84. return true;
  85. }
  86. });
  87.  
  88.  
  89. addCommand(new Command("flag"){
  90. @Override
  91. public boolean execute(String... args){
  92. if(args.length != 2 || start == false || zaszlo == 0 || vege == true) {
  93. System.out.println("1. feltetelnel halt meg (alapok)");
  94. return false;
  95. }
  96. if(!args[0].equals("A") && !args[0].equals("B") && !args[0].equals("C") && !args[0].equals("D") && !args[0].equals("E")
  97. && !args[0].equals("F") && !args[0].equals("G") && !args[0].equals("H") && !args[0].equals("I") && !args[0].equals("J"))
  98. return false;
  99.  
  100. int sor= Integer.parseInt(args[1])-1;
  101. if(sor>9 || sor<0)
  102. return false;
  103.  
  104. int oszlop = 0;
  105.  
  106. if(args[0].equals("A")) oszlop = 0;
  107. if(args[0].equals("B")) oszlop = 1;
  108. if(args[0].equals("C")) oszlop = 2;
  109. if(args[0].equals("D")) oszlop = 3;
  110. if(args[0].equals("E")) oszlop = 4;
  111. if(args[0].equals("F")) oszlop = 5;
  112. if(args[0].equals("G")) oszlop = 6;
  113. if(args[0].equals("H")) oszlop = 7;
  114. if(args[0].equals("I")) oszlop = 8;
  115. if(args[0].equals("J")) oszlop = 9;
  116. else if(tabla[oszlop][sor] != '_'){
  117. return false;
  118. }
  119.  
  120. else{
  121. tabla[oszlop][sor] = 'F';
  122. zaszlo--;
  123. akna--;
  124. }
  125. return true;
  126. }
  127. });
  128.  
  129.  
  130. addCommand(new Command("unflag"){
  131. @Override
  132. public boolean execute(String... args){
  133. if(args.length != 2 || start == false || zaszlo == 0 || vege == true) {
  134. System.out.println("1. feltetelnel halt meg (alapok)");
  135. return false;
  136. }
  137. if(!args[0].equals("A") && !args[0].equals("B") && !args[0].equals("C") && !args[0].equals("D") && !args[0].equals("E")
  138. && !args[0].equals("F") && !args[0].equals("G") && !args[0].equals("H") && !args[0].equals("I") && !args[0].equals("J"))
  139. return false;
  140.  
  141. int sor= Integer.parseInt(args[1])-1;
  142. if(sor>9 || sor<0)
  143. return false;
  144.  
  145. if(zaszlo == aknaossz) return false;
  146.  
  147. int oszlop = 0;
  148.  
  149. if(args[0].equals("A")) oszlop = 0;
  150. if(args[0].equals("B")) oszlop = 1;
  151. if(args[0].equals("C")) oszlop = 2;
  152. if(args[0].equals("D")) oszlop = 3;
  153. if(args[0].equals("E")) oszlop = 4;
  154. if(args[0].equals("F")) oszlop = 5;
  155. if(args[0].equals("G")) oszlop = 6;
  156. if(args[0].equals("H")) oszlop = 7;
  157. if(args[0].equals("I")) oszlop = 8;
  158. if(args[0].equals("J")) oszlop = 9;
  159. else if(tabla[oszlop][sor] != 'F'){
  160. System.out.println("4. feltetelnel halt meg('_')");
  161. return false;
  162. }
  163.  
  164. else{
  165. tabla[oszlop][sor] = '_';
  166. zaszlo++;
  167. akna++;
  168. }
  169. return true;
  170. }
  171. });
  172.  
  173.  
  174. addCommand(new Command("fire"){
  175. @Override
  176. public boolean execute(String... args){
  177.  
  178. if(args.length != 2 || start == false || vege == true)
  179. return false;
  180.  
  181. int sor= Integer.parseInt(args[1])-1;
  182. if(sor>9 || sor<0)
  183. return false;
  184.  
  185. int oszlop = 0;
  186.  
  187. if(args[0].equals("A")) oszlop = 0;
  188. if(args[0].equals("B")) oszlop = 1;
  189. if(args[0].equals("C")) oszlop = 2;
  190. if(args[0].equals("D")) oszlop = 3;
  191. if(args[0].equals("E")) oszlop = 4;
  192. if(args[0].equals("F")) oszlop = 5;
  193. if(args[0].equals("G")) oszlop = 6;
  194. if(args[0].equals("H")) oszlop = 7;
  195. if(args[0].equals("I")) oszlop = 8;
  196. if(args[0].equals("J")) oszlop = 9;
  197. if(!(tabla[oszlop][sor] == '_') && !(tabla[oszlop][sor] == '1') && !(tabla[oszlop][sor] == '2') && !(tabla[oszlop][sor] == '3')
  198. && !(tabla[oszlop][sor] == '4') && !(tabla[oszlop][sor] == '5') && !(tabla[oszlop][sor] == '6') && !(tabla[oszlop][sor] == '7')
  199. && !(tabla[oszlop][sor] == '8') && !(tabla[oszlop][sor] == '9') && !(tabla[oszlop][sor] == '0')){
  200. return false;
  201. }
  202.  
  203. else{
  204. List<Result> lista = new ArrayList<>();
  205. lista.clear();
  206. lista.addAll(resultOfShot(sor, oszlop));
  207. for (int i = 0; i < lista.size(); i++) {
  208. if(lista.get(i).getValue() == 0)
  209. tabla[lista.get(i).getColumn()][lista.get(i).getRow()] = '0';
  210. if(lista.get(i).getValue() == 1)
  211. tabla[lista.get(i).getColumn()][lista.get(i).getRow()] = '1';
  212. if(lista.get(i).getValue() == 2)
  213. tabla[lista.get(i).getColumn()][lista.get(i).getRow()] = '2';
  214. if(lista.get(i).getValue() == 3)
  215. tabla[lista.get(i).getColumn()][lista.get(i).getRow()] = '3';
  216. if(lista.get(i).getValue() == 4)
  217. tabla[lista.get(i).getColumn()][lista.get(i).getRow()] = '4';
  218. if(lista.get(i).getValue() == 5)
  219. tabla[lista.get(i).getColumn()][lista.get(i).getRow()] = '5';
  220. if(lista.get(i).getValue() == 6)
  221. tabla[lista.get(i).getColumn()][lista.get(i).getRow()] = '6';
  222. if(lista.get(i).getValue() == 7)
  223. tabla[lista.get(i).getColumn()][lista.get(i).getRow()] = '7';
  224. if(lista.get(i).getValue() == 8)
  225. tabla[lista.get(i).getColumn()][lista.get(i).getRow()] = '8';
  226. if(lista.get(i).getValue() == Result.MINE){
  227. vege = true;
  228. win = -1;
  229. tabla[lista.get(i).getColumn()][lista.get(i).getRow()] = '*';
  230. System.out.println("LOSE!");
  231. }
  232. }
  233.  
  234.  
  235. int megvan = 0;
  236. for (int i = 0; i < 10; i++) {
  237. for (int j = 0; j < 10; j++) {
  238. if(tabla[j][i] != '_') megvan++;
  239. }
  240. }
  241.  
  242. if(megvan == 100 || megvan + akna == 100){
  243. System.out.println("WIN!");
  244. win = 1;
  245. vege = true;
  246. }
  247.  
  248. return true;
  249. }
  250. }
  251. });
  252.  
  253.  
  254. addCommand(new Command("solution"){
  255. @Override
  256. public boolean execute(String... args){
  257. if(args.length != 0 || start == false || vege == false)
  258. return false;
  259. else
  260. System.out.println(solution());
  261. return true;
  262.  
  263.  
  264. }
  265. });
  266.  
  267.  
  268.  
  269. }
  270. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement