Proiect: Soft Square

De la WikiLabs
Jump to navigationJump to search

Definiție

Tema de proiect este emularea fenomenelor fizice (gravitație, ciocniri, frecare) asupra unui corp deformabil (de formă pătrata în starea relaxată).

Cerințe

Cerința 1

Pe ecranul monitorului va apărea un cadru de 20 pixeli colorat în albastru, verde sau alb, culoarea lui fiind aleasă cu ajutorul tastaturii potrivit unei cerințe din cele 3 variante:

Varianta a) Se introduce de la tastatură litera “C”. După această operațiune se pot introduce de la tastatură una dintre litere “b”, “g” si “w”, cadrul aparând în culoarea respectivă.

Varianta b) Se introduce de la tastatură litera “C”. După această operațiune se pot introduce de la tastatură una dintre cifrele “1”, “2” si “3”, cadrul aparând în culoarea asociată.

Varianta c) Se introduce de la tastatură litera “C”. Se introduc de la tastatură 1, 2 sau 3 spații (“space” key) şi se mai apasă o dată litera “C”. Cadrul apare în culoarea asociată numărului de “spații” introduse.

Nerespectarea oricărei succesiuni de litere, cifre sau spații conduce la resetarea menu-ului.

Cerința 2

Pe ecranul monitorului apar in coltul stanga sus 4 pătrate albe (latura fiecărui pătrat fiind de 5 pixeli). Centrele acestor pătrate formează un pătrat de latură 20 pixeli.

Cerința 3

Pozitia pătratelor se va modifica potrivit informației preluate de la tastatură. Pozitia relativă a pătratelor este constantă, deplasarea lor sincronă fiind determinată potrivit unei cerințe din cele 3 variante:

Varianta a) Se introduce de la tastatură litera “S”. Se apasă oricare din săgeti, la fiecare apăsare pătratele modificandu-si pozitia cu 3 pixeli in directia respectivă. Pozitia finală este determinată de apăsarea literei “s”.

Varianta b) Se introduce de la tastatură litera “S”. Apăsarea tastei “TAB” mută pătratele cu 15 pixeli la dreapta. In momentul in care pătratele ar depăsi marginea din stanga, in mod automat pătratele se mută pe randul următor (cu 30 pixeli mai jos) la inceputul lui (sub pozitia initială - stanga). Poztia finală este determinată de apăsarea literei “s”.

Varianta c) Se introduce de la tastatură litera “S”. Se introduce de la tastatură litera “x” si apoi numărul de pixeli dorit pentru mutarea pe axa x a pătratelor. Se introduce de la tastatură litera “y” si apoi numărul de pixeli dorit pentru mutarea pe axa y a pătratelor.

Nerespectarea oricărei succesiuni de litere, cifre sau spații conduce la resetarea menu-ului (starea de asteptare a literei “S”).

Cerința 4

Distanța dintre pătrate se va modifica la apăsare tastei “A” potrivit algoritmului descris de o cerință din cele 3 variante:

Varianta a) Dacă pătratul mare este într-o poziție care îl face să fie apropiat de o latură a monitorului (distanța oricărui colt pana la margine mai mică de 20 de pixeli) isi va micsora latura la 15 pixeli, colțul fix la recalculare fiind cel mai apropiat de laturile monitorului.

Varianta b) Dacă centrul pătratului este în centrul ecranului (delimitat de un pătrat de latură 100 pixeli) îsi va creste latura la 25 pixeli. Centrul pătratului rămane fix.

Varianta c) Dacă două pătrate se află în stanga ecranului si două în dreapta lui dimensiunea laturii va creste la 30 pixeli. Centrul patratului rămane fix.

Cerința 5

La ăpasarea tastei “g” pătratele pornesc cu o viteza initiala de 4 pixeli / refresh spre dreapta. Pătratele se deplaseaza sincron pe ecran. In orice moment putem modifica sensul si directia vitezei cu ajutorul tastaturii: se lasă echipei decizia cum va implementa aceasta funcționalitate, dar va trebui sa mimeze funcționalitatea dată de potentiometrul existent pe alte plăcute de dezvoltare (rotirea in sens trigonometric produce o modificare a vitezei cu o accelerație unghiulară în sens trigonometric, rotirea în sens orar produce efect contrar)

Cerința 6

In momentul ciocnirii cu marginea ecranului definită de cadrul mentionat la Sub-obiectivul 1 toate pătratele (formand un pătrat rigid) îsi schimbă viteza astfel încat să se simuleze ciocnirea elastica cu cadrul.

Cerința 7

Daca se apasă tasta “X” se adaugă efectul suplimentar definit de o cerință din următoarele 3:

Varianta a) accelerație gravitațională

Varianta b) ciocnirea este plastică, pătratul care se ciocneste pierzand 5% din energie

Varianta c) există o forță de frecare continuă proporțională cu viteza coltului

Cerința 8

Daca se apasă tasta “R” cadrul format din cele 4 pătrate îsi pierde rigiditatea. Astfel, între cele 4 pătrate vor exista 6 resorturi inițial netensionate. '

Referințe