0% au considerat acest document util (0 voturi)
3 vizualizări9 pagini

Vector I

Vectorii sunt structuri de date esențiale în aplicațiile informatice, utilizate în dezvoltarea de jocuri, modelarea financiară și procesarea datelor. În C++, vectorii permit gestionarea dinamică a memoriei și manipularea eficientă a elementelor, având atât avantaje, cât și dezavantaje. Proiectul de joc de puzzle cu imagini ilustrează aplicarea practică a vectorilor, folosind biblioteca SFML pentru gestionarea graficii și interacțiunii utilizatorului.

Încărcat de

emilias.haha
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PDF, TXT sau citiți online pe Scribd
0% au considerat acest document util (0 voturi)
3 vizualizări9 pagini

Vector I

Vectorii sunt structuri de date esențiale în aplicațiile informatice, utilizate în dezvoltarea de jocuri, modelarea financiară și procesarea datelor. În C++, vectorii permit gestionarea dinamică a memoriei și manipularea eficientă a elementelor, având atât avantaje, cât și dezavantaje. Proiectul de joc de puzzle cu imagini ilustrează aplicarea practică a vectorilor, folosind biblioteca SFML pentru gestionarea graficii și interacțiunii utilizatorului.

Încărcat de

emilias.haha
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PDF, TXT sau citiți online pe Scribd

“IN EVERY DIRECTION, VECTORS

LEAD THE WAY”

Fătu Emilia Elena, 10 N1, CNMV Ploiesti


VECTORII IN APLICATII INFORMATICE

• Vectorii sunt utilizați pe scară largă în aplicațiile informatice din lumea reală, inclusiv în
dezvoltarea de jocuri (pentru gestionarea obiectelor de joc), modelarea financiară
(pentru stocarea seriilor temporale de lungime variabilă), procesarea datelor (pentru
gestionarea seturilor de date de dimensiuni necunoscute) și programarea competitivă
(datorită ușurinței în utilizare și naturii dinamice).
• Un vector este o listă dinamică de elemente care se pot micșora și crește în dimensiune.
Poate stoca doar valori de același tip de date. Gestionarea memoriei este realizată
intern, iar elementele pot fi adăugate sau eliminate eficient.
VECTORI IN C++
VECTORI IN C++
VECTORI IN C++

#include <iostream>
#include <vector>

int main() {
std::vector<int> numbers;

numbers.push_back(10);
numbers.push_back(20);
numbers.push_back(30);

std::cout << "Elements in the vector: ";


for (int num : numbers) {
std::cout << num << " ";
}
std::cout << std::endl;

std::cout << "First element (index): " << numbers[0] << std::endl;
std::cout << "Second element (at): " << [Link](1) << std::endl;

numbers[2] = 100;
std::cout << "Modified third element: " << numbers[2] << std::endl;

numbers.pop_back();

std::cout << "Vector after pop_back: ";


for (int num : numbers) {
std::cout << num << " ";
}
std::cout << std::endl;

std::cout << "Size: " << [Link]() << std::endl;


std::cout << "Capacity: " << [Link]() << std::endl;

return 0;
}
AVANTAJE SI DEZAVANTAJE

Avantajele vectorilor C++ Dezavantaje ale vectorilor C++


• Natura sa este dinamică. • Utilizarea memoriei a crescut.
• Este simplu să inserați și să eliminați • Nu există niciun index pentru acesta.
elemente. • Memoria RAM adiacentă nu este
• Este posibil să depozitați mai multe utilizată.
articole.
• Vectorii pot fi ușor copiați unul în
altul utilizând operatorul de atribuire.
MY SLIDING PUZZLE GAME WITH A REAL IMAGE

Image Puzzle Game:


• Load an image (e.g. .png or .jpg)
Must Have:
• Cut it into tiles (e.g. 4x4 grid)
• C++ compiler
• Shuffle them (leaving one empty space)
• SFML installed on the device
• Player clicks or uses keys to slide tiles
• Objective: restore the original image Project Overview
• Load an image
Tools & Library
• Divide it into tiles
• To create a 2D image-based puzzle in C++, we need a
graphics library. • Shuffle the tiles (with one blank tile)
• Strong recommendation of using SFML (Simple and • Draw the puzzle grid on the window
Fast Multimedia Library):
• Handle tile movement with mouse or keyboard
• Easy to use
• Check for puzzle completion
• Supports image loading, rendering, keyboard & mouse
input
MY SLIDING PUZZLE GAME WITH A REAL IMAGE

CODE (SFML + IMAGE PUZZLE)


if (i == SIZE * SIZE - 1) { // Shuffle tiles (basic shuffle) // Draw all tiles in their current
positions
#INCLUDE INT MAIN() { tiles.push_back({sf::Sprite(), i, std::srand(unsigned(std::time(0))
<SFML/[Link]> true}); // Empty tile ); for (int i = 0; i < [Link](); ++i) {
SF::RENDERWINDOW
#INCLUDE <VECTOR> WINDOW(SF::VIDEOMODE(WIN continue; std::random_shuffle([Link](), int row = i / SIZE;
DOW_SIZE, WINDOW_SIZE), [Link]());
#INCLUDE <ALGORITHM> "IMAGE PUZZLE"); } int col = i % SIZE;
#INCLUDE <CTIME>
SF::TEXTURE TEXTURE; if (!tiles[i].isEmpty) {
while ([Link]()) {
sf::Sprite sprite(texture); tiles[i].[Link](col *
CONST INT SIZE = 4; // 4X4 GRID sf::Event event; TILE_SIZE, row * TILE_SIZE);
IF int x = (i % SIZE) * TILE_SIZE;
CONST INT TILE_SIZE = 100; (![Link]("PUZ while ([Link](event)) [Link](tiles[i].sprite);
ZLE_IMAGE.JPG")) { int y = (i / SIZE) * TILE_SIZE; {
CONST INT WINDOW_SIZE = SIZE }
* TILE_SIZE; RETURN -1; [Link](sf::IntRect( if ([Link] ==
x, y, TILE_SIZE, TILE_SIZE)); sf::Event::Closed) }
}
STRUCT TILE { [Link](x, y); [Link]();

SF::SPRITE SPRITE; tiles.push_back({sprite, i, false}); // You can add keyboard or [Link]();


STD::VECTOR<TILE> TILES; mouse tile movement here
INT CORRECTPOS; } }
FOR (INT I = 0; I < SIZE * SIZE; ++I) }
BOOL ISEMPTY; {
[Link](sf::Color::Black);
}; return 0;

}
MULTUMESC!

Surse:
[Link]
[Link] Fătu Emilia Elena, 10 N1, CNMV Ploiesti

S-ar putea să vă placă și