Voor school moeten we het kaartspel '21-en' ontwerpen in Delphi. Na de ontwerpfase op tafel hebben al een aardig concept bedacht en gingen we aan de slag met coderen. Alleen jah, wij zijn niet echt programmeergoden
Misschien kunnen jullie ons verder helpen
:
Het spel bestaat uit 4x52 kaarten, vraag me niet waarom maar het staat zo in de opdrachtomschrijving. Wanneer het programma opgestart wordt ziet men eerst een beginscherm waar een naam ingevoerd kan worden. Vervolgens kan men op 'spelen' drukken en verschijnt er een nieuw venster waar het werkelijk spel gespeeld gaat worden. Hier duiken de problemen op.
Namelijk:
- De kaarten worden aangemaakt:
- De kaarten moeten dan geschud worden:
Hier worden dus alle 208 kaarten geschud en in een array geplaatst. Weet iemand hoe ik de array in Delphi kan bekijken zodat ik zeker weet dat bijvoorbeeld de kaart Harten 7 op plaats 3 van de array bevindt?
- En als dat gedaan is moeten de kaarten toegewezen worden aan de speler en de bank. En dan moet voor elke kaartwaarde ook nog de bijbehorende kaart op 'tafel' te voorschijn komen.
Kortom, nog een hoop te doen. Maar heeft iemand verder suggesties om het aan te pakken?!
Thx in advance
Misschien kunnen jullie ons verder helpen
Het spel bestaat uit 4x52 kaarten, vraag me niet waarom maar het staat zo in de opdrachtomschrijving. Wanneer het programma opgestart wordt ziet men eerst een beginscherm waar een naam ingevoerd kan worden. Vervolgens kan men op 'spelen' drukken en verschijnt er een nieuw venster waar het werkelijk spel gespeeld gaat worden. Hier duiken de problemen op.
Namelijk:
- De kaarten worden aangemaakt:
Delphi:
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
| procedure maakKaarten(var kaarten : kaartarray); var tkaart : string[5]; tletter : string[2]; tvalue : integer; tkaartsoort : string[8]; tkaartsoortchar : char; a,b,c : integer; begin c := 0; for a := 1 to 13 do begin case a of 1 : begin tkaart := 'Aas'; tletter := ' A'; tvalue := 1; end; 2 : begin tkaart := 'Twee'; tletter := ' 2'; tvalue := 2; end; 3 : begin tkaart := 'Drie'; tletter := ' 3'; tvalue := 3; end; 4 : begin tkaart := 'Vier'; tletter := ' 4'; tvalue := 4; end; 5 : begin tkaart := 'Vijf'; tletter := ' 5'; tvalue := 5; end; 6 : begin tkaart := 'Zes'; tletter := ' 6'; tvalue := 6; end; 7 : begin tkaart := 'Zeven'; tletter := ' 7'; tvalue := 7; end; 8 : begin tkaart := 'Acht'; tletter := ' 8'; tvalue := 8; end; 9 : begin tkaart := 'Negen'; tletter := ' 9'; tvalue := 9; end; 10 : begin tkaart := 'Tien'; tletter := '10'; tvalue := 10; end; 11 : begin tkaart := 'Boer'; tletter := ' J'; tvalue := 10; end; 12 : begin tkaart := 'Koningin'; tletter := ' Q'; tvalue := 10; end; 13 : begin tkaart := 'Koning'; tletter := ' K'; tvalue := 10; end; end; for b := 1 to 4 do begin case b of 1 : begin tkaartsoort := 'Schoppen'; tkaartsoortchar := chr(6); end; 2 : begin tkaartsoort := 'Ruiten'; tkaartsoortchar := chr(4); end; 3 : begin tkaartsoort := 'Klaveren'; tkaartsoortchar := chr(5); end; 4 : begin tkaartsoort := 'Harten'; tkaartsoortchar := chr(3); end; end; inc(c); kaarten[c].kaart := tkaart; kaarten[c].letter := tletter; kaarten[c].value := tvalue; kaarten[c].kaartsoort := tkaartsoort; kaarten[c].kaartsoortchar := tkaartsoortchar; end; end; end; |
- De kaarten moeten dan geschud worden:
Delphi:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| procedure switch(var a,b : kaart); var temp : kaart; begin temp := b; b := a; a:= temp; end; procedure schudden(var kaarten : kaartarray; var times : integer); var c, card1, card2 : integer; begin times := times + 1; for c := 1 to 208 do begin kaart1 := random(208) +1; kaart2 := random(208) +1; switch(kaarten[kaart1], kaarten[kaart2]); end; huidigKaart := 0; end; |
Hier worden dus alle 208 kaarten geschud en in een array geplaatst. Weet iemand hoe ik de array in Delphi kan bekijken zodat ik zeker weet dat bijvoorbeeld de kaart Harten 7 op plaats 3 van de array bevindt?
- En als dat gedaan is moeten de kaarten toegewezen worden aan de speler en de bank. En dan moet voor elke kaartwaarde ook nog de bijbehorende kaart op 'tafel' te voorschijn komen.
Kortom, nog een hoop te doen. Maar heeft iemand verder suggesties om het aan te pakken?!
Thx in advance
[ Voor 7% gewijzigd door curry684 op 15-09-2003 21:28 . Reden: [code]-tags zijn mooi he :) ]