Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: bestfriend en 22 Junio 2015, 21:17 PM

Título: Juego de Damas [Color del Tablero]
Publicado por: bestfriend en 22 Junio 2015, 21:17 PM
Hola espero que me puedan ayudar con este problemilla que tengo la verdad el programa me corre bien lo que necesito es añadirle color al tablero (fondo y texto), pero no se como hacerlo si pudieran ayudarme seria excelente. Les adjunto el codigo:

#define T 8
#include <stdio.h>
#include <stdlib.h>

int turno = 0;
char tablero[T][T];

/////////////////////////////////////////Rellena el tablero despues de un movimiento////////////////////////////////////////
int llenarTablero()
{
  int i,j,k;
   for(i=0;i<T;i++)
       for(j=0;j<T;j++)
      {
         if(i<3&&((i+j)%2==0))
            tablero[i][j]='N';
         else
            if((i>4)&&((i+j)%2==0))
               tablero[i][j]='B';
            else
               tablero[i][j]= ' ' ;
      }
}
///////////////////////////////////////Pausa para continuar///////////////////////////////////////////////////////////
void pausar()
{
   printf("\nPresione 'c' para continuar...");
   while(getchar()!='c');
}
////////////////////////////////Imprime el tablero///////////////////////////////////////////////////////////////////////////
int imprimirTablero()
{
  int k,j,i;
   system("cls");
   for(i=0;i<T;i++)
       {
      if (i==0)
      {
         printf("  ");
         for(k=0;k<T;k++)
            printf(" %d ",k);
         printf("\n");
      }

      printf("%d ",i);
           for(j=0;j<T;j++)
     {
       
                   printf(" %c ",tablero[i][j]);
             }
             printf("\n");
       }
}
/////////////////////////////Valida cada movimiento de pieza/////////////////////////////////////////////////////////////////
int moverPieza(int x, int y, int direccion)
{
   if(turno==1)
   {
      if(tablero[x][y]!='n')
      {
         printf("No existe pieza negra en la posicion %d %d \n", x, y);
      ;
      }
      else
      {
         printf("Direccion %d \n", direccion);
         if(direccion==1&&(y-1)>=0&&(x+1)<8)
         {
            if(tablero[x+1][y-1]==' ')
            {
               tablero[x][y] =' ';
               tablero[x+1][y-1]= 'n';
            }
            else
               if(tablero[x+1][y-1]=='b'&&tablero[x+2][y-2]==' ')
               {
                  tablero[x][y] = ' ';
                  tablero[x+1][y-1]= ' ';
                  tablero[x+2][y-2]= 'n';
                  printf("La pieza negra se comio la pieza Blanca en %d %d \n", x + 1, y - 1);
               }
               else
                  printf("La pieza no puede moverse a una casilla ocupada");
         }
         else
         {
            if(direccion==1)
               printf("La pieza no puede moverse pues sale del tablero");
             
         }
         
         if(direccion==2&&(y+1)<8&&(x+1)<8)
         {
            if(tablero[x+1][y+1]==' ')
            {
               tablero[x][y]=' ';
               tablero[x+1][y+1]= 'n';
            }
            else
               if(tablero[x+1][y+1]=='b'&&tablero[x+2][y+2]==' ')
               {
                  tablero[x][y] = ' ';
                  tablero[x+1][y+1]=' ';
                  tablero[x+2][y+2]='n';
                  printf("La pieza negra se comio la pieza Blanca en %d %d \n", x + 1, y + 1);
               }
               else
                  printf("La pieza no puede moverse a una casilla ocupada");
             
         }
         else
         {
            if(direccion==2)
               printf("La pieza no puede moverse pues sale del tablero");
               
         }
      }
      turno=0;
   }
   else
       if(turno==0)
   {
      if(tablero[x][y]!='b')
      {
         printf("No existe pieza Blanca en la posicion %d %d \n", x, y);
             
      }
      else
      {
         if(direccion==1&&(y-1)>=0&&(x-1)>=0)
         {
            if(tablero[x-1][y-1]==' ')
            {
               tablero[x][y]=' ';
               tablero[x-1][y-1]='b';
            }
            else
               if(tablero[x-1][y-1]=='n'&&tablero[x-2][y-2]==' ')
               {
                  tablero[x][y]=' ';
                  tablero[x-1][y-1]=' ';
                  tablero[x-2][y-2]='b';
                  printf("La pieza Blanca se comio la pieza negra en %d %d \n", x - 1, y - 1);
               }
               else
                  printf("La pieza no puede moverse a una casilla ocupada");
                 
         }
         else
         {
            if(direccion==1)
               printf("La pieza no puede moverse pues sale del tablero");
                 
         }
         
         if(direccion==2&&(y+1)<8&&(x-1)>=0)
         {
            if(tablero[x-1][y+1]==' ')
            {
               tablero[x][y] = ' ';
               tablero[x-1][y+1]='b';
            }
            else
               if(tablero[x-1][y+1]=='n'&&tablero[x-2][y+2]==' ')
               {
                  tablero[x][y] = ' ';
                  tablero[x-1][y+1]=' ';
                  tablero[x-2][y+2]='b';
                  printf("La pieza Blanca se comio la pieza negra en %d %d \n", x + 1, y + 1);
               }
               else
                  printf("La pieza no puede moverse a una casilla ocupada");
         }
         else
         {
            if(direccion==2)
               printf("La pieza no puede moverse pues sale del tablero");
                 
         }
      }
         turno=1;
    }
      pausar();
}
//////////////////////////////////////////Se elige la fila y columna a donde se desea realizar el movimiento de la pieza///////////////////////////////////////
int jugar()
{
   int x, y, direccion;
   imprimirTablero();
   if(turno==1)
   {
      printf("Seleccione la ficha negra que desea mover...\n");
       
   }
   else if(turno==0)
   {
      printf("Seleccione la ficha Blanca que desea mover...\n");
       
   }
   
   printf("\tIntroduzca la fila y columna\n");
   scanf("%d %d",&x,&y);
   printf("\tElija la direccion del movimiento,\n\tIzquierda [1]\n\tDerecha [2]\n");
   scanf("%d",&direccion);
   moverPieza(x, y, direccion);
   return 1;
   
}
/////////////////////////////////////Manual que contiene las instrucciones del juego////////////////////////////////////////////////////////////////////
int manual()
{
    printf("\tEn este juego parte el jugador con las piezas blancas\n El tablero esta enumerado del 0 al 7,desde arriba hacia abajo y de izquierda a derecha\n\tLas negras estan arriba y las blancas abajo\n\tLuego de cada movimiento para continuar debe presionar [c]\n\tLas coordenadas de la ficha que desea mover debera ser ingresada con un espacio entre cada numero\n"); 
}
//////////////////////////////////////////////////////MENU/////////////////////////////////////////////////////////////
int main(){
   int menu,aux=0;
  while(aux!=1)
  {
      printf("\n\n\n\t**************BIENVENIDO AL JUEGO DE LAS DAMAS EN C************\n\t*****  *****\t********  ****     **\t***    ***\n\t***  **  ***\t***       ** **    **\t***    ***\n\t***  **  ***\t******    **  **   **\t***    ***\n\t***      ***\t***       **    ** **\t**********\n\t***      ***\t********  **     ****\t**********\n\tpara leer el manual presione [1]\n\tpara comenzar a jugar presione [2]\n\tpara salir presione [0]\n");
      scanf("%d",&menu);
 
      if(menu==2)
      {
   system("cls");
   llenarTablero();
   while(jugar());
   aux=1;
      }
   else if(menu==0)
      {
   
   printf("\t\t******ADIOS******\n\tGRACIAS POR PREFERIR DAMAS EN C\n\n");
   aux=1;
   system("cls");
   return 0;
      }
   else if(menu==1)
      {
   manual();
   aux=0;
      }   
   else if(menu!=1&&menu!=2&&menu!=0)
   aux=0;
  }
   return 0;
}
Título: Re: Juego de Damas [Color del Tablero]
Publicado por: 0xFer en 23 Junio 2015, 21:57 PM
En la cabecera window.h tienes algunas funciones para cambiar algunos atributos de la consola:


