This is the latest version of all my programs so far.
This commit is contained in:
parent
631aa69e32
commit
28e820292f
6 changed files with 299 additions and 8 deletions
|
|
@ -23,10 +23,6 @@ Dependencies: ???
|
|||
#include <cstdlib>
|
||||
#include <iostream>
|
||||
#include <cstring>
|
||||
#include <list>
|
||||
#include <set>
|
||||
#include <unordered_map>
|
||||
#include <time.h>
|
||||
|
||||
using namespace std;
|
||||
|
||||
|
|
@ -37,6 +33,198 @@ using namespace std;
|
|||
// main program
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
/*
|
||||
Maze Layout:
|
||||
Y Y Y
|
||||
=============
|
||||
| S | | | X
|
||||
| B | | B | X
|
||||
| E | | | X
|
||||
=============
|
||||
*/
|
||||
|
||||
bool mazeStop = true;
|
||||
bool wrongWayFlag = false;
|
||||
int currentX = 0;
|
||||
int currentY = 0;
|
||||
int currentIteration = 0;
|
||||
// int endX = 0;
|
||||
// int endY = 2;
|
||||
// int blockerOneX = 0;
|
||||
// int blockerOneY = 1;
|
||||
// int blockerTwoX = 2;
|
||||
// int blockerTwoY = 1;
|
||||
char directionCharacter;
|
||||
|
||||
// welcome user to the maze game, explain rules, etc.
|
||||
cout << "Welcome to the maze game!" << endl;
|
||||
cout << "Find the end of the maze by entering in directions, such as N(North), E(East), S(South), W(West)." << endl;
|
||||
cout << "Start game!" << endl;
|
||||
cout << endl;
|
||||
while (mazeStop)
|
||||
{
|
||||
// if at the starting position, display starting message.
|
||||
if(currentX == 0 && currentY == 0)
|
||||
{
|
||||
// display starting message.
|
||||
cout << "You are at the start of the maze. The only opening is east." << endl;
|
||||
if(directionCharacter == 'e')
|
||||
{
|
||||
//
|
||||
currentX = 0;
|
||||
currentY = 1;
|
||||
wrongWayFlag = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
wrongWayFlag = true;
|
||||
}
|
||||
}
|
||||
if(currentX == 0 && currentY == 1)
|
||||
{
|
||||
//
|
||||
cout << "You have continued through the maze. There are openings to the east, west, and south." << endl;
|
||||
if(directionCharacter == 'e')
|
||||
{
|
||||
//
|
||||
currentX = 0;
|
||||
currentY = 0;
|
||||
wrongWayFlag = false;
|
||||
}
|
||||
if(directionCharacter == 'w')
|
||||
{
|
||||
//
|
||||
currentX = 0;
|
||||
currentY = 2;
|
||||
wrongWayFlag = false;
|
||||
}
|
||||
if(directionCharacter == 's')
|
||||
{
|
||||
//
|
||||
currentX = 1;
|
||||
currentY = 1;
|
||||
wrongWayFlag = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
wrongWayFlag = true;
|
||||
}
|
||||
}
|
||||
if(currentX == 0 && currentY == 2)
|
||||
{
|
||||
//
|
||||
cout << "You are continuing through the maze, however, the only opening is to the west." << endl;
|
||||
if(directionCharacter == 'w')
|
||||
{
|
||||
//
|
||||
currentX = 0;
|
||||
currentY = 1;
|
||||
wrongWayFlag = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
wrongWayFlag = true;
|
||||
}
|
||||
}
|
||||
if(currentX == 1 && currentY == 1)
|
||||
{
|
||||
//
|
||||
cout << "Continuing through the maze, the available directions are north and south." << endl;
|
||||
if(directionCharacter == 'n')
|
||||
{
|
||||
//
|
||||
currentX = 0;
|
||||
currentY = 1;
|
||||
wrongWayFlag = false;
|
||||
}
|
||||
if(directionCharacter == 's')
|
||||
{
|
||||
//
|
||||
currentX = 2;
|
||||
currentY = 1;
|
||||
wrongWayFlag = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
wrongWayFlag = true;
|
||||
}
|
||||
}
|
||||
if(currentX == 2 && currentY == 0)
|
||||
{
|
||||
//
|
||||
cout << "You have found the end! Congratulations!" << endl;
|
||||
cout << "Press X to exit." << endl;
|
||||
if(directionCharacter == 'x')
|
||||
{
|
||||
// set the ending flag to false.
|
||||
mazeStop = false;
|
||||
}
|
||||
}
|
||||
if(currentX == 2 && currentY == 1)
|
||||
{
|
||||
//
|
||||
cout << "Wandering along, the new directions open are north, east, and west." << endl;
|
||||
if(directionCharacter == 'n')
|
||||
{
|
||||
//
|
||||
currentX = 1;
|
||||
currentY = 1;
|
||||
wrongWayFlag = false;
|
||||
}
|
||||
if(directionCharacter == 'e')
|
||||
{
|
||||
//
|
||||
currentX = 2;
|
||||
currentY = 2;
|
||||
wrongWayFlag = false;
|
||||
}
|
||||
if(directionCharacter == 'w')
|
||||
{
|
||||
//
|
||||
currentX = 2;
|
||||
currentY = 0;
|
||||
wrongWayFlag = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
wrongWayFlag = true;
|
||||
}
|
||||
}
|
||||
if(currentX == 2 && currentY == 2)
|
||||
{
|
||||
//
|
||||
cout << "While continuing through the maze, you see the only opening is the west." << endl;
|
||||
if(directionCharacter == 'w')
|
||||
{
|
||||
//
|
||||
currentX = 2;
|
||||
currentY = 1;
|
||||
wrongWayFlag = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
wrongWayFlag = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if(currentIteration != 0 && wrongWayFlag)
|
||||
{
|
||||
// print direction out of bounds.
|
||||
cout << "You cannot move that way. Try again." << endl;
|
||||
}
|
||||
|
||||
}
|
||||
// ask user for a direction, check if in bounds
|
||||
cout << "Which direction would you like to go in?" << endl;
|
||||
cout << ">";
|
||||
cin.ignore();
|
||||
directionCharacter = getchar();
|
||||
currentIteration = currentIteration + 1;
|
||||
// if in bounds, move. (if not in bounds, warn them and start over.)
|
||||
}
|
||||
cout << "Thanks for playing!" << endl;
|
||||
|
||||
// return 0
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue