SAE Update
This commit is contained in:
@@ -1,7 +1,92 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <graph.h>
|
||||
#include <string.h>
|
||||
#include "utils.h"
|
||||
#include "taquin.h"
|
||||
#include "../graph_sup.h"
|
||||
|
||||
#define OFFSET_X 650
|
||||
#define OFFSET_Y 100
|
||||
|
||||
//int ImageX, ImageY;
|
||||
int Rows, Columns;
|
||||
char TaquinFilename[500];
|
||||
|
||||
int ImageX = 500;
|
||||
int ImageY = 445;
|
||||
|
||||
int SizeX, SizeY;
|
||||
|
||||
//Met à jour le taquin à chaque mouvement.
|
||||
void UpdateTaquin(char* filename, int** Taquin, int rows, int columns) {
|
||||
int x, y, i_x, i_y, id;
|
||||
int i = 0;
|
||||
|
||||
char str_id[20];
|
||||
|
||||
for (int cur_row = 0; cur_row < columns; cur_row++) {
|
||||
for (int cur_col = 0; cur_col < rows; cur_col++) {
|
||||
id = Taquin[cur_row][cur_col];
|
||||
if (id != 0) {
|
||||
x = i % columns;
|
||||
y = i / columns;
|
||||
|
||||
i_x = id % columns;
|
||||
i_y = id / columns;
|
||||
|
||||
AddButton(OFFSET_X + SizeX*x, OFFSET_Y + SizeY*y + (500-ImageY)/2, SizeX, SizeY, id);
|
||||
ChargerImage(filename, OFFSET_X + SizeX*x + 1, OFFSET_Y + SizeY*y + (500-ImageY)/2 + 1, SizeX*i_x+1, SizeY*i_y+1, SizeX-2, SizeY-2);
|
||||
}
|
||||
i++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void UpdatePiece(char* filename, int x, int y, couleur color) {
|
||||
ChoisirCouleurDessin(color);
|
||||
RemplirRectangle(OFFSET_X + SizeX * x - 1, OFFSET_Y + SizeY * y + (500-ImageY)/2 - 1, SizeX + 2, SizeY + 2);
|
||||
ChargerImage(filename, OFFSET_X + SizeX*x + 1, OFFSET_Y + SizeY*y + (500-ImageY)/2 + 1, SizeX*x+1, SizeY*y+1, SizeX-2, SizeY-2);
|
||||
}
|
||||
|
||||
|
||||
//Initialise le Taquin, la fonction appelle la création graphique et logique du Taquin.
|
||||
void CreateTaquin(char * filename, int rows, int columns) {
|
||||
clearButtons();
|
||||
Rows = rows;
|
||||
Columns = columns;
|
||||
strcpy(TaquinFilename, filename);
|
||||
|
||||
SizeX = ImageX/columns;
|
||||
SizeY = ImageY/rows;
|
||||
|
||||
int ** Taquin;
|
||||
Taquin = calloc(columns, sizeof(int*));
|
||||
for (int i = 0; i < columns; i++) {
|
||||
Taquin[i] = calloc(rows, sizeof(int));
|
||||
}
|
||||
|
||||
for (int i = 0; i < rows * columns; i++) {
|
||||
int row = i/rows;
|
||||
int column = i % rows;
|
||||
Taquin[row][column] = i;
|
||||
}
|
||||
|
||||
UpdateTaquin(filename, Taquin, rows, columns);
|
||||
|
||||
int last_id = -1;
|
||||
int id = -1;
|
||||
|
||||
while (1) {
|
||||
//if (SourisCliquee()) {
|
||||
SourisPosition();
|
||||
id = GetButton(_X, _Y);
|
||||
if (id != last_id) {
|
||||
if (id != -1) UpdatePiece(filename, id % columns, id / columns, GetColorN("red"));
|
||||
UpdatePiece(filename, last_id % columns, last_id / columns, GetColorN("black"));
|
||||
last_id = id;
|
||||
}
|
||||
//}
|
||||
}
|
||||
}
|
@@ -3,4 +3,9 @@
|
||||
|
||||
void CreateTaquin(char * filename, int rows, int columns);
|
||||
|
||||
extern int ImageX, ImageY;
|
||||
|
||||
void UpdateTaquin(char* filename, int** Taquin, int rows, int columns);
|
||||
void UpdatePiece(char* filename, int x, int y, couleur color);
|
||||
|
||||
#endif
|
@@ -1,5 +1,20 @@
|
||||
#include "../graph_sup.h"
|
||||
#include "taquin_graphique.h"
|
||||
|
||||
#define OFFSET_X 650
|
||||
#define OFFSET_Y 100
|
||||
|
||||
int ImageX, ImageY;
|
||||
|
||||
//Met à jour le taquin à chaque mouvement.
|
||||
void UpdateTaquin(char* filename, int** Taquin, int rows, int columns) {
|
||||
for (int x = 0; x < columns; x++) {
|
||||
for (int y = 0; y < rows; y++) {
|
||||
ChargerImage()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void UpdatePiece(int row, int column, couleur color) {
|
||||
|
||||
void AnimateTaquin(taquin T) {
|
||||
|
||||
}
|
@@ -1,6 +1,9 @@
|
||||
#ifndef _TAQUIN_GRAPHIQUE_H
|
||||
#define _TAQUIN_GRAPHIQUE_H
|
||||
|
||||
extern int ImageX, ImageY;
|
||||
|
||||
void UpdateTaquin(char* filename, int** Taquin, int rows, int columns);
|
||||
void UpdatePiece(int row, int column, couleur color);
|
||||
|
||||
#endif
|
Reference in New Issue
Block a user