Advertisement
Guest User

Untitled

a guest
May 21st, 2019
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.07 KB | None | 0 0
  1. package minesweeper;
  2.  
  3. // Spiel soll mit den Variablen/Konstanten aus Minen arbeiten können
  4.  
  5. public class Spiel extends Minen {
  6.  
  7. public Anzeige anzeige;
  8. int versteckteFelder = Anzeige.BREITE * Anzeige.HOEHE;
  9. private char spielZustand = AKTIVESSPIEL;
  10. public static final char AKTIVESSPIEL = 'A';
  11. public static final char GEWONNEN = 'W';
  12. public static final char VERLOREN = 'L';
  13.  
  14. public Spiel() {
  15.  
  16. anzeige = new Anzeige();
  17.  
  18. }
  19.  
  20. public char getZustand() {
  21. return spielZustand;
  22. }
  23.  
  24. // Schaut, ob auf dem Platz im Minenarray eine Mine vorhanden ist
  25. // und fügt sie ggf. in der Spielfeldanzeige ein
  26. //
  27. // Ist keine Mine vorhanden, so werden die Nachbarminen gezählt
  28.  
  29. public void suche(int x, int y) {
  30. if (spielZustand == AKTIVESSPIEL) {
  31. // System.out.println(versteckeFelder);
  32.  
  33. // Wenn Mine angeklickt wird, dann werden alle aufgedeckt & das Spiel ist
  34. // verloren
  35. if (istHierMine(x, y)) {
  36. minenAufdecken();
  37. spielZustand = VERLOREN;
  38.  
  39. } else {
  40. zaehleNachbarn(x, y);
  41. versteckteFelder--;
  42. }
  43.  
  44. if (versteckteFelder == Minen.ANZAHLMINEN) {
  45. minenAufdecken();
  46. spielZustand = GEWONNEN;
  47. // System.out.println("gew");
  48. }
  49.  
  50. }
  51. System.out.println(versteckteFelder);
  52. }
  53.  
  54. private void minenAufdecken() {
  55. for (int i = 0; i < Minen.ANZAHLMINEN; i++) {
  56. Mine mine = get(i);
  57. anzeige.mineSetzten(mine.getX(), mine.getY());
  58. }
  59. }
  60.  
  61. private void zaehleNachbarn(int posX, int posY) {
  62. char zaehler = '0';
  63. for (int x = posX - 1; x <= posX + 1; x++) {
  64. for (int y = posY - 1; y <= posY + 1; y++) {
  65. if (istHierMine(x, y))
  66. zaehler += 1;
  67. }
  68. }
  69.  
  70. anzeige.spielfeld[posX][posY] = zaehler;
  71.  
  72. if (zaehler == '0') {
  73. for (int x = posX - 1; x <= posX + 1; x++) {
  74. for (int y = posY - 1; y <= posY + 1; y++) {
  75. if (x < Anzeige.BREITE && y < Anzeige.HOEHE) {
  76. if (x >= 0 && y >= 0) {
  77. if (anzeige.spielfeld[x][y] == Anzeige.LEER) {
  78. zaehleNachbarn(x, y);
  79. versteckteFelder--;
  80.  
  81. }
  82.  
  83. }
  84. }
  85.  
  86. }
  87. }
  88.  
  89. }
  90.  
  91. }
  92.  
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement