Me ayudan por favor, es para un proyecto de la facultad!


19 de Julio del 2017
#include <iostream>
using namespace std;
#include <cstdlib>
#include <ctime>
#include <string.h>
#include "rutinas.h"

int main()
{
    //MENU
    int opcion;
    // OPCION 1
    int r, pts, total=0, suma;
    int dados[5];
    int mati[3][5];
    char nombre[30];
    //char resp[3];
    //char yes[]="SI";

    //INICIO MENU GENERALA
    while(true)
    {
        system("cls");
        cout << "ttttt     GENERALA  " << endl;
        cout << "----------------------------------------------------------------------------------------------------" << endl;
        cout << "ntttt 1 - JUEGO NUEVO PARA UN JUGADOR" << endl;
        cout << "ntttt 2 - JUEGO NUEVO PARA DOS JUGADORES" << endl;
        cout << "ntttt 3 - MOSTRAR PUNTUACION MAS ALTA" << endl;
        cout << "ntttt 0 - SALIR DEL JUEGO" << endl;

        cout << endl;
        cout << "n t t t t OPCION: ";
        cin >> opcion;
        switch(opcion)
        {
        case 1:
            system("cls");
            cout << "NOMBRE DEL JUGADOR: ";
            cin >> nombre;
            strupr(nombre);
            system("cls");

            srand(time(NULL)); // PARA GENERAR NUMEROS AL AZAR
            //INICIO DE PARTIDA
            for(r=1;r<=3;r++){
            //tirarDadosTrucho(dados, 5);
            tirarDados(dados, 5);
            mostrarDados(dados, 5);
            guardarRonda(mati, dados, r);
            repetirTiro(dados);
            guardarRonda(mati, dados, r);
            suma = sumarVector(dados, 5);

            total += suma;
            cout << endl << endl << "PUNTAJE: ";
            cout << total << endl;
            system("pause");
            cout << endl;

            }
            system("cls");
            cout << "FELICITACIONES " << nombre << ", " << endl;
            cout << "TU PUNTAJE FINAL ES  " << total;
            cout << endl << endl;
            mostrarJuego(mati);




          /*categoriaNumeros(dados);
            categoriaGenerala(dados);
            categoriaPoker(dados);
            categoriaFull(dados, 5);
            mostrarJuego(mati);*/
            system("pause");
        break;

        case 2:
            system("cls");
            system("pause");
        break;

        case 3:
            system("pause");
        break;

        case 0:
            return 0;
            //system("pause");
        break;

        default:
            system("cls");
            cout << "nntttt POR FAVOR, INGRESE UNA OPCION CORRECTA" << endl;
            cout << endl << endl;
            system("pause");
        }
    }
    //FIN MENU GENERALA

  system("pause");
  return 0;
}

rutinas: // solo para separar el main del header

void tirarDadosTrucho(int *vec, int tam)
{
    int i;
    for(i=0; i<tam; i++)
    {
        cin >> vec[i];
    }
    cout << endl;
}

void tirarDados(int *vec, int tam)
{
    int i;
    for(i=0; i<tam; i++)
    {
        vec[i] = (rand()%6)+1;
    }
    cout << endl;
}
void mostrarDados(int *vec, int tam)
{
    int i;
    cout << endl;
    cout << "    ---------       ---------       ---------       ---------       --------- "  << endl;
    cout << "   |         |     |  *      |     |  *      |     |  *   *  |     |  *   *  |"  << endl;
    cout << "   |    *    |     |         |     |    *    |     |         |     |    *    |"  << endl;
    cout << "   |         |     |      *  |     |      *  |     |  *   *  |     |  *   *  |"  << endl;
    cout << "    ---------       ---------       ---------       ---------       --------- "  << endl;
    cout << "     DADO 1          DADO 2          DADO 3          DADO 4           DADO 5  "  << endl;

    for(i=0; i<tam; i++)
    {
        cout << "t" << vec[i] << "t";
    }
    cout << endl << endl;
}

