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

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Tamaño consola y caracter inmovil (solucionado)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Tamaño consola y caracter inmovil (solucionado)  (Leído 3,551 veces)
nolasco281


Desconectado Desconectado

Mensajes: 319


Ver Perfil
Tamaño consola y caracter inmovil (solucionado)
« en: 9 Febrero 2014, 05:07 am »

1. Tengo dos preguntas se puede cambiar el tamaño de la consola para que se vea el tamaño que deseo en tiempo de ejecución o ya está predefino por Windows.

Sé que puedo dar click derecho propiedades y pueda cambiar eso, pero el usuario también lo vera. No tengo otra compu para probar así que agradecería si alguien sabe algo.

2. y la segunda como hago para que una que un carácter  quede inmóvil o no se mueva de ese lugar sin correr los espacios en consola.


« Última modificación: 9 Febrero 2014, 06:57 am por nolasco281 » En línea

Lo que se puede imaginar... se puede programar.
leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: Tamaño consola y caracter inmovil
« Respuesta #1 en: 9 Febrero 2014, 06:32 am »

1. Tengo dos preguntas se puede cambiar el tamaño de la consola para que se vea el tamaño que deseo en tiempo de ejecución o ya está predefino por Windows.

Se puede usando:

Código
  1. system("MODE ancho,alto");


2. y la segunda como hago para que una que un carácter  quede inmóvil o no se mueva de ese lugar sin correr los espacios en consola.

Se puede usando una función, por comodidad más que nada:

Código
  1. int gotoxy(int x, int y)
  2. {
  3.   COORD coord;
  4.   HANDLE h_stdout;
  5.   coord.X = x;
  6.   coord.Y = y;
  7.   if ((h_stdout = GetStdHandle(STD_OUTPUT_HANDLE)) == INVALID_HANDLE_VALUE)
  8.      return 0;
  9.   if (SetConsoleCursorPosition(h_stdout, coord) == 0)
  10.      return 0;
  11.   return 1;
  12. }

Y en el programa usas por ejemplo goto(20,30) para situar el cursor en ese punto concreto de la pantalla.

E incluso cambiar el color.

