Jogo em assembly, para processador do ICMC, para a aquisição de nota na discuplina de SSC0902 Organizacao e Arquitetura de Computadores ministrada pelo professor Eduardo do Valle Simões.
- Guilherme Chiarotto de Moraes 12745229
- Hugo Hiroyuki Nakamura 12732037
- Isaac Santos Soares 12175173
- Nicholas Estevão Pereira de Oliveira Rodrigues Bragança 12689616
Objetivo: Completar comanda (pedido) corretamente para obter pontos. Há apenas uma comanda por fase. Erros no pedido causam perda de pontos. Não haverá sistema de tempo. Complexificação das comandas com pedidos vegetarianos, veganos ou com observações (ex: kids) que exigem modificação da receita padrão. Só carrega um ingrediente por vez. Só pode pegar ingrediente se estiver com a mão vazia. Bancada com ingredientes, com lixeira e com local de entrega dos ingredientes. Movimentação apenas na horizontal. Espaço pega ingrediente, coloca na entrega ou descarta. Há 8 ingredientes possíveis. Cada ingrediente é um número binário. Para adicionar um ingrediente ao prato basta fazer OR entre o ingrediente e o prato. Obs: Possibilidade de implementação de livro de receitas (para criação de pratos complexos). Não é possível descartar o prato nem remover ingrediente que foi adicionado.
Opcao: var #1 // opção escolhida no menu.
Comandas: var #5 // vetor de todas as comandas definidas
ComandaAtual: var #1
Receitas: var #20 // todas as receitas possiveis no jogo
IndiceComandaAtual: var #1
Prato: var #1 // “Soma” dos ingrediente que o usuario colocou
Ingrediente: var #1 // ingrediente na mao.
MaoVazia: var #1 // flag de
NumeroPratosCorretos: var #1
NomeRestaurante: var #41
TeclaDigitada: var #1
main:
Seta parâmetros e variáveis…
ImprimeTelaOpcoes
LoopMenu
LoopMenu:
EntradaTeclado
if (Opcao == tutorial)
ImprimeTelaTutorial
LoopMenu
if (Opcao == iniciar)
LerNomeRestaunte
GerarComandas
ImprimeTelaJogo
LoopJogo
if (Opcao == sair)
FechaJogo
LoopJogo:
EntradaTeclado
if(TeclaDigitada == esquerda)
moveEsquerda
if(TeclaDigitada == direita)
moveDireita
if(TeclaDigitada == espaco)
if(estaSobreBancada)
PegaOuColocaOuDescartaIngrediente
if(estaSobreCampainha) (Isaac e Guilherme)
ComparaPratoComComanda
If(PratoEstaCorreto)
AtualizaPontos
Incrementa IndiceComandaAtual
If(IndiceComandaAtual == 6)
FimDoJogo – Exibir tela final com pontuacao (Isaac e Guilherme)
ImprimeTelaJogo
LoopJogo
LerNomeRestaurante:
– Imprime tela ler nome do restaurante
(Ler String jogo da Forca …)
EntradaTeclado:
TeclaDigitada = 255
LoopTeclado:
TeclaDigitada = INCHAR
if(TeclaDigitada == 255) //digitou nao digitou nada
LoopTeclado
ImprimeTelaJogo:
AtualizaComanda
ImprimeComanda
ImprimeBancada
ResetaPrato
GerarComandas:
(Usa nome do restaurante para gerar comandas)
(Preenche vetor de comandas)
FimDoJogo:
–Imprime tela de fim
-
Funções
- main
- Loop Menu (Isaac)
- LoopJogo (Hugo)
- EstaSobreCampainha (Isaac e Guilherme)
- AtualizaPontos (Isaac e Guilherme)
- EntradaTeclado (Varias entradas mas nao uma função)
- ImprimeTelaJogo
- GerarNumeroAleatoirio
- GerarComandas (Nicholas)
- FimDoJogo (Isaac e Guilherme)
-
Sprites
- Cenário
- Cozinha
- Bancada
- Campainha
- Prato (Bandeija)
- Pontuação
- Comandas
- Ingredientes
- Personagem
- Telas
- Menu Principal
- Tutorial
- Fim de Jogo
- Cenário
-
Encontrar e Arrumar Bugs
- Erro de comanda errada (1 item só errado nao é contabilizado como errado)