Arquitectura de Computadores - UMacee.uma.pt/edu/ac/0405/projecto-ac-0405.pdf · Arquitectura de...

7
Arquitectura de Computadores Licenciatura em Engenharia Informática (2º ano – 1º semestre) Licenciatura em Engenharia de Telecomunicações e Redes (2º ano – 1º semestre) Licenciatura em Ensino de Informática (2º ano – 1º semestre) Ano Lectivo 2004/2005 – 1º Semestre Universidade da Madeira Enunciado do Projecto: Implementação de um módulo Assembly para o jogo “Os Spims” Introdução Você e o seu colega trabalham como consultores júniores na empresa de consultadoria N., Gócio & D’achina 1 , uma empresa especializada no desenvolvimento de sistemas interactivos de entretenimento. Foram ambos destacados pelo gestor de projecto para o desenvolvimento de um módulo em Assembly para o jogo “Os Spims”. Este jogo é uma versão simplificada do famoso “The Sims”, destinada a funcionar em qualquer simulador Spim (daí o seu nome). O jogo “The Sims” consiste numa simulação 2 onde o utilizador controla per- sonagens (os Sims) ao longo de uma vida inteira, de acordo com vários objectivos de vida: popularidade, fortuna, família, romance ou conhecimento. Pode acontecer tudo a um Sim: desde assaltos a visões de fantasmas, desde casamentos com extra- terrestres a publicações de best-sellers. O jogo inclui um criador de Sims, um constru- tor de casas para os Sims e até uma câmara para filmar as aventuras dos Sims. Figura 1: Os Sims divertem-se e confraternizam num casamento, no jogo “The Sims 2” 2004 Electronic Arts, Inc. 1 Nome fictício, obviamente. 2 Para mais informações sobre o jogo (real) da “concorrência”, visite: http://thesims2.ea.com

Transcript of Arquitectura de Computadores - UMacee.uma.pt/edu/ac/0405/projecto-ac-0405.pdf · Arquitectura de...

Page 1: Arquitectura de Computadores - UMacee.uma.pt/edu/ac/0405/projecto-ac-0405.pdf · Arquitectura de Computadores – Enunciado do Projecto Pedro F. Campos 3 -Tipo de casa: T0, T2 ou

Arquitectura de Computadores Licenciatura em Engenharia Informática (2º ano – 1º semestre)

Licenciatura em Engenharia de Telecomunicações e Redes (2º ano – 1º semestre) Licenciatura em Ensino de Informática (2º ano – 1º semestre)

Ano Lectivo 2004/2005 – 1º Semestre

Universidade da Madeira

Enunciado do Projecto: Implementação de um módulo Assembly para o jogo “Os Spims”

Introdução

Você e o seu colega trabalham como consultores júniores na empresa de consultadoria N., Gócio & D’achina1, uma empresa especializada no desenvolvimento de sistemas interactivos de entretenimento.

Foram ambos destacados pelo gestor de projecto para o desenvolvimento de um módulo em Assembly para o jogo “Os Spims”. Este jogo é uma versão simplificada do famoso “The Sims”, destinada a funcionar em qualquer simulador Spim (daí o seu nome). O jogo “The Sims” consiste numa simulação2 onde o utilizador controla per-sonagens (os Sims) ao longo de uma vida inteira, de acordo com vários objectivos de vida: popularidade, fortuna, família, romance ou conhecimento. Pode acontecer tudo a um Sim: desde assaltos a visões de fantasmas, desde casamentos com extra-terrestres a publicações de best-sellers. O jogo inclui um criador de Sims, um constru-tor de casas para os Sims e até uma câmara para filmar as aventuras dos Sims.

Figura 1: Os Sims divertem-se e confraternizam num casamento, no jogo “The Sims 2” 2004

Electronic Arts, Inc.

1 Nome fictício, obviamente. 2 Para mais informações sobre o jogo (real) da “concorrência”, visite: http://thesims2.ea.com

Page 2: Arquitectura de Computadores - UMacee.uma.pt/edu/ac/0405/projecto-ac-0405.pdf · Arquitectura de Computadores – Enunciado do Projecto Pedro F. Campos 3 -Tipo de casa: T0, T2 ou

Arquitectura de Computadores – Enunciado do Projecto Pedro F. Campos

2

A versão que irá criar consiste num módulo em Assembly do processador MIPS para o jogo “Os Spims”. A N., Gócio & D’achina pretende implementar uma versão do jogo para sistemas baseados no MIPS, onde o desempenho assume particular relevo.

