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
|
#include "stdafx.h"
#include "Handspel.h"
#include <string>
int _tmain(int argc, _TCHAR* argv[])
{
return 0;
}
int main()
{
int win_teller = 0, verlies_teller = 0, gelijk_teller = 0;
uitkomst resultaat;
p_k_s speler, machine;
srand(time(NULL));
druk_instructies();
while ((speler = speler_keuze()) !=einde)
switch(speler)
{
case papier:
case keisteen:
case schaar:
machine = machine_keuze();
resultaat = vergelijk(speler, machine);
if (resultaat == gewonnen)
{
++win_teller;
printf("Jij hebt gewonnen.\n");
}
else if (resultaat == verloren) {
++verlies_teller;
printf("Jij hebt verloren.\n");
}
else if (resultaat == gelijk) {
++gelijk_teller;
printf("Gelijkspel.\n");
}
break;
case spel:
spel_status(win_teller, verlies_teller, gelijk_teller);
break;
case instructies:
druk_instructies();
break;
case hulp:
speler_hulp();
break;
}
spel_status(win_teller, verlies_teller, gelijk_teller);
if (win_teller > verlies_teller)
printf("\nGEFELICITEERD! - Jij hebt gewonnen!\n\n");
void druk_instructies(void);
{
printf("\n%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s\n",
"HANDSPEL:\n",
" In dit spel staat p voor \"papier\", k voor \"keisteen\", en s voor \n",
" \"schaar\".Speler en machine doen een keuze uit p, k of s. \n",
" Kiezen beide hetzelfde, dan is er een gelijkspel. \n",
" Anders geldt: \n",
" \"het papier gaat over de keisteen heen\" (papier wint), \n",
" \"de keisteen slaat de schaar aan stukken\" (keisteen wint), \n",
" \"de schaar vernietigt het papier\" (schaar wint). \n\n",
" Men mag ook invoeren:\n",
" g voor spel status (aantal gewonnen partijen tot dusver), \n",
" h voor hulp,\n",
" i voor instructies (drukt deze instructies af,\n",
" e voor einde (einde van huidige ronde).\n",
" Dit spel gaat door totdat er een e wordt ingevoerd.\n",
" Veel success!\n");
}
p_k_s speler_keuze(void);
{
int c;
p_k_s speler;
printf("Voer een p, k of s in: ");
while ((c = getchar()) == ' ' || c == '\n' || c == '\t')
;
switch(c)
{
case 'p':
speler = papier;
break;
case 'k':
speler = keisteen;
break;
case 's':
speler = schaar;
break;
case 'g':
speler = spel;
break;
case 'i':
speler = instructies;
break;
case 'e':
speler = einde;
break;
default:
speler = hulp;
break;
}
return speler;
}
p_k_s machine_keuze();
{
return ((p_k_s) (rand() %3));
}
uitkomst vergelijk(p_k_s speler, p_k_s machine);
{
uitkomst resultaat;
if (speler == machine)
return gelijk;
switch(speler)
{
case papier:
resultaat = (machine == keisteen) ? gewonnen : verloren;
break;
case keisteen:
resultaat = (machine == schaar) ? gewonnen : verloren;
break;
case schaar:
resultaat = (machine == papier) ? gewonnen : verloren;
break;
}
}
return resultaat;
void spel_status(int win_teller, int verlies_teller, int gelijk_teller);
{
printf("\n%s\n%s%4d\n%s%4d\n%s%4d\n%s%4d\n\n",
"STAND VAN HET SPEL:",
" Gewonnen: ", win_teller,
" Verloren: ", verlies_teller,
" Gelijkspel: ", gelijk_teller,
" Totaal: ", win_teller + verlies_teller + gelijk_teller);
}
void speler_hulp(void);
{
printf("\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n\n",
"De volgende karakters mogen gebruikt worden:",
" p voor papier",
" k voor keisteen",
" s voor schaar",
" g voor gewonnen partijen, spel status",
" h voor het afdrukken van deze lijst, hulp",
" i voorhet afrdukken van de instructies, de spelregels",
" e voor voor het einde van het spel");
}
}
|