Voor school zijn we bezig met een java applicatie. Mijn groep heeft gekozen voor Galgje, deze code hebben we gemaakt maar deze werkt nog niet zoals we willen. Nu pakt de applicatie steeds maar 1 woord en wij willen dat de applicatie random de woorden pakt.
Hij pakt nu steeds het onderste woord bij de rwoorden..
Heeft iemand informatie voor ons of een oplossing eventueel.
We hebben gekeken naar Math.random, maar deze werkt alleen met cijfers wij met woorden.
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
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
| import java.applet.Applet; import java.awt.*; import java.awt.event.*; public class Galgje2 extends Applet implements ActionListener{ static final int DOOD=13; // dodelijk aantal missers private int missers; // actueel aantal missers private String meldTekst; // melding fout of victorie private String toelichting; // toelichting bij melding private String rwoord; // het te raden woord private StringBuffer gwoord;// het geraden woord private Label lblGwoord; // label voor gwoord private Button bStart; // (her)start het spel! private Button bGo; // raad de letter! private TextField tfLetter; // vakje voor letter private Font fnt; // algemeen lettertype public void init(){ fnt = new Font( "Monospaced", 0, 12 ); // Maak een tekstvak voor de raadletter. tfLetter = new TextField(); // Maak buttons en labels. bStart = new Button("Herstart"); bGo = new Button("Go"); lblGwoord = new Label(); lblGwoord.setFont(fnt); // Voeg alle grafische elementen aan de applet toe. add(bStart); add(new Label("Raad een letter: ")); add(tfLetter); add(bGo); add(lblGwoord); // Meld de buttons aan als bronnen van events. bStart.addActionListener(this); bGo.addActionListener(this); // Start het eerste spel. initGame(); } public void initGame(){ missers=0; // missers=12; // Activeer voor testen rwoord = new String("applicatie"); rwoord = new String("netwerk"); rwoord = new String("computers"); char posities[] = new char[rwoord.length()]; for (int i=0; i<rwoord.length(); i++) { posities[i] = '.'; } String s = new String(posities); gwoord = new StringBuffer(s); tfLetter.setText(""); lblGwoord.setText(new String(gwoord)); // Wis de meldingen. meldTekst=""; toelichting = ""; repaint(); } public void paint(Graphics g) { // Teken het galgje. int baseY = 250; if (missers > 0){ // grond g.drawLine(90, baseY,200,baseY); } if (missers > 1){ // balk omhoog g.drawLine(125,baseY,125,baseY-100); } if (missers > 2){ g.drawLine(110,baseY,125,baseY-15); } if (missers > 3){ g.drawLine(140,baseY,125,baseY-15); } if (missers > 4){ // zijbalk g.drawLine(125,baseY-100,175,baseY-100); } if (missers > 5){ g.drawLine(125,baseY-85,140,baseY-100); } if (missers > 6){ // het touw g.drawLine(175,baseY-100,175,baseY-75); } if (missers > 7){ // uw lijk g.drawOval(170,baseY-75,10,12); } if (missers > 8){ g.drawOval(170,baseY-65,15,25); } if (missers > 9){ // armen g.drawLine(160,baseY-65,170,baseY-60); } if (missers > 10){ g.drawLine(183,baseY-60,193,baseY-65); } if (missers > 11){ // benen g.drawLine(165,baseY-30,170,baseY-45); } if (missers > 12){ g.drawLine(183,baseY-45,193,baseY-30); } // Toon de meldingen. g.drawString( meldTekst, 50, baseY+25 ); g.drawString( toelichting, 25, baseY+45 ); } public void actionPerformed(ActionEvent e){ if (e.getSource() == bStart){ initGame(); } if (e.getSource() == bGo){ verwerkBeurt(); // Wis het vakje met de letter. tfLetter.setText(""); repaint(); } } private void verwerkBeurt(){ String s, t; char a; s = tfLetter.getText(); a = s.charAt(0); if (!Character.isLetter(a)){ meldTekst="U mag alleen een letter invullen!"; return; } if (s.length()>1){ meldTekst="Maximaal 1 letter invullen."; return; } // Is letter al geraden? t = new String(gwoord); if (t.indexOf(s) != -1){ meldTekst="Deze letter is al een keer geraden."; return; } // Komt letter in rwoord niet voor? if (rwoord.indexOf(s) == -1){ meldTekst=""; missers++; if (missers==DOOD){ meldTekst="U bent dood!"; toelichting = "Klik op herstart voor een nieuwe kans"; } return; } // Vervang punten in gwoord door gevonden letter. for (int i=0; i<rwoord.length(); i++){ if (rwoord.charAt(i) == a){ gwoord.setCharAt(i, a); } } t = new String(gwoord); lblGwoord.setText(t); // Als alle punten ingevuld zijn // heeft de speler gewonnen. if (t.indexOf('.') == -1){ meldTekst="Gewonnen! Gefeliciteerd!"; return; } // Wis melding. meldTekst=""; } } |
Hij pakt nu steeds het onderste woord bij de rwoorden..
Heeft iemand informatie voor ons of een oplossing eventueel.
We hebben gekeken naar Math.random, maar deze werkt alleen met cijfers wij met woorden.
[ Voor 6% gewijzigd door endless op 28-10-2005 13:27 ]