void repetirTiro(int *vec)
{
    int cDados;
    char respuesta[5];
    char si[]={"si"};
    bool repetir=true;

    while(repetir==true)
    {
        cout << endl << "DESEA VOLVER A TIRAR LOS DADOS? : ";
        cin >> respuesta;
        if(strcmp(respuesta,si)==0)
        {
            cout << "CUANTOS DADOS DESEA VOLVER A TIRAR: ";
            cin >> cDados;
            cout << endl;

            if(cDados==1)
            {
                cout << "    --------- "  << endl;
                cout << "   |         |"  << endl;
                cout << "   |    *    |"  << endl;
                cout << "   |         |"  << endl;
                cout << "    --------- "  << endl;
                cout << "      DADO 1  "  << endl;
            }
            else if(cDados==2)
            {
                cout << endl;
                cout << "    ---------       --------- "  << endl;
                cout << "   |         |     |  *      |"  << endl;
                cout << "   |    *    |     |         |"  << endl;
                cout << "   |         |     |      *  |"  << endl;
                cout << "    ---------       --------- "  << endl;
                cout << "     DADO 1          DADO 2   "  << endl;
            }
            else if(cDados==3)
            {
                cout << endl;
                cout << "    ---------       ---------       --------- "  << endl;
                cout << "   |         |     |  *      |     |  *      |"  << endl;
                cout << "   |    *    |     |         |     |    *    |"  << endl;
                cout << "   |         |     |      *  |     |      *  |"  << endl;
                cout << "    ---------       ---------       --------- "  << endl;
                cout << "     DADO 1          DADO 2          DADO 3   "  << endl;
            }
            if(cDados==4)
            {
                cout << endl;
                cout << "    ---------       ---------       ---------       --------- "  << endl;
                cout << "   |         |     |  *      |     |  *      |     |  *   *  |"  << endl;
                cout << "   |    *    |     |         |     |    *    |     |         |"  << endl;
                cout << "   |         |     |      *  |     |      *  |     |  *   *  |"  << endl;
                cout << "    ---------       ---------       ---------       --------- "  << endl;
                cout << "     DADO 1          DADO 2          DADO 3          DADO 4   "  << endl;
            }
            else if(cDados==5)
            {
                cout << endl;
                cout << "    ---------       ---------       ---------       ---------       --------- "  << endl;
                cout << "   |         |     |  *      |     |  *      |     |  *   *  |     |  *   *  |"  << endl;
                cout << "   |    *    |     |         |     |    *    |     |         |     |    *    |"  << endl;
                cout << "   |         |     |      *  |     |      *  |     |  *   *  |     |  *   *  |"  << endl;
                cout << "    ---------       ---------       ---------       ---------       --------- "  << endl;
                cout << "     DADO 1          DADO 2          DADO 3          DADO 4           DADO 5  "  << endl;
            }

            //DESPUES DE INDICAR
            for(int d=0; d<cDados; d++)
            {
                vec[d] = (rand()%6)+1;
            }
            for(int z=0; z<cDados; z++)
            {
                cout << "t" << vec[z] << "t";
            }
            cout << endl << endl;
        }
        else if(strcmp(respuesta,si)==1)
        {
            repetir=false;
        }
    }
}

int sumarVector(int *v, int tam)
{
    int i, s=0;
    for(i=0; i<tam; i++)
    {
        s+=v[i];
    }
  return s;
}

int contarValor(int *vec, int tam, int valorBuscado, int valorBuscado2, int valorBuscado3, int valorBuscado4, int valorBuscado5, int valorBuscado6)
{
    int i;
    int c=0;
    for(i=0; i<tam; i++)
    {
        if((vec[i]==valorBuscado)||(vec[i]==valorBuscado2)||(vec[i]==valorBuscado3)||(vec[i]==valorBuscado4)||(vec[i]==valorBuscado5)||(vec[i]==valorBuscado6))
        {
            c++;
        }
    }
    return c;
}

