Probleme beim Programmieren eines Spiels

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Probleme beim Programmieren eines Spiels

    Bin dabei, ein 4gewint Applet zu programmieren.

    Ich möchte die Bilder mit einer paint Methode auf die Spielfläche zeichnen, nur wie stell ich dass an? Ich komme einfach nicht weiter, habt ihr vielleicht eine Idee?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von dud ()

  • Ich habe hier jetzt einen neuen code und der funktioniert auch soweit ganz gut, aber wie ermittle ich jetzt den Gewinn bei einer Diagonalen?
    senkrecht und waagerecht funktioniert. nur die diagonale macht noch probleme.
    könntet ihr mir da weiterhelfen, ich komm einfach nicht auf die lösung.

    Und ich wollte noch einen Button per mouselistener einbauen, mit dem man dass momentane Spielfeld leeren kann, also die spielsteine vom Feld löschen.

    Außerdem ist noch ein weiterer kleiner fehler im code. Wenn ein Spieler dass Spiel gewinnt, wird dass Spielfeld sofort gelöscht, dass Spielfeld soll aber erst dann nach dem Gewinnen gelöscht werden, wenn der spieler die confirm nachricht bestätigt.
    Hoffe ihr könnt mir weiterhelfen =)

    hier der code


    Java-Quellcode

    1. import java.applet.*;
    2. import java.awt.*;
    3. import java.awt.event.*;
    4. import javax.swing.JOptionPane;
    5. public class VierGewinnt_dummy extends Applet implements MouseListener {
    6. private static final long serialVersionUID = -8566236578954888489L;
    7. static int feld[][] = {
    8. { 0, 0, 0, 0, 0, 0, 0 },
    9. { 0, 0, 0, 0, 0, 0, 0 },
    10. { 0, 0, 0, 0, 0, 0, 0 },
    11. { 0, 0, 0, 0, 0, 0, 0 },
    12. { 0, 0, 0, 0, 0, 0, 0 },
    13. { 0, 0, 0, 0, 0, 0, 0 }
    14. };
    15. int player = 1;
    16. int a = 0;
    17. int b = 0;
    18. Image rot;
    19. Image blau;
    20. Image cube;
    21. String Spieler1 = JOptionPane
    22. .showInputDialog("Spieler1:");
    23. String Spieler2 = JOptionPane
    24. .showInputDialog("Spieler 2:");
    25. public void init() {
    26. addMouseListener(this);
    27. cube = Toolkit.getDefaultToolkit().createImage("cube.gif");
    28. rot = getImage(getCodeBase(), "rot.gif");
    29. blau = getImage(getCodeBase(), "blau.gif");
    30. JOptionPane.showMessageDialog(null, Spieler1 +" beginnt!");
    31. }
    32. public boolean gewonnen(String Spieler) {
    33. String s = "";
    34. for (int y2 = 0; y2 < 6; y2++) {
    35. for (int x1 = 0; x1 < 7; x1++) {
    36. s = s + feld[y2][x1];
    37. }
    38. }
    39. for (int x1 = 0; x1 < 7; x1++) {
    40. for (int y2 = 0; y2 < 6; y2++) {
    41. s = s + feld[y2][x1];
    42. }
    43. }
    44. repaint();
    45. if (s.contains(Spieler)) {
    46. for (int x1 = 0; x1 < 7; x1++)
    47. for (int y1 = 0; y1 < 6; y1++)
    48. feld[y1][x1] = 0;
    49. repaint();
    50. return true;
    51. }
    52. return false;
    53. }
    54. public void drawSpielfeld(Graphics g) {
    55. g.drawImage(cube, 0, 0, this);
    56. g.setFont(new Font("Comic Sans MS", + Font.BOLD, 20));
    57. g.setColor(Color.white);
    58. g.drawLine(0, 50, 0, 350);
    59. g.drawLine(50, 50, 50, 350);
    60. g.drawLine(100, 50, 100, 350);
    61. g.drawLine(150, 50, 150, 350);
    62. g.drawLine(200, 50, 200, 350);
    63. g.drawLine(250, 50, 250, 350);
    64. g.drawLine(300, 50, 300, 350);
    65. g.drawLine(350, 50, 350, 350);
    66. g.drawLine(0, 50, 350, 50);
    67. g.drawLine(0, 100, 350, 100);
    68. g.drawLine(0, 150, 350, 150);
    69. g.drawLine(0, 200, 350, 200);
    70. g.drawLine(0, 250, 350, 250);
    71. g.drawLine(0, 300, 350, 300);
    72. g.drawLine(0, 350, 350, 350);
    73. g.setColor(Color.red);
    74. g.drawString("Vier Gewinnt", 225, 20);
    75. g.drawRect(0,350,350,390);
    76. g.setColor(Color.white);
    77. g.fillRect(1, 349, 349, 389);
    78. g.setColor(Color.black );
    79. g.drawRect(50, 355, 242, 35);
    80. g.setFont(new Font("Comic Sans MS", + Font.BOLD, 20));
    81. g.setColor(Color.black);
    82. g.drawString("Spielfeld Leeren", 96, 380);
    83. }
    84. public void paint(Graphics g) {
    85. resize(351, 400);
    86. drawSpielfeld(g);
    87. for (int x = 0; x < 7; x++) {
    88. for (int y = 0; y < 6; y++) {
    89. if (feld[y][x] == 1)
    90. g.drawImage(rot, 50 * x, 50 * y + 50, this);
    91. if (feld[y][x] == 2)
    92. g.drawImage(blau, 50 * x, 50 * y + 50, this);
    93. }
    94. }
    95. g.drawString(Spieler1 + ":" + a, 0, 20);
    96. g.drawString(Spieler2 + ":" + b, 0, 45);
    97. if (player == 1) { g.drawRect(230,22,118,22);
    98. g.setColor(Color.red);
    99. g.fillRect(231, 23, 117, 21);}
    100. if (player == 2) {
    101. g.drawRect(230,22,118,22);
    102. g.setColor(Color.blue);
    103. g.fillRect(231, 23, 117, 21);
    104. }
    105. }
    106. public void mouseClicked(MouseEvent arg0) {
    107. }
    108. public void mousePressed(MouseEvent arg0) {
    109. int x = arg0.getX();
    110. if (player == 1) {
    111. int feldvoll = 5;
    112. if (x < 50) {
    113. for (feldvoll = 5; feld[feldvoll][0] != 0; feldvoll--) {
    114. }
    115. feld[feldvoll][0] = 1;
    116. }
    117. if (x > 50 && x < 100) {
    118. for (feldvoll = 5; feld[feldvoll][1] != 0; feldvoll--) {
    119. }
    120. feld[feldvoll][1] = 1;
    121. }
    122. if (x > 100 && x < 150) {
    123. for (feldvoll = 5; feld[feldvoll][2] != 0; feldvoll--) {
    124. }
    125. feld[feldvoll][2] = 1;
    126. }
    127. if (x > 150 && x < 200) {
    128. for (feldvoll = 5; feld[feldvoll][3] != 0; feldvoll--) {
    129. }
    130. feld[feldvoll][3] = 1;
    131. }
    132. if (x > 200 && x < 250) {
    133. for (feldvoll = 5; feld[feldvoll][4] != 0; feldvoll--) {
    134. }
    135. feld[feldvoll][4] = 1;
    136. }
    137. if (x > 250 && x < 300) {
    138. for (feldvoll = 5; feld[feldvoll][5] != 0; feldvoll--) {
    139. }
    140. feld[feldvoll][5] = 1;
    141. }
    142. if (x > 300 && x < 350) {
    143. for (feldvoll = 5; feld[feldvoll][6] != 0; feldvoll--) {
    144. }
    145. feld[feldvoll][6] = 1;
    146. }
    147. player = 2;
    148. } else if (player == 2) {
    149. int feldvoll = 5;
    150. if (x < 50) {
    151. for (feldvoll = 5; feld[feldvoll][0] != 0; feldvoll--) {
    152. }
    153. feld[feldvoll][0] = 2;
    154. }
    155. if (x > 50 && x < 100) {
    156. for (feldvoll = 5; feld[feldvoll][1] != 0; feldvoll--) {
    157. }
    158. feld[feldvoll][1] = 2;
    159. }
    160. if (x > 100 && x < 150) {
    161. for (feldvoll = 5; feld[feldvoll][2] != 0; feldvoll--) {
    162. }
    163. feld[feldvoll][2] = 2;
    164. }
    165. if (x > 150 && x < 200) {
    166. for (feldvoll = 5; feld[feldvoll][3] != 0; feldvoll--) {
    167. }
    168. feld[feldvoll][3] = 2;
    169. }
    170. if (x > 200 && x < 250) {
    171. for (feldvoll = 5; feld[feldvoll][4] != 0; feldvoll--) {
    172. }
    173. feld[feldvoll][4] = 2;
    174. }
    175. if (x > 250 && x < 300) {
    176. for (feldvoll = 5; feld[feldvoll][5] != 0; feldvoll--) {
    177. }
    178. feld[feldvoll][5] = 2;
    179. }
    180. if (x > 300 && x < 350) {
    181. for (feldvoll = 5; feld[feldvoll][6] != 0; feldvoll--) {
    182. }
    183. feld[feldvoll][6] = 2;
    184. }
    185. player = 1;
    186. }
    187. if (gewonnen("1111")) {
    188. a = a + 1;
    189. JOptionPane.showMessageDialog(null, Spieler1
    190. + " hat gewonnen!");
    191. JOptionPane.showMessageDialog(null, Spieler2 + " ist dran!");
    192. }
    193. if (gewonnen("2222")) {
    194. b = b + 1;
    195. JOptionPane.showMessageDialog(null, Spieler2
    196. + " hat gewonnen!");
    197. JOptionPane.showMessageDialog(null, Spieler1 + " ist dran!");
    198. }
    199. }
    200. public void mouseReleased(MouseEvent arg0) {
    201. }
    202. public void mouseEntered(MouseEvent arg0) {
    203. }
    204. public void mouseExited(MouseEvent arg0) {
    205. }
    206. }
    Alles anzeigen