Voor school moet ik een zelf verzonnen console game-pje maken en ik heb dit dus bedacht.(zie code en compile eventueel als je wilt)
Echter er is iets mis...
De Bij bevindt zich altijd in vakje 3,3, maar als ik 3,3 als coordinaten invoer dan verandert het vakje
gewoon in een 1, terwijl dit een 8 moet worden...ik dacht dat ik dit toch duidelijk in de functie kenbaar heb gemaakt.
En dan een 2e probleem.
Namelijk, vakje 3,4 is altijd 15!
En als ik dan als coordinaten 3,4 invoer dan crashed de game.
Waarom is vakje 3,4 altijd 15? Ik heb cArray[3][4] toch op 0 gezet?
Omdat dit ook vakje nr15 is lijkt het wel alsof de variabele i in de 15e for-loop in vakje 3,4 verschijnt.
En i is op het moment dat vakje 3,4 wordt ge-cout precies 15.
Maar waarom?
Hoe kan ik deze 2 problemen oplossen?
ps: De game is nog niet af, immers de Bij zit altijd in 3,3...maar dit wil ik later bepaald laten worden door rand().
Maar zoals het nu opgezet is het vo0r testdoeleinden, om die bugs eruit te krijgen.
Echter er is iets mis...
De Bij bevindt zich altijd in vakje 3,3, maar als ik 3,3 als coordinaten invoer dan verandert het vakje
gewoon in een 1, terwijl dit een 8 moet worden...ik dacht dat ik dit toch duidelijk in de functie kenbaar heb gemaakt.
En dan een 2e probleem.
Namelijk, vakje 3,4 is altijd 15!
En als ik dan als coordinaten 3,4 invoer dan crashed de game.
Waarom is vakje 3,4 altijd 15? Ik heb cArray[3][4] toch op 0 gezet?
Omdat dit ook vakje nr15 is lijkt het wel alsof de variabele i in de 15e for-loop in vakje 3,4 verschijnt.
En i is op het moment dat vakje 3,4 wordt ge-cout precies 15.
Maar waarom?
Hoe kan ik deze 2 problemen oplossen?
code:
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
| #include <iostream>
using namespace std;
void tekenHetHoninggraatVeld(int xBij, int yBij, int cInvoerX, int cInvoerY);
main()
{
cout << "Het BijenSpel" << endl;
cout << " ,-. " << endl;
cout << " `_/ " << endl;
cout << " >{|||} " << "Vind de Bij in zijn honinggraat!" << endl;
cout << " / ` " << endl;
cout << " `-^ " << endl << endl << endl;
cout << "Typ de x en y coordinaten in van een vakje in de honinggraat om het te openen." << endl;
cout << "Men begint met 15 punten." << endl;
cout << "Voor elk vakje dat men opent waar de Bij zich niet bevindt gaat er 1 punt af." << endl;
cout << "De bedoeling is om een zo hoog mogelijke score over te houden." << endl;
cout << "Een 0 is een ongeopend vakje, een 1 is een geopend vakje zonder Bij." << endl;
cout << "En een 8-vakje is een vakje met de Bij erin...deze moet je dus vinden!" << endl;
cout << "Kies je vakjes dus tactisch!" << endl << endl;
int xCoorBij = 3;
int yCoorBij = 3;
int gebruikersInvoerX;
int gebruikersInvoerY;
cout << "Typ een X-Coordinaat in, kies uit 1 t/m 4: ";
cin >> gebruikersInvoerX;
cout << endl << "Typ een Y-Coordinaat in, kies uit 1 t/m 4: ";
cin >> gebruikersInvoerY;
cout << " 1 2 3 4" << endl; //print de horizontale x-coordinaten boven de grid
tekenHetHoninggraatVeld(xCoorBij, yCoorBij, gebruikersInvoerX, gebruikersInvoerY);
}
void tekenHetHoninggraatVeld(int xBij, int yBij, int cInvoerX, int cInvoerY) //Deze functie tekent het honingsgraatveld en gebruikt de invoer van de gebruiker om een geopend vakje te tonen
{
int cArray[4][4]={0};
int x = 1;
int y = 1;
cArray[1][1] = 0; cArray[2][1] = 0; cArray[3][1] = 0; cArray[4][1] = 0;
cArray[1][2] = 0; cArray[2][2] = 0; cArray[3][2] = 0; cArray[4][2] = 0;
cArray[1][3] = 0; cArray[2][3] = 0; cArray[3][3] = 0; cArray[4][3] = 0;
cArray[1][4] = 0; cArray[2][4] = 0; cArray[3][4] = 0; cArray[4][4] = 0;
for(int i = 1; i <= 16; i++)
{
if(x==1 && y==1)
cout << "1 ";
if(x==1 && y==2)
cout << "2 ";
if(x==1 && y==3)
cout << "3 ";
if(x==1 && y==4)
cout << "4 ";
//cArray[x][y] = 0;
if((xBij == cInvoerX) && (yBij == cInvoerY))
{
cArray[xBij][yBij] = 8;
cout << endl << "Je hebt de bij gevonden!" << endl;
cout << "Je hebt " << (15 - i) << "punten over." << endl << endl;
}
else
{
cArray[cInvoerX][cInvoerY] = 1;
}
cout << "|" << cArray[x][y] << "|";
if(x==4 && y<5)
{
cout << endl;
y++;
}
x++;
if(x==5 && y<5)
{
x = 1;
}
}
} |
ps: De game is nog niet af, immers de Bij zit altijd in 3,3...maar dit wil ik later bepaald laten worden door rand().
Maar zoals het nu opgezet is het vo0r testdoeleinden, om die bugs eruit te krijgen.
[ Voor 41% gewijzigd door Arcane Apex op 25-01-2005 00:54 ]