Homework 2 - disegnare in una matrice rettangolare

Si vuol realizzare un programma di grafica, che rappresenta l'immagina come una matrice rettangolare di word di dimensioni massime 1000 word, un pixel per ciascuna word. Il programma legge da input la sequenza formata da:

  • due interi positivi che indicano LARGHEZZA ed ALTEZZA della matrice, tali che LARGHEZZA*ALTEZZA≤1000
    • All'inizio la posizione corrente è 0,0 (in alto a sinistra), il colore corrente è 0 e la matrice è piena di 0
  • una successione di comandi, ciascuno su una diversa linea, formati da:
    • un carattere che indica il comando, seguito sulle righe successive, da eventuali parametri interi come indicato:
      • S (SET_COLOR, setta il colore corrente all'intero colore). usa 1 parametro intero:
        • colore (parametro intero)
      • G (GOTO, vai alle coordinate X,Y). usa 2 parametri interi positivi:
        • X (coordinata x, intero)
        • Y (coordinata y, intero)
      • M (MOVE, si sposta di DX e DY pixel rispetto alla posizione corrente). usa 2 parametri interi relativi.
        • DX (spostamento in orizzontale, intero)
        • DY (spostamento in verticale, intero)
        • NOTA: se la mossa porta fuori dal bordo si rientra dal bordo opposto (la matrice va considerata come una ciambella)
      • P (PAINT, colora il pixel corrente col colore corrente)
      • D (DELETE, cancella il pixel corrente mettendoci 0)
      • C (COPY, copia il colore del pixel corrente)
      • Q (QUIT, esce dal programma dopo aver stampato la matrice)

La sequenza di comandi è sempre terminata dal comando Q, dopo il quale dovete stampare il contenuto della matrice, un pixel per volta separati da spazio, una riga per volta.

Esempio

Input (commentato)

6       # 6 colonne
4       # 4 righe
G       # GOTO
3       # X=3
2       # Y=2
S       # SET_COLOR
5       # color 5
P       # colora il pixel 3,2 col colore 5
S       # SET_COLOR
6       # color 6
M       # MOVE
-1      # si sposta di 1 pixel a sinistra
-2      # ed in alto di 2
P       # colora il pixel 2,0 col colore 6
G       # GOTO
3       # X=3
2       # Y=2
C       # copia il colore del pixel (ovvero 5)
M       # MOVE
7       # Sposta a destra di 7 (rientrando a sinistra), ovvero alla colonna 4
9       # ed in basso di 9 (rientrando dall'alto), ovvero alla riga 3
P       # colora il pixel 4,3 col colore 5
Q       # esce e stampa la matrice

Output atteso

0 0 6 0 0 0
0 0 0 0 0 0
0 0 0 5 0 0
0 0 0 0 5 0

Consegna entro lunedì 24 aprile, ore 24

Per consegnare usate QUESTA PAGINA

Trovate QUI i file ed i risultati dei test.

Topic revision: r1 - 2017-04-02 - AndreaSterbini






 
Questo sito usa cookies, usandolo ne accettate la presenza. (CookiePolicy)
Torna al Dipartimento di Informatica
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback