ERLEDIGT
NEIN
NEIN
ANTWORTEN
5
5
ZUGRIFFE
5940
5940
EMPFEHLEN
-
huhu dud!
Also ich hab da mal n problem.... wir sollen uns in der schule ein Projekt überlegen was wir dann mit Java realisieren....
So dann kam mir die Idee ein memory Spiel zu proggen...
nun ist meine Frage ob jemand Anregung oder ähnliches für mich hat, da ich noch nich so fitt in java bin... und nich weiß woh ich anfangen soll.
Wäre n1ce! 'ka
ich glaube nur das was ich weiß oder gesehen habe!
-
Fang mit der Oberflache an.
Zuerst wie ereuge ich eine Fenster ?
Dann wie kann ich eine Grafik im Fenster anzeigen um eine Karte anzuzeigen? Wie kann ich eine Listner/Beobachter zur Grafik hinzufugen?
Dann kommt das umdrehnen der Karte also das erstetzten der einen Grafik durch die andere Grafik.
Fuer all das hat Java diverse Moglichkeiten, probier sie aus um festzustellen welche dir am besten liegt.
Dann solltest du fest stellen wie aufwendig das Spiel werden soll und einen Anforderungskatalog erstellen.
-
06.12.04 19:01 #3
- Registriert seit
- Oct 2004
- Ort
- Hessen
- Beiträge
- 310
Hi,
also ich würd mir erstmal überlegen wie ich das Spiel in verschiedene Komponenten zerlegen kann und die sauber auf ein Entwicklungskonzept projezieren.
z.B.: Könntest Du hier ein MVC-Konzept aufziehen:
Du betrachtest das Spiel:
Das Modell:
Die Abbildungen der Regeln, Verwalten des Zustandsmodelles, Datensätze verwalten, etc.
Der View:
Der Graphische Teil. Dieser wird von dem Modell über eine art Update Mechanismus aufgerufen. Jedesmal wenn sich etwas am Modell ändert, muss die Graphische Ansicht geändert werden (oder auch nicht, kommt auf die Änderung an).
Controller:
Er gibt Aktionen von aussen an das Modell weiter, welches daraufhin seinen Zustand ändert, etc.
Dies ist allerdings eine sehr kurze beschreibung.
Es sollte auch nur verdeutlichen, das man von anfang an ein Konzept erstellen sollte, anstatt blind drauf loszuschreiben. Erleichtert die Wartung für später und man hat jederzeit einen sauberen Überblick
Ich persönlich würde erstmal das regelwerk umsetzen in einem Modell, vorkommende Datentypen erarbeiten und die jeweilige Verwaltungslogik implementieren.
Danach würde ich die Graphische Oberfläche erzeugen, welche auch den Controller beinhalten würde (über ActionListener das Modell anstossen um einen neuen Zustand zu erreichen, etc.).
Dann tada, ist das Game fertig (naja, so einfach dann auch wieder nicht, aber wenigstens in der Theorie). Wenn du allerdings wenig bis gar nix mit Java, Swing, AWT, etc. gemacht hast, schau Dir erstmal die Tutorials auf der Java-Seite an, um einen Einstieg zu bekommen.
Grüsse
Torsten"There's nothing we have to fear, except Fear itself....."
-
07.12.04 00:57 #4
- Registriert seit
- Jun 2002
- Ort
- Saarbrücken (Saarland)
- Beiträge
- 9.886
- Blog-Einträge
- 29
Hallo!
Hier mal ein kleines Beispiel:
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180
package de.tutorials.memory2; import java.awt.Container; import java.awt.GridLayout; import java.awt.Image; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.Collections; import java.util.Iterator; import java.util.List; import javax.imageio.ImageIO; import javax.swing.BorderFactory; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; public class Main extends JFrame { private ImageIcon backIcon; private CardGame game; public Main() { super("Main"); setDefaultCloseOperation(EXIT_ON_CLOSE); Container c = getContentPane(); game = new CardGame(); backIcon = new ImageIcon(game.loadImage("e:/imgs/back.jpg")); game.init(); CardPanel cp = new CardPanel(); cp.populate(game.getCards()); c.add(cp); pack(); setVisible(true); } public static void main(String[] args) { new Main(); } class Card extends JLabel { private ImageIcon icon; protected int id; protected boolean stillInGame = true; public Card(ImageIcon icon, int id) { this.icon = icon; this.id = id; setIcon(backIcon); setBorder(BorderFactory.createEtchedBorder()); addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent evt) { game.selectCard(Card.this); game.checkCards(); } }); } public void showFront() { setIcon(this.icon); } public void showBack() { setIcon(backIcon); } } class CardPanel extends JPanel { final int MAX_ROWS = 4; final int MAX_COLUMNS = 4; public CardPanel() { setLayout(new GridLayout(MAX_ROWS, MAX_COLUMNS)); } public void populate(List list) { for (Iterator iter = list.iterator(); iter.hasNext();) { add((Card) iter.next()); } } } class CardGame { private List cards; private int selectionCount = 0; private Card current; private Card previous; public CardGame() { cards = new ArrayList(); } public void init() { cards.clear(); loadCards(); Collections.shuffle(cards); } public Image loadImage(String imgPath) { final int MAX_WIDTH = 60; final int MAX_HEIGHT = 120; try { Image img = ImageIO.read(new File(imgPath)).getScaledInstance( MAX_WIDTH, MAX_HEIGHT, BufferedImage.SCALE_SMOOTH); return img; } catch (IOException e) { e.printStackTrace(); } return null; } private void loadCards() { for (int i = 0; i < 8; i++) { ImageIcon icon = new ImageIcon(loadImage("e:/imgs/" + i + ".jpg")); Card c = new Card(icon, i); cards.add(c); c = new Card(icon, i); cards.add(c); } } public void selectCard(Card c) { if (current == c) return; if (!c.stillInGame) return; c.showFront(); if (selectionCount++ % 2 == 0) { if (current != null && previous != null) { current.showBack(); previous.showBack(); } current = null; previous = null; } previous = current; current = c; } public void checkCards() { if (current != null && previous != null) if (current.id == previous.id) { current.stillInGame = false; previous.stillInGame = false; current = null; previous = null; System.out.println("match"); } } public List getCards() { return cards; } } }
Gruß TomJava rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
-
07.12.04 09:30 #5
- Registriert seit
- Oct 2004
- Ort
- Hessen
- Beiträge
- 310
Tom, Tom,
hattest du mal wieder zuviel Zeit was?
"There's nothing we have to fear, except Fear itself....."
-
07.12.04 17:49 #6
- Registriert seit
- Jun 2002
- Ort
- Saarbrücken (Saarland)
- Beiträge
- 9.886
- Blog-Einträge
- 29
... hab gedacht, dass ich mal wieder eine kleine Fingerübung gebrauchen könnte...
Gruß TomJava rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
Ähnliche Themen
-
kleines Memory Spiel
Von Yuri-Li im Forum Java GrundlagenAntworten: 9Letzter Beitrag: 02.06.10, 23:43 -
Memory-Spiel
Von Manda im Forum Borland CBuilder und VCLAntworten: 18Letzter Beitrag: 21.11.06, 17:45 -
Memory-Spiel
Von andreas2000 im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 2Letzter Beitrag: 02.12.05, 19:45 -
HILFE bei Memory Spiel
Von tugi im Forum JavaAntworten: 5Letzter Beitrag: 12.07.04, 08:21 -
suche hilfe für memory spiel
Von toewee im Forum Delphi, Kylix, PascalAntworten: 6Letzter Beitrag: 03.06.04, 17:54





Zitieren

Login





