ocupo un programa que simule el juego blackjack

mariela
18 de Octubre del 2005
Problema
Escribir un programa en C que simule un juego de “blackjack” entre dos jugadores. La computadora no será un participante en el juego, solo se encargará de repartir las cartas a cada jugador, y le proveerá a cada jugador una o dos cartas cuando este lo solicite.
Las cartas se reparten en orden, primero una carta a cada jugador, después otra carta a cada uno. Se pueden demandar cartas adicionales.
El objeto del juego es obtener 21 puntos, o tantos puntos como sea posible sin exceder los 21 en cada mano. Un jugador se descalifica si las cartas en su mano exceden los 21 puntos, Las figuras cuentan 10 puntos y un as puede contar un punto u 11 puntos. Así, un jugador puede obtener 21 puntos (“blackjack”) si tiene un as y una figura o un 10. Si el jugador tiene menos puntos con sus dos primeras cartas, puede pedir una carta más, mientras su puntuación no pase de 21.

Instrucciones
Utilizar números aleatorios para simular el reparto de cartas. Asegurar la inclusión de una condición para que la misma carta no sea dada más de una vez.
Su programa debe ser interactivo y modularizado. Lo cual quiere decir que debe incluir un menú si se desea jugar otro juego o finalizar el programa. Asimismo, usar una función que se encargue de repartir las cartas y una función que despliegue los resultados obtenidos cuando finaliza el juego (quien gana y quien pierde)
Además antes de repartir debe solicitar el nombre de ambos jugadores y desplegarlos cuando presente el resultado de la partida de “blackjack”.
Por último, usar arreglos y notación de punteros para acceder y procesar dichos arreglos, a la hora de solucionar el problema. Como mínimo deben incluir las funciones solicitadas así como cualquier otra que consideren necesaria para resolver el juego.


any85
18 de Octubre del 2005
#include <iostream.h>
#include <stdlib.h>
#include <conio.h>



int mesa (int a)
{
int c=0,d=0;
while (a>d && d<21)
{c=0;
c=random (12)+1;
if (c==1)
{
d+=11;
if (d>21)
d+=1;
c=0;
}
if (c>10)
c=10;
d=d+c;
}
if (d>21)
cout<<"Ganaste, la mesa se paso de puntos ";
return d;
}




int cualquier ()
{
int y=0,op=0,x=0;
y=random (12)+1;

if (y==1)
{
clrscr ();
cout<<"Que valor quieres de la carta 1 o 11? n";
cin>>op;
switch (op)
{
case 1:
{ y=1;
break;
}
case 11:
{ y=11;
break;
}
default:
{ cout<<"Debe ser 1 o 11 n";
y=op;
}
}
}
else
{
if (y>10)
y=10;
}
x=x+y;
return x;
}






void main ()
{
int z=0,n=0;
char l=' ';

do
{
clrscr ();
cout<<"Deseas una carta? s/n n";
cin>>l;
if (l=='s')
{
z+=cualquier(); // llama a la funcion para asignar valor al jugador
cout<<"Hasta ahora llevas "<<z<<" puntos n";
getch();
}

if (z>21)
{
cout<<"Has perdido, excediste 21 puntos n";
l='n';
}
}
while (l=='s');
if (z<=21)
n=mesa (z);
if (n>z || n==z)
{
cout<<"Has perdido, la mesa tiene mayor puntuacion n";
cout<<"Tus cartas "<<z<<"y la casa tiene "<<n<<endl;
}
}