Ejercicios de C# · Parte 1
Instrucciones generales
Antes de empezar a programar, asegúrate de que tienes bien configurado el editor de código Visual Studio Code: sigue los pasos de Configuración básica de VSCode.
Puedes revisar también la sección de introducción a Unity para familiarizarte con el motor de videojuegos.
Para realizar estos ejercicios, crea un proyecto Unity 2D y sigue los siguientes pasos:
- Crea una carpeta llamada “Images” y copia dentro el fichero “Nave.png” que tienes disponible en la tarea de aules.
- Desde Unity, arrastra el recurso de la nave hasta la escena de juego
- Crea una carpeta llamada “Scripts” dentro de tu proyecto (como carpeta hija de “Assets”).
- Dentro de la carpeta “Scripts”, crea un script para cada ejercicio, con un nombre del tipo “ej01” (por ejemplo).
- Asocia el script del ejercicio con el que vayas a trabajar al objeto “Nave”. Para ello simplemente arrastra el script hasta el objeto de juego “Nave” que encontrarás en la ventana de jerarquía.
Un script activo cada vez
Cuando termines con un ejercicio y quieras empezar con otro, no te olvides de desactivar el componente del script del ejercicio anterior. Para ello pulsa en el objeto de juego de la nave en la ventana de jerarquía y, desde la ventana del inspector, desmarca el checkbox que encontrarás a la izquierda del nombre del script.

