Jogo ASCII
Projeto: desenvolver um jogo em ASCII para executar em terminal texto no Linux.
Jogos sugeridos:
- … (sugestões dos alunos podem ser analisadas)
Requisitos de execução:
- Executar em um terminal de texto do Linux
- Ter resolução máxima 160×50 caracteres
- Usar cores!
- Mostrar scores/datas no jogo; os scores devem ser salvos em um arquivo
- Teclahabre tela de ajuda
Requisitos de implementação:
- Ser desenvolvido em C padrão (C99 ou similar)
- Ser implementado em vários arquivos.ce.hseparados, respeitando as regras de organização de código
- Usar a biblioteca Ncurses para a gestão do terminal
- Usar alocação de memória dinâmica
- Usar estruturas
- Compilar com o flag-Wallsem erros nem avisos
- Usar o sistema Make para compilação, com ao menos os seguintes alvos:- all: compila e gera o executável
- clean: remove os arquivos temporários (mantém o executável)
- purge: remove tudo, deixando somente os fontes
 
Para instalar os arquivos de desenvolvimento da biblioteca Ncurses no Debian, Ubuntu e correlatos:
sudo apt-get install libncurses5-dev
O código de inicialização da biblioteca NCurses, com as configurações necessárias para este projeto, é o seguinte:
initscr () ; // inicializa a biblioteca ncurses raw () ; // ler teclas de controle (^C, ^Z, etc) nodelay (stdscr, TRUE) ; // leitura não-bloqueante do teclado keypad (stdscr, TRUE) ; // ativa leitura de teclas de setas, Fn, etc noecho () ; // não escreve as teclas lidas na tela curs_set (0) ; // esconde o cursor do terminal
Estrutura típica de um programa de jogo:
- Beginner's Guide to Roguelikes (ler ao menos a parte 1)
Material de apoio para Ncurses:
- Ncurses Programming Howto (leia com atenção a seção sobre inicialização)
- Exemplos do ncurses no Linux, em/usr/lib/ncurses/examples/(pacotencurses-examples)
- Código-fonte do pacotencurses-examplesdisponível no Debian e derivados (Ubuntu, Mint, etc).
Uso de Ncurses em jogos: