Título: programacion c++ Publicado por: kmatzar en 15 Mayo 2018, 01:19 am ayuda con este programa por favor.
Escriba un programa que, a través de una función, mueva un carácter a lo largo y ancho de la pantalla, de la siguiente manera: Si el usuario presiona la tecla I el carácter debe moverse una posición hacia arriba, si presiona la tecla K una posición hacia abajo, si presiona J una posición hacia la izquierda y si presiona L debe mover el carácter una posición a la derecha. I = arriba K = abajo J = izquierda L = derecha Título: Re: programacion c++ Publicado por: Serapis en 15 Mayo 2018, 18:48 pm Básicamente una letra en una posición horizontal supone una cadena de texto donde todas sus posiciones previas son espacios. Luego moverla a izquierda o derecha, es formar una nueva cadena con un espacio más o menos que antes.
La cuestión vertical, es más de lo mismo... por cada línea previa a la pedida, se escribe el salto de línea... luego subir o bajar es aumentar o reducir en 1 la cantidad de saltos de líneas... En pseudocódigo: Código: funcion PosicionarLetraEnPantalla(char letra, byte X, byte Y) NOTA: ten cuidado con los -1 y los tipos de datos, ...puede dar excepción... pero procura siempre usar un tipo de datos que se ajuste a lo razonable que se precisa. Inicialmente X e Y valen 0, como se quiere mover, implica que hay que recordar la posicion previa... ergo ya tenemos una función que borra la pantalla y dibuja la letra donde queremos, ahora nos falta una función que 'mueva' la letra una posición cada vez... Como letra he elegido 's', la serpiente que se mueve... :laugh: :laugh: :laugh: Código: char letra = 'S' p.d.: Cambiando los comentarios que por copia y pega, no correspondían en su nueva ubicación... aprovecho para... Aunque las optimizaciones, siempre se deben hacer una vez que ya funciona correctamente... y deberían correr a cargo del interesado... te explico que: Una opción más competente es crear un texto cuyo contenido sea una línea completa de espacios (del ancho de pantalla)... Al inicio del programa el primer carácter en ese texto es la letra a imprimir y luego cada vez se trata de remplazar la letra por un espacio en su ubicación actual y luego remplazar un espacio por la letra en la nueva ubicación de la letra ± 1 posición de la previa... ...así la cadena de texto a imprimir se crea una sola vez y se modifica solo cuando cambia el valor de 'x', (que en ese caso se remplazan solo dos caracteres en la cadena " S" por "S ", ó viceversa), y por tanto no se tendrá que reconstruir la cadena al completo cada vez que se 'mueva' la letra... |