Table of Contents

Tema 1 - Now You See Me

Responsabili:

Actualizări

Obiective

Introducere

“The closer you think you are, the less you'll actually see.”

Faimosul grup de iluzionisti pune la cale un nou show pentru care au nevoie de cei mai experimentați voluntari. Plictisiți de monotonia de la facultate și dornici să experimentați ceva nou, ați luat decizia să mergeți și voi la preselecții.

Pentru a putea lua parte la acest spectacol, veți fi supuși unor teste ce implică trucuri cu cărți. Scopul vostru este să demonstrați că sunteți capabili să impresionați membrii grupului și să vă câștigați locul în show.

Cerință

Veți primi de la unul din membrii grupului mai multe pachete de cărți pe care le veți ține într-o listă dublu înlănțuită. În cadrul fiecărui pachet, cărțile sunt ținute sub forma unei liste dublu înlănțuite.

Fiecare carte are două proprietăți: valoare (în intervalul [1, 14]) și simbol (HEART, CLUB, DIAMOND, SPADE).

Pentru a vă testa abilitățile, membrii grupului vă vor da, pe rând, diverse comenzi pe care va trebui să le executați asupra pachetelor. Aveți grijă însă, trebuie să realizați perfect trucurile pentru a îi convinge pe magicieni că vă meritați locul!

Comenzi posibile (30p)

Exemplu:

Pachet 0: 1, 2, 3, 4, 5
Rezultat: 3, 4, 5, 1, 2

Exemplu:

Pachet 0: 1, 2, 3, 4
Pachet 1: 4, 5, 6, 7, 11, 12, 13
Rezultat: 1, 4, 2, 5, 3, 6, 4, 7, 11, 12, 13

Pachet 0: 1, 2, 3, 4
Pachet 1: 7, 8, 9
Pachet 2: 12, 13, 14
SPLIT_DECK 0 2
Rezultate: 
	Pachet 1a: 1, 2
	Pachet 1b: 3, 4
	Pachet 2: 7, 8, 9
	Pachet 3: 12, 13, 14

Tratarea erorilor (50p)

La primirea comenzilor de la tastatură pot apărea unele erori:

Erorile de index aduc după sine suspendarea execuției restului comenzii!

Bonus (10p)

README (20p)

Coding Style (10p)

Mențiuni

  • O structură de date generică are rolul de a nu duplica (pe cât posibil) cod permițând adăugarea în cadrul ei a oricărui tip de date. (hint: void*)
  • Exemplu: Vedeți în cadrul scheletului de lab unde a trebuit să implementați exact această situație. (hint: data_size)

Checker

Teste: 2022-tema1-check.zip.

Temele vor fi trimise pe vmchecker. Atenție! Temele trebuie trimise în secțiunea Structuri de Date (CA).

Arhiva trebuie să conțină: