source: liacs/pm/qt-nim/nim.cc@ 5

Last change on this file since 5 was 2, checked in by Rick van der Zwet, 15 years ago

Initial import of data of old repository ('data') worth keeping (e.g. tracking
means of URL access statistics)

  • Property svn:executable set to *
File size: 3.6 KB
RevLine 
[2]1#include "NimSpel.h"
2#include <ctime>
3#include <iostream>
4using namespace std;
5
6
7//Spelers Invoer, voor stapel en aantal
8void SpelerOpConsole(const int AantalStapels, int * Stapel, int * Aantal){
9 cout << "Speler aan de beurt" << endl;
10 cout << "Welke stapel [0-" << (AantalStapels - 1) << "] : ";
11 *Stapel = VoerInGetal(0, AantalStapels - 1);
12 cout << "Hoeveel [1-2] : ";
13 *Aantal = VoerInGetal(1, 2);
14} //end SpelerOpConsole
15
16
17
18//Invoeren van variablen voor soort spelkeuze
19void InvoerVariablen(int * AantalStapels, int * AantalStokjes, bool * WinnendeZet, bool * CompWinnend) {
20 cout << "Hoeveel stapels wilt u?" << endl
21 << "Aantal: "; *AantalStapels = VoerInGetal(1,MaxStapels);
22
23 cout << "Hoeveel stokjes wilt u?" << endl
24 << "Aantal: "; *AantalStokjes = VoerInGetal(1,MaxAantal);
25
26 cout << "Geef het niveau van de computer aan" << endl
27 << "0) Random " << endl
28 << "1) Winnend Spelen " << endl
29 << "Keuze: "; *CompWinnend = VoerInGetal(0,1);
30
31 cout << endl
32 << "Wilt u de winnende zetten zien?" << endl
33 << "0) Nee " << endl
34 << "1) Ja " << endl
35 << "Keuze: "; *WinnendeZet = VoerInGetal(0,1);
36} //end InvoerVariablen
37
38
39
40
41//spel spelen op console
42void SpeelSpelOpConsole( ){
43 //init variablen (een keer kiezen, niet meer veranderen)
44 NimSpel Spelletje; //Het spelletje
45 bool Winnend = false; //Winnende zetten laten zien
46 bool CompWinnend = false; //Computer winnend spelen
47 int AantalStapels = MaxStapels; //aantal stapels die de gebruiker wil
48 int AantalStokjes = MaxAantal; //aantal stokjes dat nodig is
49
50 //spel variablen
51 bool SpelerAanBeurt = false; //True=speler is aan de beurt
52 int Stapel = 0; //tijdelijke opslag StapelNummer
53 int Aantal = 0; //tijdelijke opslag Aantal
54 char wait; //om ENTER te kunnen realiseren
55
56 //variablen invoeren
57 InvoerVariablen(&AantalStapels, &AantalStokjes, &Winnend, &CompWinnend);
58 Spelletje.BeginWaarden(AantalStapels, AantalStokjes);
59 //spel beginnen
60
61 if (Winnend) { //winnende waarden laten zien
62 Spelletje.Winnend(&Stapel,&Aantal);
63 cout << "Winnende Zet: " << endl
64 << "Stapel: " << Stapel << endl
65 << "Aantal: " << Aantal << endl << endl;
66 } //end if
67
68 SpelerAanBeurt = not(SpelerAanBeurt); //speler wisselen
69 else { //computer aan de beurt
70 if (CompWinnend) { //winnend spelen
71 Spelletje.Winnend(&Stapel, &Aantal);
72 }
73 else { //random spelen
74 Spelletje.RandomZet(AantalStapels, &Stapel, &Aantal);
75 } //end if
76 cout << "Computer Keuze" << endl
77 << "Stapel: " << Stapel << endl
78 << "Aantal: " << Aantal << endl;
79 cout << "Druk op ENTER..."; //uitvoer computer tonen
80 cin.clear();
81 cin.ignore(10000,'\n');
82 cin.get(wait);
83 }
84 Spelletje.PakWeg(Stapel, Aantal); //zet verwerken
85 Spelletje.DrukAfConsole( ); //Score tonen
86
87 if (Spelletje.Afgelopen( )) { //spel afgelopen
88 if (SpelerAanBeurt) {
89 cout << "Voila uw heeft GEWONNEN" << endl;
90 }
91 else {
92 cout << "DE COMPUTER IS DE BESTE !!!" <<endl;
93 } //end if
94 break;
95 }
96 else if (not(SpelerAanBeurt)){ //keuze zetten terug
97 cout << endl << "De computer geeft gezet, ben u tevreden?" << endl
98 << "Maximaal terug te zetten beurten: " << (Spelletje.AantalZetten/2) << endl
99 << "'0' om gewoon door te gaan" << endl
100 << "Aantal beurten: ";
101 Spelletje.ZetTerug(VoerInGetal(0, (Spelletje.AantalZetten/2)));
102 } //end if
103 } //end while
104} //end SpeelSpelOpConsole
105
Note: See TracBrowser for help on using the repository browser.