O problema é que o prazo para o desenvolvimento é curto, uma vez que a concor-rência – uma empresa norte-americana – acaba de lançar a versão 2 do jogo (ver Figura 1, que mostra um écran do jogo “The Sims 2”), e continua a recrutar pessoal para programar nesta área, como prova o cartaz publicitário.

Por isso, você terá de ser eficaz, criativo(a) e inovador(a).

Figura 2: Cartaz publicitário de recrutamento. Consegue perceber o significado?

Descrição do Jogo a Implementar

O jogo a implementar deve funcionar no simulador Spim. Os Spims são criados pelo utilizador, que define as suas personalidades e objectivos de vida. Depois, o utiliza-dor define a casa onde os seus Spims irão morar. Finalmente, dá-se início à simula-ção. A simulação pode ser feita de duas maneiras: no modo automático, os Spims vagueiam sozinhos pela casa, tomando as suas decisões de acordo com as suas perso-nalidades, objectivos e meio envolvente. No modo manual, o utilizador controla um determinado Spim.

---------- * ----------------- -----------------------* |( | * | | | |( | == | ** | P]| * |K P | | ]| ** |== :| * |: | | | | | <=> ----| |--- | | | |--- -------- -----* -----| |--------- | K P | ** * * <=> | | ** |------------| |-------*

Figura 3: Ilustração dos exemplos de casas para os Spims. A ilustração contém alguns exem-plos de objectos colocados na casa. Da esquerda para a direita, T0, T2 e Vivenda.

No início da execução do programa, pede-se ao utilizador que introduza os seguintes parâmetros (Nota: Não é necessário verificar se os valores introduzidos estão dentro dos limites estipulados):

Page 3: Arquitectura de Computadores - UMacee.uma.pt/edu/ac/0405/projecto-ac-0405.pdf · Arquitectura de Computadores – Enunciado do Projecto Pedro F. Campos 3 -Tipo de casa: T0, T2 ou

Arquitectura de Computadores – Enunciado do Projecto Pedro F. Campos

3

- Tipo de casa: T0, T2 ou Vivenda (ver Figura 3)

- Quantidade de objectos (mínimo 4, máximo 20)

O mundo onde vivem os Spims (o simulador Spim) é mostrado na consola, sendo o espaço discretizado numa grelha onde cada espaço constitui um caracter. Os objectos são escolhidos aleatoriamente e são colocados em posições aleatórias. Existem os seguintes objectos:

- Telescópio (representado como ==). Máximo: 1.

- Espelho (representado por um ( ou )). Os espelhos só podem ser colocados junto às paredes da casa. Máximo: 2.

- Carro (representado por um <=>). Os carros só podem ser colocados na rua, nunca no interior das casas dos Spims. Máximo: 1.

- Estante de livros (representada por um [ ou ]). As estantes só podem ser coloca-das junto às paredes da casa. Máximo: 3.

- Telefone (representado por um :). Máximo: 2.

- Flores e arbustos (representados por *). Máximo: 4.

Após a definição dos dois parâmetros tipo de casa e quantidade de objectos, o utili-zador passa à fase de criação dos seus Spims. O programa começa por perguntar quantos Spims se deseja criar (mínimo 2, máximo 4). Para cada Spim, o programa pergunta ao utilizador os dados da personalidade dos seus Spims. Esses dados são descritos de seguida.

Nome. Cada Spim tem um nome que não pode ultrapassar os 20 caracteres.

Caracter de Identificação. Um caracter maiúsculo entre A e Z, escolhido para identi-ficar o Spim no écran de jogo.

Sexo. Os Spims podem ser homens ou mulheres.

Objectivo de Vida. Os Spims possuem um (e apenas um) dos seguintes objectivos de vida:

- Popularidade (objectos favoritos: Carro, Espelho e Telefone)

- Família (objectos favoritos: Flores e um – apenas um – Spim do sexo oposto que também tenha Família como objectivo de vida)

- Romance (objectos favoritos: Telefone e Spims do sexo oposto)

- Conhecimento (objectos favoritos: Estante dos livros e Telescópio)

De acordo com o seu objectivo de vida, um Spim tomará decisões diferentes sobre qual a direcção a tomar.

Caso haja um objecto favorito do Spim numa posição contígua, o Spim fica a utilizar esse objecto durante três passos da simulação (ver exemplo mais à frente).

Senão, e caso haja algum outro Spim numa posição contígua, o Spim pode optar por falar com esse Spim. Neste modo automático, o Spim A só opta por falar com o outro Spim B com a seguinte distribuição de probabilidade:

