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
- Tecla
h
abre tela de ajuda
Requisitos de implementação:
- Ser desenvolvido em C padrão (C99 ou similar)
- Ser implementado em vários arquivos
.c
e.h
separados, 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
-Wall
sem erros nem avisos - Usar o sistema Make para compilação, com ao menos os seguintes alvos:
all
: compila e gera o executávelclean
: 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 pacote
ncurses-examples
disponível no Debian e derivados (Ubuntu, Mint, etc).
Uso de Ncurses em jogos: