mrniceguy

BrainDrain a game

Sep 25th, 2013
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.13 KB | None | 0 0
  1. /*
  2. * To change this template, choose Tools | Templates
  3. * and open the template in the editor.
  4. */
  5. package braindrain;
  6.  
  7. import java.awt.BorderLayout;
  8. import java.awt.GridLayout;
  9. import java.awt.Window;
  10. import java.awt.event.ActionEvent;
  11. import java.awt.event.ActionListener;
  12. import java.util.Scanner;
  13. import javax.swing.ImageIcon;
  14. import javax.swing.JButton;
  15. import javax.swing.JFrame;
  16. import javax.swing.JLabel;
  17. import javax.swing.JMenu;
  18. import javax.swing.JMenuBar;
  19. import javax.swing.JMenuItem;
  20. import javax.swing.JOptionPane;
  21. import javax.swing.JPanel;
  22.  
  23.  
  24. /**
  25. *
  26. * @author mrniceguy
  27. */
  28. public class brain extends JFrame implements ActionListener{
  29. JFrame playerFrame = new JFrame();
  30. //MenuBar
  31. JMenuBar menuBar = new JMenuBar();
  32. JMenu datei = new JMenu("Datei");
  33. JMenu lösungsEingabe = new JMenu("Lösungs Auswahl");
  34. JMenu beenden = new JMenu("Beenden");
  35. JMenuItem neuesSpiel = new JMenuItem("Neues Spiel");
  36. JMenuItem spielBeenden = new JMenuItem("Spiel Beenden");
  37. JMenuItem computerEinfarbig = new JMenuItem("Computer Generiert Einfarbig");
  38. JMenuItem computerMehrFarbig = new JMenuItem("Computer Generiert MehrFarbig");
  39. JMenuItem spieler = new JMenuItem("Spieler eingabe");
  40.  
  41. JMenuBar menuBar1 = new JMenuBar();
  42. JMenu hilfe = new JMenu("Hilfe");
  43. JMenuItem hier = new JMenu("Wie geht das?");
  44. //Buttons
  45. static JButton buttons[][] = new JButton[12][5];
  46. JButton playerButtons[] = new JButton[8];
  47. JButton ok = new JButton("OK");
  48. //JLabel
  49. JLabel label[] = new JLabel[12];
  50. JLabel errorDisplay = new JLabel("Error Meldungen");
  51. //Images
  52. ImageIcon icon[] = new ImageIcon[8];
  53. //Scanner
  54. Scanner sc = new Scanner(System.in);
  55. //Strings fuer die Pfade der Bilder (35x35)
  56. String liste[] = {"/Users/mrniceguy/Pictures/Braun.png", "/Users/mrniceguy/Pictures/Schwarz.png", "/Users/mrniceguy/Pictures/Rot.png", "/Users/mrniceguy/Pictures/Gelb.png", "/Users/mrniceguy/Pictures/Gruen.png", "/Users/mrniceguy/Pictures/Lila.png", "/Users/mrniceguy/Pictures/Orange.png", "/Users/mrniceguy/Pictures/blau.jpg"};
  57. //String liste2[] = {"Braun.png", "Schwarz.png", "Rot.png", "Gelb.png", "Gruen.png", "Lila.png", "Blau.png"};
  58.  
  59. //Integers
  60. int ergebnis[] = new int[5];
  61. int deselectCount = 0;
  62. int rundenCount = 11;
  63. int arrayIndex = 0;
  64. int deselected[] = new int[5];
  65.  
  66. public static void main(String[] argv){
  67. new brain();
  68. }
  69.  
  70. public brain(){
  71. //SetMainFrame
  72. super("BrainDrain");
  73. setSize(500,800);
  74. setVisible(true);
  75. setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  76. //Set playerFrame
  77. playerFrame.setTitle("Tool");
  78. playerFrame.setSize(275,800);
  79. playerFrame.setVisible(true);
  80. playerFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  81. playerFrame.setLocation(500, 0);
  82. //ActionListener For OK Button and JMenu
  83. ok.addActionListener(this);
  84. neuesSpiel.addActionListener(this);
  85. spielBeenden.addActionListener(this);
  86. spieler.addActionListener(this);
  87. computerEinfarbig.addActionListener(this);
  88. computerMehrFarbig.addActionListener(this);
  89. datei.add(neuesSpiel);
  90. lösungsEingabe.add(computerEinfarbig);
  91. lösungsEingabe.add(computerMehrFarbig);
  92. lösungsEingabe.add(spieler);
  93. beenden.add(spielBeenden);
  94. menuBar.add(datei);
  95. menuBar.add(lösungsEingabe);
  96. menuBar.add(beenden);
  97.  
  98. hilfe.add(hier);
  99. menuBar1.add(hilfe);
  100.  
  101. playerFrame.add(ok, BorderLayout.SOUTH);
  102. //Add Panels
  103. super.getContentPane().add(menuBar, BorderLayout.NORTH);
  104. super.getContentPane().add(createButtonsPanel());
  105. super.getContentPane().add(errorDisplay, BorderLayout.SOUTH);
  106. playerFrame.getContentPane().add(createPlayerButtonsPanel(), BorderLayout.EAST);
  107. playerFrame.getContentPane().add(createDisplayPanel(), BorderLayout.CENTER);
  108. playerFrame.getContentPane().add(menuBar1, BorderLayout.NORTH);
  109.  
  110. //Set Icons on toggleButtons
  111. setIcon();
  112. setPlayerButtons();
  113. setErgebnisComputerEinfarbig();
  114. validate();
  115. }
  116. //Create Panel for Buttons
  117. private JPanel createButtonsPanel(){
  118. JPanel buttonsPanel = new JPanel(new GridLayout(12,5));
  119.  
  120. for(int i = 0; i < 12; i++){
  121. for(int j = 0; j < 5; j++){
  122. buttons[i][j] = new JButton();
  123. buttons[i][j].addActionListener(new ActionListener() {
  124. @Override
  125. public void actionPerformed(ActionEvent e) {
  126. for(int i = 0; i < 12; i++){
  127. for(int j = 0; j < 5; j++){
  128. if(e.getSource() == buttons[i][j]){
  129. if(buttons[rundenCount][j].getIcon() != null){//Falls Jemand ein leeren Button Anklickt
  130. buttons[rundenCount][j].setIcon(null);
  131. arrayIndex--;
  132. deselectCount++;
  133. deselected[deselectCount] = j;
  134. }
  135. }
  136. }
  137. }
  138. }
  139. });
  140. buttonsPanel.add(buttons[i][j]);
  141. //buttons[i][j].setEnabled(false); //Pictures are Displayed Gry if disabled
  142. }
  143. }
  144. return buttonsPanel;
  145. }
  146. //Create Panel for ToggleButtons
  147. private JPanel createPlayerButtonsPanel(){
  148. JPanel playerButtonsPanel = new JPanel(new GridLayout(8,1));
  149. for(int i = 0; i < playerButtons.length; i++){
  150. playerButtons[i] = new JButton();
  151. playerButtonsPanel.add(playerButtons[i]);
  152.  
  153. }
  154. return playerButtonsPanel;
  155. }
  156. //Create Panel for Displays
  157. private JPanel createDisplayPanel(){
  158. JPanel displayPanel = new JPanel(new GridLayout(12,1));
  159. for(int i = 0; i < label.length; i++){
  160. label[i] = new JLabel("Ergebnis"+(i+1));
  161. displayPanel.add(label[i]);
  162. }
  163.  
  164. return displayPanel;
  165. }
  166. //Set ToggleButton Icons
  167. private void setPlayerButtons(){
  168. for(int i = 0; i < playerButtons.length; i++){
  169. playerButtons[i].setIcon(icon[i]);
  170. playerButtons[i].addActionListener(new ActionListener(){
  171. @Override
  172. public void actionPerformed(ActionEvent e){
  173. for(int i = 0; i < playerButtons.length; i++){
  174. if(e.getSource() == playerButtons[i]){
  175. if(arrayIndex < 5){//Wenn weniger als 5 farben ausgewählt wurden
  176. if(deselectCount == 0){//Wenn vorher keine Farbe wieder gelöscht wurde
  177. errorDisplay.setText(rundenCount+"<- rC aI ->"+arrayIndex);
  178. buttons[rundenCount][arrayIndex].setIcon(icon[i]);
  179. arrayIndex++;
  180. } else {//Falls eine Farbe vorher gelöscht wurde
  181. buttons[rundenCount][deselected[deselectCount]].setIcon(icon[i]);
  182. deselectCount--;
  183. arrayIndex++;
  184. }
  185. } else {//Wenn mehr als 5 Farben ausgewählt wurden
  186. errorDisplay.setText("Schon 5 Ausgewählt, wenn fertig OK button drücken");
  187. }
  188. }
  189. }
  190. }
  191. });
  192. }
  193. }
  194. //Set String ergebnis with Random Path out of Liste (no dubletten)
  195. private void setErgebnisComputerEinfarbig(){
  196. System.out.println("Computer Einfarbig");
  197. boolean wert[] = new boolean[8];
  198. for(int i = 0; i < ergebnis.length; i++){
  199. int rnd = (int) (Math.random() * 8);
  200. if(!wert[rnd]){
  201. ergebnis[i] = rnd;
  202. wert[rnd] = true;
  203. System.out.println((i+1)+". Farbe: "+liste[rnd]);
  204. } else {
  205. i--;
  206. }
  207. }
  208. }
  209. //Set String ergebnis with Random Path out of Liste (bubletten possible)
  210. private void setErgebnisComputerMehrFarbig(){
  211. System.out.println("Computer Mehrfarbig");
  212. for(int i = 0; i < ergebnis.length; i++){
  213. int rnd = (int) (Math.random() * 8);
  214. ergebnis[i] = rnd;
  215. System.out.println((i+1)+". Farbe: "+liste[rnd]);
  216. }
  217. }
  218. //Set string via user
  219. public void setErgebnisSpieler(){
  220. System.out.println("SpielerEingabe(5 Zahlen (1-8):");
  221. int eingabe;
  222. for(int i = 0; i < 5; i++){
  223. eingabe = sc.nextInt();
  224. if(eingabe > 0 && eingabe < 9){
  225. ergebnis[i] = eingabe-1;
  226. System.out.println((i+1)+". Farbe: "+liste[eingabe-1]);
  227. } else {
  228. errorDisplay.setText("Zahl zwischen 1-8");
  229. i--;
  230. }
  231. }
  232. }
  233. //Icons array fuellen
  234. private void setIcon(){
  235. for(int i = 0; i < icon.length; i++){
  236. icon[i] = new ImageIcon(liste[i]);
  237. }
  238. }
  239. //Eingabe Ueberpruefen
  240. public void pruefen(){
  241. int count = 0;
  242. for(int i = 0; i < 5; i++){
  243. for(int j = 0; j < 5; j++){
  244. if(buttons[rundenCount][i].getIcon().equals(icon[ergebnis[j]])){
  245. count++;
  246. }
  247. }
  248. }
  249.  
  250. int count1 = 0;
  251. for(int i = 0; i < 5; i++){
  252. if(buttons[rundenCount][i].getIcon().equals(icon[ergebnis[i]])){
  253. count1++;
  254. }
  255.  
  256. }
  257. if(count1 == 5){
  258. label[rundenCount].setText("Alles Richtig");
  259. JOptionPane.showMessageDialog(null, "Geschafft");
  260. } else if(count == 5){
  261. label[rundenCount].setText("Farben: Alle / Farbe und Position:"+count1);
  262. } else{
  263. label[rundenCount].setText("Farben:"+count+"/ Farbe und Position:"+count1);
  264. }
  265. //return false;
  266. }
  267.  
  268. /*public void actionPerfomedButtons(ActionEvent e){
  269.  
  270. }*/
  271.  
  272. @Override
  273. public void actionPerformed(ActionEvent e) {
  274. if(e.getSource() == neuesSpiel){//Neues Spiel erstellen
  275. for(int i = 0; i < 12; i++){
  276. for(int j = 0; j < 5; j++){
  277. buttons[i][j].setIcon(null);
  278.  
  279. }
  280. label[i].setText("ergebnis"+(i+1));
  281. }
  282. for(;0 <= deselectCount; deselectCount--){
  283. //System.out.println(deselected[deselectCount]+"<-- Deslected Count ->>"+deselectCount);
  284. deselected[deselectCount] = 0;
  285. }
  286. arrayIndex = 0;
  287. rundenCount = 11;
  288. deselectCount = 0;
  289. setErgebnisComputerEinfarbig();
  290.  
  291.  
  292. } else if(e.getSource() == spielBeenden){//Beenden des Spiels
  293. System.exit(0);
  294. } else if(e.getSource() == spieler){//eingabe des Ergebnis
  295. setErgebnisSpieler();
  296. } else if(e.getSource() == computerEinfarbig){//cimputer generiertes ergebnis
  297. setErgebnisComputerEinfarbig();
  298. } else if(e.getSource() == computerMehrFarbig){//Computer generiertes ergebnis
  299. setErgebnisComputerMehrFarbig();
  300. } else if(e.getSource() == ok){//Druecken des Button ok (bestaetigung der Reihe
  301. if(arrayIndex == 5){
  302. pruefen();
  303. rundenCount--;
  304. arrayIndex = 0;
  305. } else {//Falls keine 5 farben ausgewählt wurden
  306. errorDisplay.setText("da fehlt noch was!");
  307. }
  308. }
  309. //Event PlayerButtons (Auswahl der Farben)
  310.  
  311. //Event fuer Buttons (loeschen der Icons)
  312.  
  313.  
  314. }
  315. }
Advertisement
Add Comment
Please, Sign In to add comment