Principales respuestas
Imitar lo que hace este The Thing (La Cosa)

Pregunta
-
Hola:
Quiero hacer los dibujos exactamente lo mismo como en este ordenador ochentero de esta película exactamente indicado en el minuto 6:56 de este vídeo.
Lo que he hecho hasta ahora son solo textos, en el cual no se el motivo, no me sale el rellenado de la parte derecha de la pantalla con el │ ASCII 179.
¿Alguna idea de como hacerlo?
Por lo que parece, a pesar de que es del 1982, hoy en día exige mucho tiempo y complicado.
Saludos.
http://electronica-pic.blogspot.com
- Editado Metaconta sábado, 4 de mayo de 2019 14:35
Respuestas
-
Hola intenta con esto
static void Main(string[] args) { DrawMarco(1, 1, 20, 10); Console.ReadKey(); } private static void DrawMarco(int v1, int v2, int v3, int v4) { Console.BackgroundColor = ConsoleColor.Black; Console.ForegroundColor = ConsoleColor.Blue; Console.CursorVisible = false; gotoXY(v1, v2, "┌"); for (int i = v1 + 1; i < v3; i++) { gotoXY(i, v2, "─"); }gotoXY(v3, v2, "┐"); for (int i = v2 + 1; i < v4; i++) { gotoXY(v3, i, "│"); }gotoXY(v3, v4, "┘"); for (int i = v3 - 1; i > v1; i--) { gotoXY(i, v4, "─"); }gotoXY(v1, v4, "└"); for (int i = v4 - 1; i > v2; i--) { gotoXY(v1, i, "│"); } Console.CursorVisible = true; } private static void gotoXY(int v1, int v2, string cadena) { Console.SetCursorPosition(v1, v2); Console.WriteLine(cadena); Thread.Sleep(50); }
- Marcado como respuesta Metaconta domingo, 5 de mayo de 2019 7:13
Todas las respuestas
-
hola
>>Por lo que parece, a pesar de que es del 1982, hoy en día exige mucho tiempo y complicado.
creo que alli te equivocas, no es un tema de tiempo o que tan complicado, sino que quieres forzar un lenguaje para lo cual no esta pensado volver en tiempo, c# y .net mira de cara al futuro y evoluciona, se itegra con desarrollo mobile(Xamarin o WPF), con servicio en la nube (Azure), etc
Si quieres forzar algo a ir hacia atras estas llendo contra la corriente
Si quieres algo anticuado usa algo anticuado, programa en C++ o Clipper
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina -
Hola intenta con esto
static void Main(string[] args) { DrawMarco(1, 1, 20, 10); Console.ReadKey(); } private static void DrawMarco(int v1, int v2, int v3, int v4) { Console.BackgroundColor = ConsoleColor.Black; Console.ForegroundColor = ConsoleColor.Blue; Console.CursorVisible = false; gotoXY(v1, v2, "┌"); for (int i = v1 + 1; i < v3; i++) { gotoXY(i, v2, "─"); }gotoXY(v3, v2, "┐"); for (int i = v2 + 1; i < v4; i++) { gotoXY(v3, i, "│"); }gotoXY(v3, v4, "┘"); for (int i = v3 - 1; i > v1; i--) { gotoXY(i, v4, "─"); }gotoXY(v1, v4, "└"); for (int i = v4 - 1; i > v2; i--) { gotoXY(v1, i, "│"); } Console.CursorVisible = true; } private static void gotoXY(int v1, int v2, string cadena) { Console.SetCursorPosition(v1, v2); Console.WriteLine(cadena); Thread.Sleep(50); }
- Marcado como respuesta Metaconta domingo, 5 de mayo de 2019 7:13
-
hola
>>Por lo que parece, a pesar de que es del 1982, hoy en día exige mucho tiempo y complicado.
creo que alli te equivocas, no es un tema de tiempo o que tan complicado, sino que quieres forzar un lenguaje para lo cual no esta pensado volver en tiempo, c# y .net mira de cara al futuro y evoluciona, se itegra con desarrollo mobile(Xamarin o WPF), con servicio en la nube (Azure), etc
Si quieres forzar algo a ir hacia atras estas llendo contra la corriente
Si quieres algo anticuado usa algo anticuado, programa en C++ o Clipper
saludos
Leandro Tuttini
Hola:
Antes que nada gracias por el código y la información.
Este código parace lo de resolver los cuadros.
static void Main(string[] args) { DrawMarco(1, 1, 20, 10); Console.ReadKey(); } private static void DrawMarco(int v1, int v2, int v3, int v4) { Console.BackgroundColor = ConsoleColor.Black; Console.ForegroundColor = ConsoleColor.Blue; Console.CursorVisible = false; gotoXY(v1, v2, "┌"); for (int i = v1 + 1; i < v3; i++) { gotoXY(i, v2, "─"); }gotoXY(v3, v2, "┐"); for (int i = v2 + 1; i < v4; i++) { gotoXY(v3, i, "│"); }gotoXY(v3, v4, "┘"); for (int i = v3 - 1; i > v1; i--) { gotoXY(i, v4, "─"); }gotoXY(v1, v4, "└"); for (int i = v4 - 1; i > v2; i--) { gotoXY(v1, i, "│"); } Console.CursorVisible = true; } private static void gotoXY(int v1, int v2, string cadena) { Console.SetCursorPosition(v1, v2); Console.WriteLine(cadena); Thread.Sleep(50); }
C# en modo consola mientra exista se puede hacer todo antiguo, al menos su aspecto, solo eso, la apariencia, es la ventaja que tiene las tecnologías de ahora. Podría usar también C++, ahora estoy con C#, también lo hace.
Sigo con ello.
http://electronica-pic.blogspot.com
-
Buenas:
El código completo hasta ahora es este gracias al compañero.
using System; using System.Threading; namespace The_Thing_La_Cosa_Consola_01_cs { class Program { static void Main(string[] args) { Console.Title = "The Thing - La Cosa - C#"; Console.WindowWidth = 38; // X ancho. Console.WindowHeight = 15; // Y altura. int tiempo = 1; // Cursor invisible. Console.CursorVisible = false; // Dibujar cuadro. DrawMarco(1, 1, 35, 14); // Escribir textos. Console.SetCursorPosition(2, 4); Escribir("PROJECTION: \n", 25); Console.SetCursorPosition(2, 5); Escribir("IF INTRUDER ORGANISM REACHES \n", 25); Console.SetCursorPosition(2, 6); Escribir("CIVILIZED AREAS . . . \n", 25); Thread.Sleep(100); Console.SetCursorPosition(2, 10); Escribir("ENTIRE WORLD POPULATION INFECTED \n", 25); Console.SetCursorPosition(2, 11); Escribir("27,000 HOURS FROM FIRST CONTACT. \n", 25); Console.ReadKey(); } public static void Escribir(string Cadena, int tiempo) { foreach (char letra in Cadena) { Console.Write(letra); Thread.Sleep(tiempo); } } private static void DrawMarco(int v1, int v2, int v3, int v4) { Console.ForegroundColor = ConsoleColor.Cyan; // Texto azul claro. Console.BackgroundColor = ConsoleColor.DarkBlue; // Fondo azul oscuro. Console.Clear(); // Para poner fondo azul oscuro en la pantalla completa. Console.CursorVisible = false; gotoXY(v1, v2, "┌"); for (int i = v1 + 1; i < v3; i++) { gotoXY(i, v2, "─"); } gotoXY(v3, v2, "┐"); for (int i = v2 + 1; i < v4; i++) { gotoXY(v3, i, "│"); } gotoXY(v3, v4, "┘"); for (int i = v3 - 1; i > v1; i--) { gotoXY(i, v4, "─"); } gotoXY(v1, v4, "└"); for (int i = v4 - 1; i > v2; i--) { gotoXY(v1, i, "│"); } //Console.CursorVisible = true; } private static void gotoXY(int v1, int v2, string cadena) { Console.SetCursorPosition(v1, v2); Console.WriteLine(cadena); Thread.Sleep(1); } } }
Saludos.http://electronica-pic.blogspot.com
-
-