Условия игры в кости в Snake & Ladder Game на C ++ - PullRequest
0 голосов
/ 15 апреля 2020

Эта программа - игра Snake & Ladder.

Она отлично работает, под этим я подразумеваю логику c игры, но я просто хочу добавить некоторые условия на кости во время броска например, бросание костей должно быть случайным, а сгенерированное число будет от 1 до 6, и наиболее важной частью является то, что игра начнется только тогда, когда число 6 придет, иначе она будет бросать кости. logi c как игра Snake and Ladder.

1) Число должно быть от 1 до 6. -> DONE

2) Бросайте кости, пока не придет 6, а затем начните игру, иначе попросите повторить бросание костей.

3) А как бросать кости случайно, а не вручную? Истинная случайность. -> СДЕЛАНО

Код

#include<iostream>
#include<bits/stdc++.h>
//// libraries for random number generation
//// rand() and srand() function help us to generate random number
#include<cstdlib>
////time library are used for time() function
#include<time.h>

using namespace std;

class Board{

     int positionsnake[4] = {62,17,87,98};
     int positionsnakefinal[4] = {18,7,36,79};
     int positionladder[4] = {1,28,51,72};
     int positionladderfinal[4] = {38,84,67,91};

    unordered_map<int,int> snake;
    unordered_map<int,int> ladder;

    int position;

    public:

    Board(){

        position = 0;

        for (int i =0; i<4; i++)
        {
            snake[positionsnake[i]]=positionsnakefinal[i];

        }

        for (int j =0; j<4; j++)
        {
            ladder[positionladder[j]]=positionladderfinal[j];

        }
    }


    int checkSnake_and_Ladder(int pos){

        if(snake.find(pos)!=snake.end())
        return snake.find(pos)->second;
        if(ladder.find(pos)!=ladder.end())
        return ladder.find(pos)->second;

        return 0;
    }

    int updatePosition(int number){

        if((position + number) > 100 )
        return position;

        position = position + number;

        // Check Snake and ladder

         int temp = checkSnake_and_Ladder(position);
         if(temp!=0)
          {
            position = temp;
          }

        return position;
    }


};

int randomNumber(){
   int val;
   val = rand() % 6 + 1;
}

int main(){
    Board newBoard;
    srand(time(NULL));

    if(randomNumber() == 6){

    int getinput, trackposition = 0;
    cout<<"Welcome to Snake & Ladder Game!"<<"\n";
    while(trackposition != 100 ){

        cout<<"Roll a dice!"<<"\n";
        cin>>getinput;
        if(getinput > 6)
        cout<<"Invalid Input"<<"\n";
        else{
        trackposition = newBoard.updatePosition(getinput);
        cout<<"New postion:"<<trackposition<<"\n";
        }
    }
    cout<<"You Won!";
    }else{
        randomNumber();
    }

    return 0;
}

...