mardi 19 mai 2015

Senso bzw SimonSays programmieren

Hallo,

Ich versuche momentan das Spiel SimonSays mit meinem derzeitigen Kenntnisstand in Java zu programmieren.
Wer nicht weiss was das für ein Spiel ist hier der Link:

Senso (Spiel) – Wikipedia

Leider habe ich viele Fragen...

Zum einen gibt es viele Fehlermeldungen deren Ursprung ich nicht verstehe. Diese habe ich im Code "auskommentiert".

Das Grundkonzept ist soweit auch noch nicht ganz vorhanden. Einerseits weil ich die Fehlermeldungen noch nicht gelöst habe, andererseits weil ich nicht wirklich weiss wie ich weiter machen soll.

Ich habe einen Array erzeugt indem die Reihenfolge der Labels gespeichert wird, die nacheinander aufblinken.

Ich weiss aber nicht wie man überprüfen kann, ob vom Nutzer der Button geklickt wurde (also der Button der zum jeweiligen Label gehört), der auch an x-ter Stelle auf dem Bildschirm aufblinkte.

Hier erstmal der Code:

Java Code:

  1.  
  2. <font color="#000000">package senso;
  3.  
  4.  
  5. import java.awt.*;
  6. import java.awt.event.*;
  7. import javax.swing.*;
  8. import javax.swing.border.*;
  9. import javax.swing.event.*;
  10. import <u>java.lang</u>.*;
  11.  
  12.  
  13.  
  14.  
  15. publicclass<u>senso</u>extends JFrame
  16. {
  17. private JLabel label1;
  18. private JLabel label2;
  19. private JLabel label3;
  20. private JLabel label4;
  21. private JLabel sensol;
  22. private JButton b1;
  23. private JButton b2;
  24. private JButton b3;
  25. private JButton b4;
  26. private JButton start_stop;
  27.  
  28.  
  29.  
  30. public senso (String title)
  31. {
  32. super(title);
  33. setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  34. c = getContentPane();
  35. c.setLayout(new FlowLayout());
  36. c.setBackground(Color.GRAY);
  37.  
  38. int frameWidth = 450;
  39. int frameHeight = 610;
  40. setSize(frameWidth, frameHeight);
  41. Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
  42. int x = (d.width - getSize().width) / 2;
  43. int y = (d.height - getSize().height) / 2;
  44. setLocation(x, y);
  45.  
  46. label1 = new JLabel("ROT");
  47. Dimension d2 = new Dimension(200,200);
  48. label1.setPreferredSize(d2);
  49. label1.setOpaque(true);
  50. label1.setFont(new Font("Helvetica",Font.BOLD,28));
  51. label1.setForeground(Color.WHITE);
  52. label1.setBackground(Color.RED);
  53. c.add(label1);
  54.  
  55. label2 = new JLabel("BLAU");
  56.  
  57. label2.setPreferredSize(d2);
  58. label2.setOpaque(true);
  59. label2.setFont(new Font("Helvetica",Font.BOLD,28));
  60. label2.setForeground(Color.WHITE);
  61. label2.setBackground(Color.BLUE);
  62. c.add(label2);
  63.  
  64. label3 = new JLabel("GRÜN");
  65.  
  66. label3.setPreferredSize(d2);
  67. label3.setOpaque(true);
  68. label3.setFont(new Font("Helvetica",Font.BOLD,28));
  69. label3.setForeground(Color.WHITE);
  70. label3.setBackground(Color.GREEN);
  71. c.add(label3);
  72.  
  73. label4 = new JLabel("GELB");
  74.  
  75. label4.setPreferredSize(d2);
  76. label4.setOpaque(true);
  77. label4.setFont(new Font("Helvetica",Font.BOLD,28));
  78. label4.setForeground(Color.WHITE);
  79. label4.setBackground(Color.YELLOW);
  80. c.add(label4);
  81.  
  82. sensol = new JLabel ("SENSO");
  83. Dimension d6 = new Dimension(400,40);
  84. sensol.setPreferredSize(d6);
  85. sensol.setOpaque(true);
  86. sensol.setFont(new Font("Helvetica",Font.BOLD,28));
  87. sensol.setHorizontalAlignment(SwingConstants.CENTER);
  88. sensol.setForeground(Color.WHITE);
  89. sensol.setBackground(Color.GRAY);
  90. c.add(sensol);
  91.  
  92. knopflistener kl = new knopflistener();
  93. knopflistener2 kl2 = new knopflistener2();
  94. knopflistener3 kl3 = new knopflistener3();
  95. knopflistener4 kl4 = new knopflistener4();
  96.  
  97. b1 = new JButton("Change colour 1");
  98. b1.addActionListener(kl);
  99.  
  100. b2 = new JButton("Change colour 2");
  101. b2.addActionListener(kl2);
  102.  
  103. b3 = new JButton("Change colour 3");
  104. b3.addActionListener(kl3);
  105.  
  106. b4 = new JButton("Change colour 4");
  107. b4.addActionListener(kl4);
  108.  
  109. knopflistener5 kl_start_stop = new knopflistener5();
  110.  
  111. start_stop = new JButton("Start/Stop");
  112. start_stop.addActionListener(kl_start_stop);
  113.  
  114. c.add(b1);
  115. c.add(b2);
  116. c.add(b3);
  117. c.add(b4);
  118. c.add(sensol);
  119. c.add(start_stop);
  120.  
  121. setResizable(false);
  122. setVisible(true);
  123. }
  124.  
  125.  
  126.  
  127.  
  128. class knopflistener implements ActionListener
  129. {
  130. booleaneins = false;
  131. public void actionPerformed(ActionEvent e)
  132. {
  133.  
  134. if (eins == false) {
  135. label1.setBackground(Color.BLACK);
  136. eins = true;
  137. } // end of if
  138. else {
  139. label1.setBackground(Color.RED);
  140. eins = false;
  141. } // end of if
  142. }
  143. }
  144. class knopflistener2 implements ActionListener
  145. {
  146. booleanzwei = false;
  147. public void actionPerformed(ActionEvent e)
  148.  
  149. {
  150.  
  151. if (zwei == false) {
  152. label2.setBackground(Color.BLACK);
  153. zwei = true;
  154. } // end of if
  155. else {
  156. label2.setBackground(Color.BLUE);
  157. zwei = false;
  158. } // end of if
  159. }
  160. }
  161. class knopflistener3 implements ActionListener
  162. {
  163. booleandrei = false;
  164. public void actionPerformed(ActionEvent e)
  165. {
  166.  
  167. if (drei == false) {
  168. label3.setBackground(Color.BLACK);
  169. drei = true;
  170. } // end of if
  171. else {
  172. label3.setBackground(Color.GREEN);
  173. drei = false;
  174. } // end of if
  175. }
  176. }
  177. class knopflistener4 implements ActionListener
  178. {
  179. booleanvier = false;
  180. public void actionPerformed(ActionEvent e)
  181. {
  182.  
  183. if (vier == false) {
  184. label4.setBackground(Color.BLACK);
  185. vier = true;
  186. } // end of if
  187. else {
  188. label4.setBackground(Color.YELLOW);
  189. vier = false;
  190. } // end of if
  191.  
  192. }
  193. }
  194. class knopflistener5 implements ActionListener
  195. {
  196. boolean ss = false;
  197.  
  198. public void actionPerformed(ActionEvent e)
  199. {
  200. if (ss == false) {
  201. ss = true;
  202. } // end of if
  203. else {
  204. ss = true;
  205. } // end of if
  206.  
  207. }
  208. }
  209.  
  210.  
  211.  
  212.  
  213. booleancomputeramzug = true;
  214. booleanrichtig = true;
  215. int[] welchesfeld = newint[100]<u>;</u>// Syntax error on token ";", { expected after this token
  216.  
  217.  
  218.  
  219. for (int i = 0; i<100;i++)
  220. {
  221. welchesfeld[i]= (int) (Math.random()*4 +1);
  222. }
  223.  
  224. int runde = 0;
  225.  
  226.  
  227. do{ // <u>Hier</u> <u>blinken</u> die Labels <u>nacheinander</u> <u>auf</u>, die <u>der</u> <u>Nutzer</u> <u>dann</u> in
  228. // <u>richtiger</u> <u>Reihenfolge</u> <u>anklicken</u> <u>soll</u>
  229.  
  230. for (int a = 0; a <= runde; a++){
  231.  
  232. if (welchesfeld[a] == 1){
  233. label1.setBackground(Color.BLACK);
  234. Thread.sleep(1000);
  235. label1.setBackground(Color.RED);
  236. }
  237. else if (welchesfeld[a] == 2){
  238. label2.setBackground(Color.BLACK);
  239. Thread.sleep(1000);
  240. label2.setBackground(Color.BLUE);
  241. }
  242. else if (welchesfeld[a] == 3){
  243. label3.setBackground(Color.BLACK);
  244. Thread.sleep(1000);
  245. label3.setBackground(Color.GREEN);
  246. }
  247. else if (welchesfeld[a] == 4){
  248. label4.setBackground(Color.BLACK);
  249. Thread.sleep(1000);
  250. label4.setBackground(Color.YELLOW);
  251. }
  252.  
  253. }
  254.  
  255. }while (ss == true && richtig == true && computeramzug == true);
  256.  
  257.  
  258.  
  259.  
  260.  
  261. publicstaticvoid main<u>(</u>String[] args<u>)</u>//Multiple markers at this line
  262. //- Syntax error on token ")", ;
  263. // expected
  264. //- Syntax error on token "(", ;
  265. //expected
  266. {
  267. new senso("SENSO by Yannick");
  268. }
  269.  
  270.  
  271. <u>}</u>//Syntax error, insert "}" to complete ClassBody
  272. </font>


Danke im Voraus

PS: 1. Bin neu im Forum, sry wenn ich was falsch gemacht habe
2. Wer so ein Spiel schon einmal programmiert hat, kann mir auch gerne seinen Ansatz mitteilen!


Senso bzw SimonSays programmieren

0 commentaires:

Enregistrer un commentaire