Page 4: Arquitectura de Computadores - UMacee.uma.pt/edu/ac/0405/projecto-ac-0405.pdf · Arquitectura de Computadores – Enunciado do Projecto Pedro F. Campos 3 -Tipo de casa: T0, T2 ou

Arquitectura de Computadores – Enunciado do Projecto Pedro F. Campos

4

- Spim A e Spim B partilham o mesmo objectivo Romance ou Família: 80%

- Caso contrário: 10%

Depois da acção conversar, o jogo mostra uma indicação do nível de relacionamento entre cada Spim, que é dado em percentagem. Por exemplo, se houver três Spims em jogo, A, B e C, a simulação mostra: A-B: 50%, A-C: 30%, B-C: 90%. Inicialmente, o valor dessa percentagem é de 50% para todas as combinações. Sempre que os Spims falarem um com o outro, o nível sobe +20% (nunca ultrapassando o valor 100%). Sempre que passarem um pelo outro e não conversarem, o nível desce 20% (nunca atingindo valores negativos).

Se o Spim não conversar, então selecciona a direcção a tomar aleatoriamente (ou seja, 25% de probabilidade para qualquer direcção norte, sul, este e oeste).

Exemplos

O exemplo seguinte ilustra a simulação (a azul estão os dados introduzidos pelo teclado) para o caso em que :

Os Spims> Introduza o tipo de casa (0=T0, 1=T1, 2=Vivenda): 0 Os Spims> Introduza quantidade de objectos (4..10): 3

Após a introdução dos parâmetros, o programa pede uma confirmação:

Os Spims> Tipo de casa: T0, com 3 Objectos, confirma? (s=1/n=0): 1

No caso de o utilizador teclar 0, o programa volta ao ciclo em que pergunta os parâ-metros. Quando o utilizador teclar 2, o programa termina. Caso o utilizador confir-me, o programa segue para a criação dos Spims:

Os Spims> Quantos Spims quer criar? (2..4): 2 Os Spims> Nome do Spim: Pedro Campos Os Spims> Caracter de Identificação (A..Z): P Os Spims> Sexo (M/F): M Os Spims> Objectivo (Popularidade P, Família F, Romance R, Conhecimento C): R Criado o Spim Pedro Campos, M, Romance, confirma? (s=1/n=0, terminar=2): 1 Os Spims> Nome do Spim: Kem Serah Os Spims> Caracter de Identificação (A..Z): K Os Spims> Sexo (M/F): F Os Spims> Objectivo (Popularidade P, Família F, Romance R, Conhecimento C): R Criada a Spim Kem Serah, M, Romance, confirma? (s=1/n=0, terminar=2): 2

De seguida, a simulação no modo automático (note que os Spims são colocados ini-cialmente em posições aleatórias):