HANDLE laTerminal;
    laTerminal = GetStdHandle ( STD_OUTPUT_HANDLE );

    SetConsoleTextAttribute ( laTerminal,BACKGROUND_GREEN );
    printf("Texto 1");
    SetConsoleTextAttribute ( laTerminal,BACKGROUND_INTENSITY | BACKGROUND_GREEN| BACKGROUND_RED| BACKGROUND_BLUE );
    printf("Texto 2");
    SetConsoleTextAttribute ( laTerminal,BACKGROUND_INTENSITY | BACKGROUND_RED );
    printf("texto 3");
    SetConsoleTextAttribute ( laTerminal,FOREGROUND_INTENSITY | FOREGROUND_BLUE | FOREGROUND_GREEN| FOREGROUND_RED );
    printf(" texto 4");

Título: Re: Juego de Damas [Color del Tablero]
Publicado por: bestfriend en 25 Junio 2015, 21:04 PM
Disculpa pero no logro entender como aplico eso para colorear las casillas de mi tablero? Te adjunto la función del programa que imprime el tablero a ver si me puedes ayudar a buscar como implementar esa utilidad.

////////////////////////////////Imprime el tablero///////////////////////////////////////////////////////////////////////////
int imprimirTablero()
{
  int k,j,i;
   system("cls");
   for(i=0;i<T;i++)
       {
      if (i==0)
      {
         printf("  ");
         for(k=0;k<T;k++)
            printf(" %d ",k);
         printf("\n");
      }

      printf("%d ",i);
           for(j=0;j<T;j++)
     {
                   printf(" %c ",tablero[i][j]);
             }
             printf("\n");
       }
}