This is the latest version of all my programs so far.

This commit is contained in:
Charles Descamps 2024-09-11 14:47:24 -07:00
parent 631aa69e32
commit 28e820292f
6 changed files with 299 additions and 8 deletions

View file

@ -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;
}