void categoriaNumeros(int *vec)
{
    int i, i2, i3, i4, i5 , i6;
    int c, cant;
    int ptos1=0, ptos2=0, ptos3=0, ptos4=0, ptos5=0, ptos6=0;
    for(c=1; c<6; c++)
    {
       cant = contarValor(vec, 5, i, i2, i3, i4, i5, i6);
       if(vec[c]==i)
       {
           ptos1 += i;
       }
       if(vec[c]==i2)
       {
           ptos2 = i2*2;
       }
       if(vec[c]==i3)
       {
           ptos3 = i3*3;
       }
       if(vec[c]==i4)
       {
           ptos4 = i4*4;
       }
       if(vec[c]==i5)
       {
           ptos5 = i5*5;
       }
       if(vec[c]==i6)
       {
           ptos6 = i6*6;
       }
    }
    cout << endl << endl;
    cout << "PUNTOS 1: " << ptos1 << endl << endl;
    cout << "PUNTOS 2: " << ptos2 << endl << endl;
    cout << "PUNTOS 3: " << ptos3 << endl << endl;
    cout << "PUNTOS 4: " << ptos4 << endl << endl;
    cout << "PUNTOS 5: " << ptos5 << endl << endl;
    cout << "PUNTOS 6: " << ptos6 << endl << endl;
}
// FIN CATEGORIA DE NUMEROS

void categoriaGenerala(int *vec)
{
    int i;
    int cant;
    for(i=1; i<=6; i++)
    {
        cant = contarValor(vec, 5, i, i, i, i, i, i);
        if(cant == 5)
        {
            cout << "GENERALA - 60 PUNTOS!" << endl << endl;
        }
    }
}
//FIN CATEGORIA GENERALA

void categoriaPoker(int *vec)
{
    int i;
    int cant;
    for(i=1; i<=6; i++)
    {
        cant = contarValor(vec, 5, i, i, i, i, i, i);
        if(cant == 4)
        {
            cout << "POKER - 40 PUNTOS!" << endl << endl;
        }
    }
}
//FIN CATEGORIA POKER

void categoriaFull(int *vec)
{

}
//FIN CATEGORIA FULL

bool categoriaEscalera(int *vec)
{
    bool escalera=true;
    int posmin, aux, ant;

    //MUESTRA POR PANTALLA ANTES DE ORDENAMIENTO
    cout << "ANTES DE ORDENAR"<<endl;

    cout << "--------------------------------------------------------------------------------";

    //ORDENAMIENTO DE VECTOR
    for(int z=0; z<5-1; z++)
    {
        posmin=z;
        for(int y=z+1; y<5; y++)
        {
            if(vec[y]<vec[posmin])
            {
                posmin=y;
            }
        }
        aux=vec[z];
        vec[z]=vec[posmin];
        vec[posmin]=aux;
    }

    //MUESTRA POR PANTALLA DESPUES DE ORDENAMIENTO
    cout << "DESPUES DE ORDENAR" << endl << endl;
    for(int a=0; a<5; a++)
    {
        cout << vec[a] << endl;
    }
    cout << endl;

    //COMPORBACION DE ESCALERA
    ant=vec[0];
    for(int x=0; x<5; x++)
    {
        if(x!=0)
        {
            if (vec[x] == ant+1)
            {

            }
            else
            {
                escalera = false;
                x=800;
            }
        }
        ant = vec[x];
    }

    if(escalera==true)
    {
        cout << "ESCALERA: APARECEN NUMERO CONSECUTIVOS " << endl;
        cout << endl;
        return true;
    }
    return false;
}
//FIN CATEGORIA ESCALERA

void guardarRonda(int m[3][5], int *dados, int ronda)
{
    int i;
    for(i=0; i<5; i++)
    {
        m[ronda-1][i] = dados[i];
    }
}

void mostrarJuego(int mat[3][5])
{
    int i, j;
    for(i=0; i<3; i++)
    {
        cout << "RONDA " << i+1 << " : ";
        for(j=0; j<5; j++)
        {
            cout << mat[i][j] << " ";
        }
        cout << endl;
    }
    cout << endl;
}