---+++ Homework 5 (di recupero) - Game of Life %RED% __ATTENZIONE: QUESTO ESERCIZIO E' SOLO PER CHI HA SUPERATO MENO DI 4 HOMEWORK__ %FINE% Si scriva un programma in assembly MIPS che implementi il [[http://it.wikipedia.org/wiki/Gioco_della_vita][Game of Life]] del matematico Conway. Il programma prende in input da stdin: * un intero positivo *g*, * 32 stringhe binarie, ciascuna costituita da 32 bit indicati dai caratteri ascii *0* e *1*, che costituiscono lo stato iniziale della matrice 32x32 di bit del Game of Life, calcola e stampa a video altre 32 stringhe di *0* e *1* che costituiscono lo stato del Game of Life dopo *g* generazioni. Regole del game of Life: * per ogni cella, chiamiamo *V* il numero totale di celle vive tra le 8 adiacenti * ad ogni generazione: * una cella viva resta viva se e solo se *V=2* oppure *V=3*, altrimenti morirà * una cella morta nasce se e solo se *V=3* * in ogni generazione tutte le celle dipendono solo dallo stato della generazione precedente Si assuma che: * 1 rappresenti la vita, 0 la morte, * le celle oltre i bordi della matrice siano morte. Es.: usando (in unix) il comando: __cat test.txt | java -jar Mars4_3.jar gameoflife.asm__ dove il file test.txt contiene: <blockquote> <verbatim> 10 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000001000 00000000000000000000000000000100 00000000000000000000000000011100 00000000000000000000000000000000 00000000000000000000000000000000 </verbatim> </blockquote> il programma deve stampare SOLO: <blockquote> <verbatim> 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000001 00000000000000000000000000000011 </verbatim> </blockquote> che rappresenta la decima generazione del Game of Life a partire dallo stato iniziale fornito in input. *Suggerimenti:* * syscall 35 vi premette di stampare un numero binario * syscall 12 vi permette di leggere un carattere per volta * una rappresentazione compatta dei 32 bit in una sola word per riga vi premette di usare operazioni logiche e maschere Come sempre, chi “collaborerà” con altre N persone prenderà solo 1/N punti :|. ---+++ Consegna entro venerdì 14 a mezzanotte * rinominate il file usando la convenzione Cognome<nop>Nome.asm (quindi il file del sig. Cicco Pasticcio sarà Ciccio<nop>Pasticcio.asm) * inviatelo tramite la [[/~andrea/consegna-HW-2013.html][pagina di consegna]] *entro la mezzanotte di venerdì 14 giugno*. * per inviare dovete essere registrati a twiki. -- Users.AndreaSterbini - 06 Jun 2013 <!-- * Set ALLOWTOPICCHANGE = Users.AndreaSterbini -->
This topic: Architetture2/MZ/AA12_13
>
HomeWork5
Topic revision: r4 - 2013-06-10 - AndreaSterbini
Copyright © 2008-2025 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback