Jogo ASCII

Projeto: desenvolver um jogo em ASCII para executar em terminal texto no Linux.

Jogos sugeridos:

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
  • 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
  • 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á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:

Material de apoio para Ncurses:

Uso de Ncurses em jogos: