Este instructivo ofrece una guía básica y práctica para iniciar el aprendizaje de C#. Está pensado como un resumen condensado de conceptos esenciales para trabajar en consola, y sirve como apoyo a un texto más amplio —Fundamentos de la Programación de Videojuegos— donde se abordan las temáticas en mayor profundidad y con ejemplos orientados a producción de videojuegos.
En C# la ejecución comienza en el método Main
. A continuación se muestra el esqueleto básico de un programa de consola y una breve explicación de sus partes.
using System; // Permite usar tipos básicos del framework
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hola, mundo");
}
}
Explicación: using System; importa utilidades del framework; class Program define la clase contenedora; Main es el punto de entrada; Console.WriteLine escribe en la consola.
Las variables almacenan valores en memoria. En C# cada variable tiene un tipo estático que determina qué datos puede contener y qué operaciones se le pueden aplicar.
int edad = 20;
float altura = 1.75f;
double peso = 70.5;
string nombre = "Ana";
bool esEstudiante = true;
const int MAX_VIDA = 10;
Consejos: usa nombres descriptivos, inicializa variables y emplea constantes cuando el valor no deba cambiar.
La interacción básica con el usuario en programas de consola se realiza mediante Console.WriteLine()
y Console.ReadLine()
. Lea siempre como texto y convierta cuando necesite números.
Console.WriteLine("Ingresa tu nombre:");
string nombre = Console.ReadLine();
Console.WriteLine("Hola, " + nombre + "!");
Console.WriteLine("Ingresa tu edad:");
int edad = int.Parse(Console.ReadLine());
Nota: int.Parse()
lanza una excepción si la cadena no es numérica; para manejo seguro utilice int.TryParse()
.
Las estructuras condicionales permiten ejecutar distintos bloques de código según una condición. Se usan if / else
para decisiones binarias o jerárquicas y switch / case
cuando hay múltiples opciones discretas.
int edad = 18;
if (edad >= 18)
{
Console.WriteLine("Eres mayor de edad");
}
else
{
Console.WriteLine("Eres menor de edad");
}
int opcion = 2;
switch (opcion)
{
case 1:
Console.WriteLine("Opción 1 seleccionada");
break;
case 2:
Console.WriteLine("Opción 2 seleccionada");
break;
default:
Console.WriteLine("Opción inválida");
break;
}
Los bucles permiten repetir instrucciones varias veces. Use for
cuando conoce la cantidad de repeticiones y while
cuando la repetición depende de una condición dinámica.
for (int i = 1; i <= 5; i++)
{
Console.WriteLine("Número: " + i);
}
int i = 1;
while (i <= 5)
{
Console.WriteLine("Número: " + i);
i++;
}
Las funciones permiten organizar la lógica en piezas reutilizables. Pueden devolver un valor (int
, bool
, etc.) o no devolver nada (void
). El paso por referencia (ref
) posibilita que una rutina modifique la variable original.
void
void Saludar(string nombre)
{
Console.WriteLine("Hola, " + nombre + "!");
}
// Uso
Saludar("Ana");
ref
)void Aumentar(ref int valor, int cantidad)
{
valor += cantidad;
}
int energia = 5;
Aumentar(ref energia, 3); // energia ahora es 8
int Sumar(int a, int b)
{
return a + b;
}
int resultado = Sumar(3, 4); // 7
Math.Clamp
Para mantener una variable dentro de un rango (por ejemplo 0–10) use Math.Clamp
, que garantiza que el valor no sea menor ni mayor que los límites especificados.
int vida = 12;
vida = Math.Clamp(vida, 0, 10); // vida será 10
La clase Random
permite generar números aleatorios para eventos o comportamientos no deterministas. Cree una instancia y use Next()
indicando el rango deseado.
Random rnd = new Random();
int numero = rnd.Next(1, 4); // genera 1, 2 o 3
Desarrollar un videojuego textual en C# usando la consola. El jugador administra tres energías (fuerza, espíritu, equilibrio) durante siete días. Cada acción diaria modifica las energías y puede generar eventos aleatorios. El objetivo es mantener las energías por encima de cero hasta completar los siete días.
Requisitos técnicos: uso de condicionales, bucles, switch, rutinas (void y return), paso por referencia (ref
), Console.WriteLine/ReadLine
y Math.Clamp
.
void RecolectarAlimentos(ref int fuerza, ref int espiritu, ref int equilibrio)
void CompartirComunidad(ref int fuerza, ref int espiritu, ref int equilibrio)
void CaminarBosque(ref int fuerza, ref int espiritu, ref int equilibrio)
void DescansarFogon(ref int fuerza, ref int espiritu, ref int equilibrio)
bool JuegoContinua(int fuerza, int espiritu, int equilibrio, int dia)
Ir al tutorial interactivo "Siete días en el Wallmapu"