Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- #define TRUE 1
- #define FALSE 0
- typedef struct{
- int num;
- char palo;
- int disp;
- }carta;
- void fflushstdin();
- void pause();
- void deal(carta hands[2][3]);
- int play(carta hands[2][3], int *palyer_tag);
- int main(void) {
- char name[12];
- carta hands[2][3];
- int player_tag=0; //0 para player 1 y 1 para cpu
- int score[2]= {0, 0}; //vector de puntajes para respectivos jugadores
- int win;
- srand(time(NULL)); //seed
- printf("Ingrese su nombre: \n");
- fgets(name,12,stdin);
- fflushstdin();
- printf("%s", name);
- printf("A cuantos puntos desea jugar\n 1- 18\n 2- 30\n");
- scanf("%d",&win);
- if(win=1){
- win=18;
- }
- else{
- win=30;
- }
- do { //como cortesia la computadora empieza siendo el pie y el usuario la mano
- player_tag=play(hands,&player_tag);
- score[player_tag]++;
- printf("FIN DE LA MANO\nPuntos:\nHumano\t\tMaquina\n%d\t\t%d\n",score[0],score[1]);
- }while ((score[0]<win)&&(score[1]<win));
- printf("FIN DEL JUEGO");
- return EXIT_SUCCESS;
- }
- void pause (){
- while ('\n' != getchar ());
- }
- void fflushstdin() {
- int c;
- while( (c = fgetc( stdin )) != EOF && c != '\n' );
- }
- void deal(carta hands[2][3]){
- int i;
- int j;
- int k;
- int l;
- carta aux;
- for(i=0;i<2; i++){
- for (j=0;j<3;j++){
- do {
- hands[i][j].num=(rand()%11)+1;
- }while ((hands[i][j].num==8) || (hands[i][j].num==9));
- hands[i][j].palo = (rand()%3);
- switch (hands[i][j].palo){
- case 0:
- hands[i][j].palo='E';
- break;
- case 1:
- hands[i][j].palo='O';
- break;
- case 2:
- hands[i][j].palo='B';
- break;
- default:
- hands[i][j].palo='C';
- break;
- }
- hands[i][j].disp = TRUE;
- }
- }
- for(i=0;i<2;i++){
- for(j=0;j<3;j++){
- aux.num=hands[i][j].num;
- aux.palo=hands[i][j].palo;
- for(k=0;k<2;k++){
- for(l=0;l<3;l++){
- if((i!=k)||(j!=l)){
- if ((hands[i][j].num==hands[k][l].num)&&(hands[i][j].palo==hands[k][l].palo)){
- deal(hands);
- return;
- }
- }
- }
- }
- }
- }
- for(i=0;i<2;i++){
- for(j=0;j<3;j++){
- printf("%d,%c\t",hands[i][j].num,hands[i][j].palo);
- }
- printf("\n");
- }
- return;
- }
- int play(carta hands[2][3], int *player_tag){
- int i;
- int j;
- int k=0;
- int aux;
- int lol;
- int str[2];
- int vic[3];
- int flag=TRUE;
- deal(hands);
- while (flag==TRUE){
- do{
- j= rand()%3;
- }while(hands[1][j].disp==FALSE);
- hands[1][j].disp=FALSE;
- if(*player_tag==1){
- printf("Carta de la maquina:\n%d,%c\n",hands[1][j].num,hands[1][j].palo);
- do{
- printf("Que carta desea usar?\n");
- scanf("%d",&i);
- }while(hands[0][i].disp==FALSE);
- }
- else{
- do{
- printf("Que carta desea usar?\n");
- scanf("%d",&i);
- }while(hands[0][i].disp==FALSE);
- }
- hands[0][i].disp=FALSE;
- printf("Cartas en mesa:\nUsuario\t\tMaquina\n%d,%c\t\t%d,%c\n",hands[0][i].num,hands[0][i].palo,hands[1][j].num,hands[1][j].palo);
- for (aux=0;aux<2;aux++){
- if (aux==0){
- lol=i;
- }
- else{
- lol=j;
- }
- switch (hands[aux][lol].num){
- case 1:
- if(hands[aux][lol].palo=='E'){
- str[aux]=14;
- }
- else{
- if(hands[aux][lol].palo=='B'){
- str[aux]=13;
- }
- else{
- str[aux]=8;
- }
- }
- break;
- case 2:
- str[aux]=9;
- break;
- case 3:
- str[aux]=10;
- break;
- case 4:
- str[aux]=1;
- break;
- case 5:
- str[aux]=2;
- break;
- case 6:
- str[aux]=3;
- break;
- case 7:
- if(hands[aux][lol].palo=='E'){
- str[aux]=12;
- break;
- }
- else{
- if(hands[aux][lol].palo=='O'){
- str[aux]=11;
- }
- else{
- str[aux]=4;
- }
- }
- break;
- case 10:
- str[aux]=5;
- break;
- case 11:
- str[aux]=6;
- break;
- case 12:
- str[aux]=7;
- break;
- }
- }
- if(str[0]>str[1]){
- printf("Gano el humano\n");
- *player_tag=0;
- vic[k]=*player_tag;
- }
- else{
- if(str[0]<str[1]){
- printf("Gano la maquina\n");
- *player_tag=1;
- vic[k]=*player_tag;
- }
- else{
- printf("Empate\n");
- vic[k]=2;
- }
- }
- k++;
- if(k>1){
- if(k==2){
- if((vic[0]==vic[1])&&(vic[0]!=2)){
- printf("La mano la gana el player: %d\n",vic[0]);
- return vic[0];
- }
- if((vic[0]==2)&&(vic[1]!=2)){
- printf("La mano la gana el player: %d\n",vic[1]);
- return vic[1];
- }
- }
- else{
- if((vic[0]!=vic[1])&&(vic[0]!=2)&&(vic[1]!=2)){
- if(vic[2]!=2){
- printf("La mano la gana el player: %d\n",vic[2]);
- return vic[2];
- }
- else{
- printf("La mano la gana el player: %d\n",vic[0]);
- return vic[0];
- }
- }
- else{
- if (vic[2]!=2){
- printf("La mano la gana el player: %d\n",vic[2]);
- return vic[2];
- }
- else{
- printf("La mano la gana el player: %d\n",player_tag);
- return player_tag;
- }
- }
- }
- }
- }
- }
Add Comment
Please, Sign In to add comment