elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  c++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: c++  (Leído 6,525 veces)
JohnMcb

Desconectado Desconectado

Mensajes: 7


Ver Perfil
c++
« en: 19 Mayo 2013, 19:22 pm »

Mensajes: 6
Ubicación: Calle falsa 123
Antigüedad: 1 mes
Puntos: 0
 
 
Buen dia :D
Tengo que hacer un juego al estilo del ajedrez, ya lo tengo listo, no pongo el código por que es bastante largo. El caso es que mi tablero se muestra siempre como casillas (el tablero lo hice como un vector de 64 casillas)
ej:

for(int i=0;i<64;i++)
cout <<"["<< vector_tablero_ajedrez<< "]";

Mi tablero se viene mostrando algo asi:
[ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ]
con ciertos datos que se me piden mostrar dentro de esas casillas, pero ahora necesito mostrar ese mismo vector en un tablero decente, es decir que las casillas sean a color tal cual como en un tablero de ajedrez (casillas intercaladas blanco y negro), pero necesito hacer esto en dev c++ y sin necesidad de instalar librerías adicionales, alguien sabe como hacerlo ?
Gracias.


« Última modificación: 20 Mayo 2013, 00:11 am por JohnMcb » En línea

leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: Tablero ajedrez c++
« Respuesta #1 en: 19 Mayo 2013, 20:43 pm »

..................................................................
 pero ahora necesito mostrar ese mismo vector en un tablero decente, es decir que las casillas sean a color tal cual como en un tablero de ajedrez (casillas intercaladas blanco y negro), pero necesito hacer esto en dev c++ y sin necesidad de instalar librerías adicionales, alguien sabe como hacerlo ?
Gracias.

Creo que lo siguiente te podría servir ya que permite elegir el color de la letra y del fondo, pudiendo ir cambiándola. Lo mejor es construirse una función con la instrucción e invocarla cada vez que se quiera cambiar:

Código
  1. #include <windows.h>
  2. #include <stdlib.h>
  3. #include <iostream>
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8.    SetConsoleTextAttribute(GetStdHandle (STD_OUTPUT_HANDLE), 105 );
  9.    cout << "Azul sobre fondo amarillo" << endl;
  10.    SetConsoleTextAttribute(GetStdHandle (STD_OUTPUT_HANDLE), 44 );
  11.    cout << "Rojo sobre fondo verde" << endl;
  12.    SetConsoleTextAttribute(GetStdHandle (STD_OUTPUT_HANDLE), 7 );
  13.    cout << "Vuelvo a Blanco sobre fondo negro" << endl;
  14.    return 0;
  15. }

Y el modo de funcionamiento, o mejor elección de colores es:

Citar
SetConsoleTextAttribute(GetStdHandle (STD_OUTPUT_HANDLE),X);
Con este comando se le puede cambiar el color de texto y de fondo a lo que se muestre despues de que la linea se ejecute, siendo X un numero entre 0 y 255.
Ahora bien, siendo los colores:
¿como calcular X? Simple:

X=A*16+B

A=color de fondo
B=color de texto


Asi, si queremos por ejemplo un texto azul claro sobre fondo amarillo:

X=6(fondo amarillo)*16+9(texto azul claro)= 105

0 = Negro
1 = Azul
2 = Verde
3 = Aguamarina
4 = Rojo
5 = Purpura
6 = Amarillo
7 = Blanco
8 = Gris
9 = Azul claro

A = Verde claro=10
B = Aguamarina claro=11
C = Rojo claro=12
D = Purpura claro=13
E = Amarillo claro=14
F = Blanco brillante=15


Saluditos!. ... ...


« Última modificación: 19 Mayo 2013, 21:23 pm por leosansan » En línea

amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: Tablero ajedrez c++
« Respuesta #2 en: 19 Mayo 2013, 20:46 pm »

Aver si lo entiendo Leo, puedes colorear el fondo y escribir al mismo tiempo? Por ejemplo, poner una letra roja en un cuadro amarillo.

Si es así me la apunto.
En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
JohnMcb

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: Tablero ajedrez c++
« Respuesta #3 en: 19 Mayo 2013, 21:03 pm »

Gracias leosansan, intentare con eso a ver que tal me va :D
En línea

leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: Tablero ajedrez c++
« Respuesta #4 en: 19 Mayo 2013, 21:12 pm »

Aver si lo entiendo Leo, puedes colorear el fondo y escribir al mismo tiempo? Por ejemplo, poner una letra roja en un cuadro amarillo.

Si es así me la apunto.

Efectivamente es así:



Saluditos!. ..... ...
« Última modificación: 19 Mayo 2013, 21:19 pm por leosansan » En línea

leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: c++
« Respuesta #5 en: 20 Mayo 2013, 20:31 pm »


Mi tablero se viene mostrando algo asi:
[ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ][ ][ ]
con ciertos datos que se me piden mostrar dentro de esas casillas, pero ahora necesito mostrar ese mismo vector en un tablero decente, es decir que las casillas sean a color tal cual como en un tablero de ajedrez (casillas intercaladas blanco y negro), pero necesito hacer esto en dev c++ y sin necesidad de instalar librerías adicionales, alguien sabe como hacerlo ?


A mí me salen estas tableros, como muestra de lo indicado en el post anterior:





Código
  1. #include <iostream>
  2. #include <windows.h>
  3.  
  4. int color (int n);
  5. using namespace std;
  6.  
  7. int main(void)
  8. {
  9.    int i,j;
  10.    for (i = 0; i < 16; i++){
  11.        for (j = 0; j < 16; j++){
  12.            if ((i+1+j+1)%2==0)
  13.                color (/*7*/97);
  14.            else
  15.                color (/*112*/22);
  16.            cout <<"[X"<<  "]";
  17.        }
  18.       cout <<endl;
  19.    }
  20.    color (7);
  21.    return 0;
  22. }
  23. int color (int n)
  24. {
  25.        SetConsoleTextAttribute(GetStdHandle (STD_OUTPUT_HANDLE), n );
  26. }
  27.  

Espero te sea útil. Por cierto, lo que está desactivado con /* numero*/ es el de blanco y negro.

Saluditos! .... ...
« Última modificación: 20 Mayo 2013, 20:34 pm por leosansan » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines