CSC112 Spring 2016 Examples
// A little test for the peg class1// Revision: $Revision: 1.1 $2// Change Log3// $Log: pegtest.cpp,v $4// Revision 1.1 2016/03/17 15:55:14 pngwen5// Initial revision6//78#include <iostream>9#include <vector>10#include "peg.h"11#include "termmanip.h"12#include "keystream.h"1314using namespace std;1516int main()17{18vector<Peg *> pegs;19keycode kc;20int selectedIndex=0;2122//set up the pegs23pegs.push_back(new Peg(2,3));24pegs.push_back(new Peg(7,3));25pegs.push_back(new Peg(12,3));26pegs[selectedIndex]->select();2728//set up the input29kin.rawMode();30cout << clearScreen << cursorOff;3132//display the pegs33for(auto itr = pegs.begin(); itr != pegs.end(); itr++) {34(*itr)->display();35}3637//process the keyboard38do {39kc = kin.getKey();40switch(kc) {41case RIGHT:42pegs[selectedIndex]->deselect();43selectedIndex = (selectedIndex + 1) % pegs.size();44pegs[selectedIndex]->select();45break;4647case LEFT:48pegs[selectedIndex]->deselect();49selectedIndex = selectedIndex ? selectedIndex-1 : pegs.size()-1;50pegs[selectedIndex]->select();51break;5253case ENTER:54if(pegs[selectedIndex]->isOccupied()) {55pegs[selectedIndex]->take();56} else {57pegs[selectedIndex]->place();58}59break;6061case ESC:62kc = CTRL_C;63break;64}65} while(kc != CTRL_C);666768cout << clearScreen << cursorOn << cursorPosition(1,1);69cout.flush();7071return 0;72}737475