Te pongo un código de muestra:


Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. #include <windows.h>
  5. #define FIL 7
  6. #define COL 8
  7.  
  8. void color (int n);
  9. int gotoxy(int x, int y);
  10.  
  11. int main (){
  12.  
  13.  int i=0,j=0,k=0,fil=1,col=1;
  14.  system("MODE 60,35");
  15.  char a[7][8];
  16.  system ("pause");
  17.  system ("cls");
  18.  for (i=0;i<15;i++){
  19.    gotoxy (10+2*i,10);
  20.    printf ("*" );
  21.  }
  22.  Sleep (2000);
  23.  for (i=0;i<15;i++){
  24.    Sleep (250);
  25.    gotoxy (10+2*i,10);
  26.    printf ("X" );
  27.  }
  28.  
  29.  
  30.  
  31.  puts("\n\n");
  32.  system ("pause");
  33.  system ("cls");
  34.  for (i=0;i<27;i++)
  35.    printf ( "* ");
  36.  putchar ('\n');
  37.  for (i=0;i<27;i++){
  38.    Sleep(150);
  39.    gotoxy (2*i,0);
  40.    printf ( "X ");
  41.  }
  42.  for (i=0;i<27;i++){
  43.    Sleep(100);
  44.    gotoxy (2*i,4);
  45.    printf ( "X");
  46.  }
  47.  for (i=0;i<6;i++){
  48.    for (j=0;j<6;j++){
  49.      gotoxy (2*j+6,i+6);
  50.      printf ( "* ");
  51.    }
  52.  }
  53.  for (i=0;i<6;i++){
  54.    for (j=0;j<6;j++){
  55.      Sleep(250);
  56.      gotoxy (2*j+6,i+6);
  57.      printf ( "X");
  58.    }
  59.  }
  60.  putchar ('\n');
  61.  system ("pause");
  62.  system ("cls");
  63.  for (i=0;i<7;i++){
  64.    a[i][7]='\0';
  65.    for (j=0;j<7;j++){
  66.      if(j>=i-1 && j<i+1 && j>0 && j<6 && i<6)
  67.        a[i][j]='X';
  68.      else if(i==0 || j==0 || i==6 || j==6 )
  69.        a[i][j]='*';
  70.      else
  71.        a[i][j]='0';
  72.    }
  73.  }
  74.  putchar ('\n');
  75.  for (i=0;i<7;i++){
  76.    a[i][7]='\0';
  77.    for (j=0;j<7;j++){
  78.      if((i==j || j==i-1) && i>0 && j<6 && j>0 && i<6)
  79.        a[i][j]='X';
  80.      else if(i==0 || j==0 || i==6 || j==6 )
  81.        a[i][j]='*';
  82.      else
  83.        a[i][j]='0';
  84.    }
  85.  }
  86.  gotoxy (0,10);
  87.  for (i=0;i<7;i++){
  88.    for (j=0;j<7;j++){
  89.      printf ("%c ",a[i][j]);
  90.    }
  91.    putchar ('\n');
  92.  }
  93.  system ("pause");
  94.  
  95.  for (i=0;i<7;i++)
  96.    printf ("%s\n",a[i]);
  97.  system ("pause");
  98.  gotoxy (0,0);
  99.  
  100.  for (i=0;i<7;i++){
  101.    for (j=0;j<7;j++){
  102.      printf ("%c ",a[i][j]);
  103.    }
  104.    putchar ('\n');
  105.  }
  106.  fil=1,col=1;
  107.  while  (1){
  108.    Sleep(1000);
  109.    if (fil==FIL-2 && col==COL-3){
  110.      gotoxy (2*col,fil);
  111.      printf("%c ",'F');
  112.      break;
  113.    }
  114.    else if (a[fil+1][col]=='X' && fil<FIL){
  115.      color(215);
  116.      gotoxy (2*col,fil);
  117.      printf("%c ",'F');fil++;
  118.    }
  119.    else if (a[fil][col+1]=='X' && col<COL){
  120.      color(215);
  121.      gotoxy (2*(col),fil);
  122.      printf("%c ",'F');col++;
  123.    }
  124.    else if (a[fil-1][col]=='X' && fil>0){
  125.      color(215);
  126.      gotoxy (2*(col),fil);
  127.      printf("%c ",'F');fil--;
  128.    }
  129.    else if (a[fil][col-1]=='X' && col>0){
  130.      color(215);
  131.      gotoxy (2*col,fil);
  132.      printf(" %c ",'F');col--;
  133.    }
  134.  }
  135.  color(7);
  136.  gotoxy (0,30);
  137.  printf ( "Final!");
  138.  putchar ('\n');
  139.  system("pause");
  140.  return 0;
  141. }
  142.  
  143. void color (int n)
  144. {
  145.        SetConsoleTextAttribute(GetStdHandle (STD_OUTPUT_HANDLE), n );
  146. }
  147.  
  148.  
  149. int gotoxy(int x, int y)
  150. {
  151.   COORD coord;
  152.   HANDLE h_stdout;
  153.  
  154.   coord.X = x;
  155.   coord.Y = y;
  156.  
  157.   if ((h_stdout = GetStdHandle(STD_OUTPUT_HANDLE)) == INVALID_HANDLE_VALUE)
  158.      return 0;
  159.  
  160.   if (SetConsoleCursorPosition(h_stdout, coord) == 0)
  161.      return 0;
  162.  
  163.   return 1;
  164. }

¡¡¡¡ Saluditos! ..... !!!!




En línea

nolasco281


Desconectado Desconectado

Mensajes: 319


Ver Perfil
Re: Tamaño consola y caracter inmovil (solucionado)
« Respuesta #2 en: 9 Febrero 2014, 06:55 am »

Si vi ejemplos del goto pero te soy sincero no me gusta usarlo.

hace poco encontre una que es setxy();

dejo un ejemplo.

Código
  1. #include <constream>
  2. #include <conio.h>
  3.  
  4. using namespace conio;
  5. using namespace std;
  6.  
  7. int main() {
  8.  
  9.    cout << setxy(15,15) << "Y DAR COORDENADAS A EN LA PANTALLA";
  10.    cout << setxy(10, 10) << "POR FIN!!!";
  11.    cout <<setxy(13,13) << "Hola a todos";
  12.    cout <<setxy(20,20) << ":)";
  13.  
  14.    system("pause");
  15.    return 0;
  16. }

y gracias por lo de la pantalla ahorita la pruebo.
« Última modificación: 9 Febrero 2014, 06:57 am por nolasco281 » En línea

Lo que se puede imaginar... se puede programar.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

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