Juego de Damas [Color del Tablero]

Iniciado por bestfriend, 22 Junio 2015, 21:17 PM

0 Miembros y 1 Visitante están viendo este tema.

bestfriend

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;
}

0xFer

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");

Código (java) [Seleccionar]
int getRandomNumber(){
    return 4; //chosen by fair dice roll
              //guaranteed to be random
}

bestfriend

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");
       }
}