Tamaño consola y caracter inmovil (solucionado)

Iniciado por nolasco281, 9 Febrero 2014, 05:07 AM

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

nolasco281

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.
Lo que se puede imaginar... se puede programar.

leosansan

Cita de: nolasco281 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.

Se puede usando:

Código (cpp) [Seleccionar]
system("MODE ancho,alto");

Cita de: nolasco281 en  9 Febrero 2014, 05:07 AM

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 (cpp) [Seleccionar]
int gotoxy(int x, int y)
{
   COORD coord;
   HANDLE h_stdout;
   coord.X = x;
   coord.Y = y;
   if ((h_stdout = GetStdHandle(STD_OUTPUT_HANDLE)) == INVALID_HANDLE_VALUE)
      return 0;
   if (SetConsoleCursorPosition(h_stdout, coord) == 0)
      return 0;
   return 1;
}


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 (cpp) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h>
#define FIL 7
#define COL 8

void color (int n);
int gotoxy(int x, int y);

int main (){

  int i=0,j=0,k=0,fil=1,col=1;
  system("MODE 60,35");
  char a[7][8];
  system ("pause");
  system ("cls");
  for (i=0;i<15;i++){
    gotoxy (10+2*i,10);
    printf ("*" );
  }
  Sleep (2000);
  for (i=0;i<15;i++){
    Sleep (250);
    gotoxy (10+2*i,10);
    printf ("X" );
  }



  puts("\n\n");
  system ("pause");
  system ("cls");
  for (i=0;i<27;i++)
    printf ( "* ");
  putchar ('\n');
  for (i=0;i<27;i++){
    Sleep(150);
    gotoxy (2*i,0);
    printf ( "X ");
  }
  for (i=0;i<27;i++){
    Sleep(100);
    gotoxy (2*i,4);
    printf ( "X");
  }
  for (i=0;i<6;i++){
    for (j=0;j<6;j++){
      gotoxy (2*j+6,i+6);
      printf ( "* ");
    }
  }
  for (i=0;i<6;i++){
    for (j=0;j<6;j++){
      Sleep(250);
      gotoxy (2*j+6,i+6);
      printf ( "X");
    }
  }
  putchar ('\n');
  system ("pause");
  system ("cls");
  for (i=0;i<7;i++){
    a[i][7]='\0';
    for (j=0;j<7;j++){
      if(j>=i-1 && j<i+1 && j>0 && j<6 && i<6)
        a[i][j]='X';
      else if(i==0 || j==0 || i==6 || j==6 )
        a[i][j]='*';
      else
        a[i][j]='0';
    }
  }
  putchar ('\n');
  for (i=0;i<7;i++){
    a[i][7]='\0';
    for (j=0;j<7;j++){
      if((i==j || j==i-1) && i>0 && j<6 && j>0 && i<6)
        a[i][j]='X';
      else if(i==0 || j==0 || i==6 || j==6 )
        a[i][j]='*';
      else
        a[i][j]='0';
    }
  }
  gotoxy (0,10);
  for (i=0;i<7;i++){
    for (j=0;j<7;j++){
      printf ("%c ",a[i][j]);
    }
    putchar ('\n');
  }
  system ("pause");
 
  for (i=0;i<7;i++)
    printf ("%s\n",a[i]);
  system ("pause");
  gotoxy (0,0);

  for (i=0;i<7;i++){
    for (j=0;j<7;j++){
      printf ("%c ",a[i][j]);
    }
    putchar ('\n');
  }
  fil=1,col=1;
  while  (1){
    Sleep(1000);
    if (fil==FIL-2 && col==COL-3){
      gotoxy (2*col,fil);
      printf("%c ",'F');
      break;
    }
    else if (a[fil+1][col]=='X' && fil<FIL){
      color(215);
      gotoxy (2*col,fil);
      printf("%c ",'F');fil++;
    }
    else if (a[fil][col+1]=='X' && col<COL){
      color(215);
      gotoxy (2*(col),fil);
      printf("%c ",'F');col++;
    }
    else if (a[fil-1][col]=='X' && fil>0){
      color(215);
      gotoxy (2*(col),fil);
      printf("%c ",'F');fil--;
    }
    else if (a[fil][col-1]=='X' && col>0){
      color(215);
      gotoxy (2*col,fil);
      printf(" %c ",'F');col--;
    }
  }
  color(7);
  gotoxy (0,30);
  printf ( "Final!");
  putchar ('\n');
  system("pause");
  return 0;
}

void color (int n)
{
        SetConsoleTextAttribute(GetStdHandle (STD_OUTPUT_HANDLE), n );
}


int gotoxy(int x, int y)
{
   COORD coord;
   HANDLE h_stdout;

   coord.X = x;
   coord.Y = y;

   if ((h_stdout = GetStdHandle(STD_OUTPUT_HANDLE)) == INVALID_HANDLE_VALUE)
      return 0;

   if (SetConsoleCursorPosition(h_stdout, coord) == 0)
      return 0;

   return 1;
}


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



nolasco281

#2
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 (cpp) [Seleccionar]
#include <constream>
#include <conio.h>

using namespace conio;
using namespace std;

int main() {
 
   cout << setxy(15,15) << "Y DAR COORDENADAS A EN LA PANTALLA";
   cout << setxy(10, 10) << "POR FIN!!!";
   cout <<setxy(13,13) << "Hola a todos";
   cout <<setxy(20,20) << ":)";
 
   system("pause");
   return 0;
}


y gracias por lo de la pantalla ahorita la pruebo.
Lo que se puede imaginar... se puede programar.