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

Last change on this file since 235 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.