Beruflich Dokumente
Kultur Dokumente
jugadores
1. Se cambio la funcion 'barajar' por 'jugar'; la cual realiza el mismo trabajo.
Sin embargo, la funcion 'barajar' parece mas efectiva, automatica y simple
2. Se agrego la funcion 'verificamano'; la cual accede a la nueva 'baraja'(vector
'cartas') y asigna cartas a la matriz 'mano' por medio de ciclos 'for' anidados
*PRINCIPALES CONSIDERACIONES:
- Si el nuevo programa funciona al asignar cartas a cada mano, es necesario hacer
la codificacion de cada tipo de carta por numero y palo dependiendo del valor
aleatorio al que pertenezcan
- Luego, se debera hacer la sumatoria de valores desde la matriz 'carta' y asignar
esto a la variable 'puntero' para cada objeto
- Al finalizar con las dispocisiones anteriores, podemos comenzar a trabajar en una
mejor interfaz grafica.
class Persona{
private:
char nombre[30];
int edad;
public:
void getInfo();
void showInfo();
};
void Persona::getInfo(){
fflush(stdin);
cout<<"\nIngrese su nombre: ";
cin.getline(nombre,30);
cin.ignore();
cout<<"Ingrese su edad: ";
cin>>edad;
}
void Persona::showInfo(){
cout<<" DATOS:";
cout<<"\nNombre: "<<nombre;
cout<<"\nEdad: "<<edad;
}
void Player::getNick(){
Persona::getInfo();
cin.ignore();
cout<<"Ingrese nickname de jugador: ";
cin.getline(nickname,30);
}
void Player::show(){
Persona::showInfo();
cout<<"\nNickname: "<<nickname<<endl;
}
for(c=0;c<=4;c++){
carta=rand()%52;
mano[c]=baraja[carta];
while (verifica(carta,c,mano)==true){
carta=rand()%52;
}
mano[c]=baraja[carta];
}
}
*/
/*
IDEA: Funcion por referencia que reciba la 'cantidad' de
jugadores y proporcione manos
Asi, recibe la cantidad de jugadores y en base a esto, puede proporcionar 10, 15,
20 o 25 numeros aleatorios que no repitan;
luego, regresa los primero 5 numeros al primer jugador, los segundos 5 al siguiente
y asi sucesivamente.
Esto haria que se descarte la funcion 'barajar' pues las cartas son entregadas de
forma aleatoria directamente. La funcion 'juego' recibiria la cantidad de
jugadores y regresaria las cartas; fueran estas 10, 15, 20 o 25.
*/
void Player::barajar(){
int c,al;
srand(time(NULL)); //Utiliza la hora del sistema para inicializar
la funcion srand();
cout<<"Barajando naipes...\n";
for(c=0;c<=51;c++){
al=rand()%52; //Se genera un numero aleatorio desde 0 hasta 51
//cout<<"numero aleatorio: "<<al<<endl;
baraja[c]=al; //El numero aleatorio se guarda en la posicion "c" de
la baraja
//system("pause");
while(verifica(al,c,baraja)==true){ //si el numero ya existe en
el vector, se genera uno nuevo
// cout<<"Numero repetido";
al=rand()%52;
/*
cout<<"\nnuevo numero "<<al<<" pocision de vector:
"<<baraja[c]<<endl;
baraja[c]=al;
*/
//system("pause");
}
baraja[c]=al;
}
/*
for(c=0;c<=51;c++){ //muestra baraja en pantalla
cout<<baraja[c]<<" ";
}
*/
}
return cartas[51];
}
//OJO: Esta funcion tambien podria tomar los valores desde 'baraja' y
asignarlos a cada jugador
int Player::verificamano(int cantidad){
//Debe acceder a cartas, tomar la cantidad de cartas basado en
'cantidad' desde el main.cpp y entregar las primeras 5 y asi...
int i=0,c=0;
if(cantidad==2){ //Para dos jugadores
for(i=0;i<=1;i++){ //Cuenta cantidad de jugadores - Inicia con el
numero de jugador
for(c=0;c<=9;c++){
mano[c][i]=cartas[c]; //toma cartas desde 'cartas' y las
coloca en el numero de carta 'c' para el jugador 'i'(sea jugador 1 y 2)
}
}
}else if(cantidad==3){
for(i=0;i<=2;i++){ //para tres jugadores
for(c=0;c<=14;c++){
mano[c][i]=cartas[c];
}
}
}else if(cantidad==4){
for(i=0;i<=3;i++){ //para 4 jugadores
for(c=0;c<=19;c++){
mano[c][i]=cartas[c];
}
}
}else if(cantidad==5){
for(i=0;i<=4;i++){
for(c=0;c<=24;c++){
mano[c][i]=cartas[c];
}
}
}
return mano[4][4];
}
TERCER ARCHIVO, MAIN:
#include "funciones.h"
int main(){
int cantidad,p;
cantidad=0;
Player jugador[cantidad];
for (p=0;p<=cantidad-1;p++){
cout<<"\nIngrese informacion de jugador #"<<p+1;
jugador[p].getNick();
for(int u=0;u<=20;u++){
cout<<"**";
}
}
system("cls");
jugador[0].barajar();
jugador[0].jugar(cantidad); //nuevo "bararajar"
system("pause");
return 0;
}