---------- * |( | * | K P | * |== :| * ----| |--- P-K: 50% Os Spims> Enter ---------- * |( | * | KP | *

Page 5: Arquitectura de Computadores - UMacee.uma.pt/edu/ac/0405/projecto-ac-0405.pdf · Arquitectura de Computadores – Enunciado do Projecto Pedro F. Campos 3 -Tipo de casa: T0, T2 ou

Arquitectura de Computadores – Enunciado do Projecto Pedro F. Campos

5

|== :| * ----| |--- P-K: 50% Os Spims> Enter ---------- * |( | * | KP | * |== :| * ----| |--- P-K: 70% Os Spims> Enter ---------- * |( K | * | | * |== P :| * ----| |--- P-K: 70% Os Spims> Enter

Note-se que em cada passo da simulação (cada Enter introduzido) todos os Spims em jogo tomam uma decisão e realizam-na simultaneamente. Neste exemplo, tanto o Spim K como o Spim P decidiram avançar em sentidos opostos, pelo que se encontra-ram, e como tinham o mesmo objectivo de vida, ficaram a conversar durante um passo da simulação.

O programa fica eternamente à espera que o utilizador pressione a tecla Enter, para avançar e mostrar o estado resultante da acção seguinte3.

Um Spim não pode executar saltos! Isto é, só avança entre posições contíguas, em cada uma das direcções norte, sul, este, oeste.

O exemplo seguinte ilustra a questão dos objectos favoritos. Assumindo os mesmos Spims P e K criados de acordo com o exemplo anterior:

---------- * |( K | * | | * |== P :| * ----| |--- P-K: 70% Os Spims> Enter ---------- * |( K | * | | * |== P:| *

3 Sempre que o utilizador pressionar a tecla 2, seguida de Enter, o programa termina.

Page 6: Arquitectura de Computadores - UMacee.uma.pt/edu/ac/0405/projecto-ac-0405.pdf · Arquitectura de Computadores – Enunciado do Projecto Pedro F. Campos 3 -Tipo de casa: T0, T2 ou

Arquitectura de Computadores – Enunciado do Projecto Pedro F. Campos

6

----| |--- P-K: 70% Os Spims> Enter ---------- * |( K | * | | * |== P:| * ----| |--- P-K: 70% Os Spims> Enter ---------- * |( | * | K | * |== P:| * ----| |--- P-K: 70% Os Spims> Enter

Como se vê neste exemplo, a Spim K anda aleatoriamente e o Spim P (objectivo Romance) encontrou um dos seus objectos favoritos (Telefone) e usa-o durante três passos da simulação.

No modo manual, o funcionamento é idêntico, excepto no facto de o Spim ficar para-do à espera que o utilizador pressione uma das teclas direccionais já referidas.

Neste modo, o programa pergunta ao utilizador (após a criação dos Spims, descrita anteriormente), qual o Spim que pretende controlar, indicando o caracter de identifi-cação respectivo. O Spim é operado pelo teclado, usando as teclas i,j,k,l para especi-ficar a direcção do seu movimento (i=norte, k=sul, j=este, l=oeste). Sempre que o Spim seleccionado for deslocado pelo utilizador, todos os outros Spims do programa tomam uma decisão e avançam automaticamente.

Para implementar este modo não pode usar a chamada de sistema syscall, já que esta pede sempre um Enter e mostra no écran a tecla digitada. Em vez disso, deve criar um novo ficheiro a partir do exceptions.s onde associa uma rotina de tratamen-to das interrupções do teclado a uma rotina que move o robot numa dada direcção. Desta maneira, pode-se teclar à vontade que apenas surge na consola a “imagem” actualizada do mundo dos Spims.

Funcionalidades já implementadas

O seu gestor de projecto possui dois ficheiros que serão, provavelmente, do seu inte-resse, pelo que deve contactá-lo a fim de obtê-los: um deles é um gerador de núme-ros aleatórios, útil para coisas como

O outro é uma rotina de tratamento de interrupções adaptada da rotina original do núcleo do Sistema Operativo simulado pelo SPIM. Servirá como ponto de partida para codificar o modo de operação manual dos Spims. Lembre-se que pode (e deve) reaproveitar o código do modo automático para implementar o modo manual.

Page 7: Arquitectura de Computadores - UMacee.uma.pt/edu/ac/0405/projecto-ac-0405.pdf · Arquitectura de Computadores – Enunciado do Projecto Pedro F. Campos 3 -Tipo de casa: T0, T2 ou

Arquitectura de Computadores – Enunciado do Projecto Pedro F. Campos

7

Prazos e Critérios de Avaliação

O projecto seguirá uma entrega por fases. A nota só é dada após a discussão. No en-tanto é obrigatório apresentar os artefactos designados no prazo respectivo. Por cada dia de atraso na entrega, sofre uma penalização de 1 valor na nota final.

As fases e artefactos a entregar são os seguintes:

1. Fluxograma de alto nível + Criador de Spims

2. Programa a funcionar com a maioria das funcionalidades do modo automáti-co

3. Versão Final do Programa + Relatório

Os prazos para cada fase são:

1. Dia 19 de Novembro de 2004.

2. Dia 17 de Dezembro de 2004.

3. Dia 14 de Janeiro de 2005.

O formato e local de entrega serão oportunamente divulgados.

Os seguintes aspectos serão avaliados:

- Fluxograma e Relatório;

- Cumprimento dos requisitos (correcto funcionamento do programa, em modo automático e em modo manual);

- Qualidade do código (e.g.: Os comentários são úteis? As etiquetas fazem sen-tido? Segue a convenção de utilização dos registos e procedimentos do MIPS? O código encontra-se bem estruturado?);

- Discussão do Projecto (esta componente da nota é individual e obrigatória);

- Serão valorizadas soluções que se diferenciem pela inovação, criatividade e desempenho em relação às restantes.

Projectos iguais, ou muito semelhantes, serão classificados com 0 (zero) valores. O mesmo se aplica a alunos que, durante a discussão do projecto, evidenciem não pos-suir os conhecimentos da matéria e dos problemas abordados durante a elaboração do projecto.