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.
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: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: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:#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! ..... !!!!
(http://st.forocoches.com/foro/images/smilies/aaaaa.gif)
Si vi ejemplos del goto pero te soy sincero no me gusta usarlo.
hace poco encontre una que es setxy();
dejo un ejemplo.
#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.