Título: Programa C# rectángulo hueco Ayudaa!!!
Publicado por: RazaMex en 2 Marzo 2019, 07:42 am
// Tengo que hacer que mi programa haga un rectángulo hueco que tenga esta forma, lo único que he conseguido es que salga completo, ademas de que las X tienen que ir saliendo como hace mi programa, alguna idea de que puedo hace? D: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XX XX XX XX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX byte x=0, y=0; for(y=10;y<=13;y++){ for(x=10;x<=70;x++){ Console.SetCursorPosition(x,y); Console.WriteLine(" X "); x++; for(int w=0;w<=60000;w++){ for(int z=0;z<=100;z++){ } } } } Console.ReadKey(true);
Título: Re: Programa C# rectángulo hueco Ayudaa!!!
Publicado por: Serapis en 2 Marzo 2019, 10:09 am
Considera un poco que es eso de 'rectángulo hueco'... 1,2,3...ya. Son espacios, luego, hablamos de caracteres... si sabes poner 'x', supongo que también sabrás poner espacios ' ', luego es simplemente una cuestión aritmética de contar 'ovejitas' y 'cabras'...
Resuélvelo con lápiz y papel, luego codifica... intentado ceñirte a como lo has resuelto con lápiz y papel (seguir los pasos).
Título: Re: Programa C# rectángulo hueco Ayudaa!!!
Publicado por: Eleкtro en 2 Marzo 2019, 23:27 pm
Tu duda me ha inspirado a llevar a cabo un tipo reutilizable que sirve para representar un rectángulo (dibujable) en una aplicación de consola: - https://foro.elhacker.net/net/libreria_de_snippets_para_vbnet_compartan_aqui_sus_snippets-t378770.0.html;msg2186824#msg2186824
( puedes coger el código y usar cualquier conversor online a C#, o compilarlo en un archivo .dll y usarlo en tu proyecto de C#. ) (https://i.imgur.com/f0r5z6K.png) (https://i.imgur.com/aMxfrw8.png) Decisiones (o limitaciones) de diseño: Las propiedades son de solo lectura (para quitarme de lios). Es decir, para hacer cambios en el tamaño o posición del rectángulo, hay que crear una nueva instancia. - ya no lo son- No permite la asignación de coordenadas negativas (puesto que tampoco lo permite el método Console.SetCursorPos()), ni un tamaño (anchura ni altura) igual a cero, aunque esto último no se tiene en cuenta si se usa el constructor por defecto.
Modo de empleo (con el que tomé la primera imagen): Point rc1Pos = new Point(2, Console.CursorTop + 2); ConsoleRectangle rc1 = new ConsoleRectangle(rc1Pos, new Size(32, 4), '▌', '▀', '▐', '▄'); rc1.Write();
Point rc2Pos = new Point(2, Console.CursorTop + 2); ConsoleRectangle rc2 = new ConsoleRectangle(rc2Pos, new Size(32, 4), 'X', 'X', 'X', 'X'); rc2.Write();
Point rc3Pos = new Point(2, Console.CursorTop + 2); ConsoleRectangle rc3 = new ConsoleRectangle(rc3Pos, new Size(11, 5), '▌', '▀', '▐', '▄'); rc3.Write();
Point rc4Pos = new Point(rc3Pos.X + (rc3.Width / 2), rc3Pos.Y + +(rc3.Height / 2)); ConsoleRectangle rc4 = new ConsoleRectangle(rc4Pos, rc3.Size, 'X', 'X', 'X', 'X'); rc4.Write();
Console.SetCursorPosition(rc1.X + 9, rc1.Y); Console.Write(" Hello World "); Console.SetCursorPosition(rc1.X + 6, rc1.Y + 2); Console.Write(" By ElektroStudios ");
Console.CursorVisible = false; Console.ReadKey(intercept:true); Saludos.
|