Ejercicio 1-1. Hola Mundo
Debug.Log Dificultad ★☆☆
Escribe un script en C# para que la nave salude por consola cuando arranque el juego utilizando el método Debug.Log.
Pista
Escribe la llamada dentro del método Start, que Unity ejecuta una vez al arrancar el juego. El texto va entre comillas dobles: Debug.Log("...");
Ejercicio 1-2. Hola Mundo 2
string variables Dificultad ★☆☆
- Copia el script del ejercicio anterior.
- Modifícalo de modo que el mensaje se almacene primero en una variable de tipo
string. - Llama a
Debug.Logpasando dicha variable como argumento.
Pista
Declara la variable dentro de Start, antes de la llamada a Debug.Log, y pásale su nombre sin comillas.
Ejercicio 1-3. Proyectiles disponibles
int suma Dificultad ★☆☆
Diario de a bordo
Tu nave tiene 2 cañones, cada uno con un número de proyectiles que va de 0 a 10.
- Crea una nueva variable de tipo
inte inicialízala con la suma del número de proyectiles que tienen ambos cañones. - Muestra en pantalla el número total de proyectiles de la nave.
Pista
Puedes usar una variable para cada cañón y sumarlas en una tercera.
Ejercicio 1-4. Esquivando meteoritos
float división Dificultad ★★☆
Diario de a bordo
Tu nave ha detectado una inminente colisión con un meteorito. Para poder esquivarlo debes mover la nave exactamente el resultado de realizar la división entre los números 13 y 2.
- Crea una nueva variable de tipo
floatllamadamovimientoe inicialízala con la división de los números 13 y 2. - Muestra el resultado de la división por pantalla.
-
Mueve la nave con esta orden:
transform.Translate(new Vector2(movimiento, 0));
Consejo
De momento no hace falta que entiendas lo que hace transform.Translate: lo veremos más adelante.
6.5
Pista
Si divides 13 / 2 obtendrás 6: la división entre dos enteros es una división entera. Prueba a escribir uno de los números como float, por ejemplo 13f.
Ejercicio 1-5. Cinturón de asteroides
int operadores precedencia Dificultad ★★☆
Diario de a bordo
En esta ocasión tienes que conseguir atravesar un cinturón de asteroides.
-
Crea una variable de tipo
intpara almacenar el resultado de cada una de las siguientes operaciones:-6 + 3 * 5 (13 - 2) * 7 (5 + -2) * (-20 / 10) (-75 + 4) / (5 - 4) -
Muestra el resultado de cada operación por pantalla.
- Suma el resultado de todas las operaciones en una variable
movimientoy muéstralo también. -
Mueve la nave con el resultado con el siguiente comando:
transform.Translate(new Vector2(0, movimiento));
9
77
-6
-71
9
Pista
Crea una variable para cada operación (op1, op2…). C# calcula primero * y / y después + y -, salvo que uses paréntesis, igual que en matemáticas.
Ejercicio 1-6. Uso de comentarios
comentarios Dificultad ★☆☆
Copia el script del ejercicio anterior e introduce dos comentarios, uno en línea (con //) y otro multilínea (con /* ... */).
Pista
Los comentarios no cambian lo que hace el programa: úsalos para explicar qué hace cada parte del código.
Ejercicio 1-7. HUD de la nave
operadores concatenación % Dificultad ★★☆
Diario de a bordo
El HUD de la nave se ha estropeado y debes improvisar uno nuevo con una pantalla en modo texto: aprende a combinar cadenas para mostrar mensajes complejos.
- Crea dos variables de tipo
intcon dos números cualesquiera. - Muestra el resultado de sumar, restar, multiplicar, dividir y calcular el módulo de ambas variables.
13 + 3 = 16
13 - 3 = 10
13 x 3 = 39
13 / 3 = 4
13 mod 3 = 1
Concatenar cadenas
Se pueden concatenar cadenas de texto con valores de variables para que aparezcan como una única línea de texto. Por ejemplo:
Debug.Log("El resultado de sumar " + operador1 + " y " + operador2 + " es " + resultado);
Pista
El operador módulo (resto de la división) en C# es %. Los símbolos x y mod que aparecen en la salida son texto: van dentro de la cadena.
Ejercicio 1-8. Las tablas de Telémaco
concatenación operadores Dificultad ★☆☆
Diario de a bordo
En tu nave, la Odiseus, viaja también tu hijo Telémaco. Aunque estéis perdidos por el espacio, necesitas que aprenda las tablas de multiplicar. Crea un script que calcule la tabla de multiplicar de un número y la muestre por el HUD de la nave.
- Crea una variable de tipo
inte inicialízala con un número del 1 al 9. - Muestra en pantalla la tabla de multiplicar de dicho número.
5 x 1 = 5
5 x 2 = 10
5 x 3 = 15
5 x 4 = 20
5 x 5 = 25
5 x 6 = 30
5 x 7 = 35
5 x 8 = 40
5 x 9 = 45
5 x 10 = 50
Pista
Todas las líneas siguen el mismo patrón: solo cambia el número por el que multiplicas. Recuerda que en una misma concatenación puedes mezclar texto y operaciones.
Ejercicio 1-9. Cambio de rumbo
float media Dificultad ★★☆
Diario de a bordo
La Odiseus ha detectado un planeta con vida en la próxima estrella y decides ir a investigarlo. Rota tu nave para dirigirte al destino elegido.
- Crea 4 variables de tipo
floate inicialízalas con un valor cualquiera. - Calcula la media de dichos valores y almacena el resultado en una nueva variable
floatllamadarotation. - Muestra el resultado de calcular la media por pantalla.
-
Rota tu nave con el siguiente comando:
transform.Rotate(new Vector3(0, 0, rotation));
Nota
La rotación se pasa en grados, de 0 a 360. Si es un valor muy pequeño puede que no notes la rotación.
Pista
La media es la suma de los valores dividida entre cuántos hay. Pon la suma entre paréntesis para que se calcule antes que la división.
Ejercicio 1-10. Temperatura de la nave
int float conversiones Dificultad ★★★
Diario de a bordo
Los sensores de la Odiseus miden la temperatura en grados Celsius, pero parte de la tripulación solo entiende Kelvin o Fahrenheit. Haz que el HUD muestre la temperatura en las tres escalas.
- Crea una variable de tipo
inte introduce una temperatura en grados Celsius. -
Crea dos variables de tipo
floatpara calcular la misma temperatura en grados Kelvin y en grados Fahrenheit, con estas fórmulas:Kelvin = Celsius + 273 Fahrenheit = Celsius * 18 / 10 + 32 -
Muestra el resultado en pantalla cuando lo hayas calculado.
Cuidado
¡Cuidado con las conversiones implícitas!
25 °C = 298 K = 77 °F
Pista
Con enteros, Celsius * 18 / 10 pierde los decimales (con 21 °C daría 37 en lugar de 37.8). Convierte a float antes de dividir.