Acá encontrarás ejemplos en distintos lenguajes, podés elegir el que prefieras y probarlo antes del sábado para validar que tu entorno esté bien configurado.
Prueba de funcionamiento: oprimir la tecla "1" para dibujar un pixel blanco, soltarla para dibujar un pixel negro.
sudo apt install build-essential libsdl2-dev
g++ taller.cpp -Wall -O2 -o taller -lSDL2
./taller
Ejemplo básico con rust-sdl2. Cargo.toml. Ubicar los archivos de la siguiente forma:
Luego correr taller/Cargo.toml
taller/src/main.rs
cargo build
y cargo run
Ejemplo básico con pygame
Bajar dependencias con pip3 install pygame
, luego correr python taller.py
Ejemplo básico con AWT
Usar un IDE (por ejemplo IntelliJ) o los siguientes comandos:
sudo apt install openjdk-11-jdk-headless
javac Taller.java
java Taller
Si querés usar otro lenguaje acá hay algunos recursos que podés ir investigando para realizarlo. Lo mínimo sería: (Cualquier duda escribime por Telegram)
Alternativa C/C++: Si preferís compilarlo old-school para x86 de 16 bits con TurboC, podés usar el modo 13h y escribir directo en la memoria de video (0xA0000) y leer del teclado usando el BIOS keyboard buffer
Alternativa C/C++: Immediate2d: una biblioteca de gráficos tiny, solo Windows
Alternativa C/C++: Minifb: una biblioteca tiny pero multiplatforma
Alternativa Rust: Rust_Minifb, una biblioteca más liviana que SDL
Casi que está todo resuelto acá, se pueden usar los eventos KeyDown/KeyUp. Para leer y dibujar píxels se puede agregar un Picturebox en un form.
Para leer desde las teclas se puede usar distintos pines de GPIO. Como pantalla se puede usar un mini OLED SSD1306, que está soportado nativamente vía I2C o SPI.
Se puede agregar un componente WriteableBitmap a un formulario, y luego con wBitmap.WritePixels(...) se pueden manipular sus píxeles. Los eventos de teclado se pueden capturar directo en el form.