I am making a Chutes & Ladders game and I cannot seem to get my void RollDiceAndMove() function to make a new position for my players. It's supposed to make a new position using rand(time) and then send that new position back to the while loop I have in int main().
Any help would be greatly appreciated! I am new to C++.
#include <iostream>
#include <string>
#include <cstdlib>
#include <cmath>
#include <ctime>
#include <cctype>
using namespace std;
void RollDiceAndMove(); //game rolls dice, and moves the player
void CheckChutes(); // game checks to see if player landed on chutes
void CheckLadders(); // game checks to see if player landed on ladders
void whoWon(); // game checks to see if anyone has won yet
void welcomeMessage(); // shows display message, and asks if they want to play
void goodbyeMessage(); // tells user goodbye after game
int RollDie;
int NewPos;
int NewPos1;
int main()
{
bool player1Turn = 0; //switches between player1 and player2's turns
string player1Name, player2Name; // gets names from both players
int choice = 'y'; // answer when asked if players want to play
int Player1Loc = 0, Player2Loc = 0; // location of the players
int Playerpos;
welcomeMessage();
cout << endl << endl;
cout << "Enter your names: " << endl << endl;
cout << "Player1: ";
cin >> player1Name;
cout << endl << endl;
cout << "Player2: ";
cin >> player2Name;
while(choice == 'y'){
while(Player1Loc != 100 && Player2Loc != 100){
if(player1Turn){
cout << endl << endl;
cout << player1Name << ": Its your turn." << endl << endl;
cout << "Press Enter to Start Turn: ";
cin.get();
cout << endl << endl;
RollDiceAndMove();
cout << "New Position Amount: " << NewPos1 << endl;
/* CheckChutes();
CheckLadders() */;
player1Turn = false;
}
else{
cout << endl << endl;
cout << player2Name << ": Its your turn." << endl << endl;
cout << "Press Enter to Start Turn: ";
cin.get();
cout << endl;
RollDiceAndMove();
cout << "New Position Amount: " << NewPos << endl;
// CheckChutes();
// CheckLadders();
player1Turn = true;
}
}
while (NewPos == 100) {
whoWon();
}
}
return 0;
}
void welcomeMessage()
{
int choice;
// shows welcome message, and asks if they want to play
// IN: choice
cout << "Welcome to the chutes and ladders game. Both " << endl;
cout << "players start at 0, and the first one to 100 " << endl;
cout << "wins the game. However, if you land on a chute," << endl;
cout << "your player will move down, but a ladder " << endl;
cout << "will move you up." << endl;
}
void goodbyeMessage()
{
// shows the goodbye message
cout << "Thanks for playing!" << endl;
}
void RollDiceAndMove ()
{
// rolls dice, and moves the player
switch(NewPos = 100)
{
for (int Player1pos = 0; Player1pos < 100; Player1pos++)
{
RollDie = rand() % 6 + 1;
Player1pos = 1;
NewPos1 = Player1pos + RollDie;
CheckChutes();
CheckLadders();
cout << "Your new location is: " << NewPos << endl;
break;
}
for (int Player2pos = 0; Player2pos < 100; Player2pos++)
{
RollDie = rand() % 6 + 1;
Player2pos = 1;
NewPos = Player2pos + RollDie;
CheckChutes();
CheckLadders();
cout << "Your new location is: " << NewPos << endl;
break;
}
}
}
void whoWon()
{
int NewPos;
// determines if user has won, when their location is at 100
RollDiceAndMove();
if (NewPos == 100){
cout << "You won!" << endl;
}
}
void CheckChutes ()
{
int NewPos;
//checks if chutes, if yes, then moves player backwards
if (NewPos == 98)
NewPos = 78;
else if (NewPos == 95)
NewPos = 75;
else if (NewPos == 93)
NewPos = 70;
else if (NewPos == 87)
NewPos = 24;
else if (NewPos == 64)
NewPos = 60;
else if (NewPos == 62)
NewPos = 19;
else if (NewPos == 56)
NewPos = 53;
else if (NewPos == 49)
NewPos = 11;
else if (NewPos == 48)
NewPos = 26;
else if (NewPos == 16)
NewPos = 6;
else
NewPos = NewPos;
cout << "You landed on chutes, and have to move down" << endl;
}
void CheckLadders ()
{
int NewPos;
// checks if ladders. if yes, moves player forwards
if (NewPos == 1)
NewPos = 38;
else if (NewPos == 4)
NewPos = 14;
else if (NewPos == 9)
NewPos = 21;
else if (NewPos == 23)
NewPos = 44;
else if (NewPos == 28)
NewPos = 84;
else if (NewPos == 36)
NewPos = 44;
else if (NewPos == 51)
NewPos = 66;
else if (NewPos == 71)
NewPos = 90;
else if (NewPos == 80)
NewPos = 100;
else
NewPos = NewPos;
cout << "You landed on ladders, and get to move up the board!" << endl;
}