Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Marian POIROT
Our awesome project
Commits
79f188c2
Commit
79f188c2
authored
Jun 24, 2021
by
Valentin MEUNIER
Browse files
brouilllard v1 (ore dumped))
parent
7ce406dc
Changes
5
Hide whitespace changes
Inline
Side-by-side
laby/affichage_image.c
View file @
79f188c2
...
...
@@ -2,7 +2,7 @@
#include
<SDL2/SDL.h>
#include
<SDL2/SDL_image.h>
#include
<SDL2/SDL_ttf.h>
#include
"
kruskal
.h"
#include
"
affichage_image
.h"
/*
*chargement des textures
...
...
@@ -158,24 +158,55 @@ void affichage_fin(SDL_Texture *my_texture,SDL_Window *window,SDL_Renderer *rend
SDL_RenderCopy
(
renderer
,
my_texture
,
&
state
,
&
destination
);
// Préparation de l'affichage
}
void
afficherImageBrouillard
(
SDL_Renderer
*
renderer
,
SDL_Window
*
window
,
int
**
tab
,
int
taille_cell
,
SDL_Texture
*
texture
,
int
pos_x
,
int
pos_y
)
{
int
i1
,
j1
,
x
,
noeud
=
0
;
int
*
voisin
=
malloc
(
4
*
sizeof
(
int
));
SDL_SetRenderDrawColor
(
renderer
,
255
,
255
,
255
,
0
);
SDL_RenderClear
(
renderer
);
if
(
tab
[
pos_y
][
pos_x
]
&
FLAG_N
)
voisin
[
0
]
=
pos_x
+
P
*
pos_y
-
P
;
if
(
tab
[
pos_y
][
pos_x
]
&
FLAG_S
)
voisin
[
1
]
=
pos_x
+
P
*
pos_y
+
P
;
if
(
tab
[
pos_y
][
pos_x
]
&
FLAG_O
)
voisin
[
2
]
=
pos_x
+
P
*
pos_y
-
1
;
if
(
tab
[
pos_y
][
pos_x
]
&
FLAG_E
)
voisin
[
3
]
=
pos_x
+
P
*
pos_y
+
1
;
for
(
int
j
=
0
;
j
<
4
;
j
++
)
{
if
(
voisin
[
j
]
!=-
1
)
{
x
=
tab
[
voisin
[
j
]
%
P
][
voisin
[
j
]
/
P
];
i1
=
(
noeud
%
P
);
//coordonee colonne du noeud
j1
=
(
noeud
/
P
);
// coordonee ligne du noeud
}
}
affichage_texture
(
texture
,
window
,
renderer
,
x
,
i1
,
j1
,
taille_cell
);
free
(
voisin
);
}
void
afficherImage
(
SDL_Renderer
*
renderer
,
SDL_Window
*
window
,
int
**
tab
,
int
taille_cell
,
SDL_Texture
*
texture
){
int
i1
,
j1
,
x
,
noeud
=
0
;
SDL_SetRenderDrawColor
(
renderer
,
255
,
255
,
255
,
0
);
SDL_RenderClear
(
renderer
);
for
(
int
i
=
0
;
i
<
N
;
i
++
){
for
(
int
j
=
0
;
j
<
P
;
j
++
){
x
=
tab
[
j
][
i
];
i1
=
(
noeud
%
P
);
//coordonee colonne du noeud
j1
=
((
int
)
noeud
/
P
);
// coordonee ligne du noeud
affichage_texture
(
texture
,
window
,
renderer
,
x
,
i1
,
j1
,
taille_cell
);
noeud
+=
1
;
}
}
void
afficherImage
(
SDL_Renderer
*
renderer
,
SDL_Window
*
window
,
int
**
tab
,
int
taille_cell
,
SDL_Texture
*
texture
)
{
int
i1
,
j1
,
x
,
noeud
=
0
;
SDL_SetRenderDrawColor
(
renderer
,
255
,
255
,
255
,
0
);
SDL_RenderClear
(
renderer
);
for
(
int
i
=
0
;
i
<
N
;
i
++
)
{
for
(
int
j
=
0
;
j
<
P
;
j
++
)
{
x
=
tab
[
j
][
i
];
i1
=
(
noeud
%
P
);
//coordonee colonne du noeud
j1
=
((
int
)
noeud
/
P
);
// coordonee ligne du noeud
affichage_texture
(
texture
,
window
,
renderer
,
x
,
i1
,
j1
,
taille_cell
);
noeud
+=
1
;
}
}
}
void
peindreMap
(
SDL_Texture
*
texture
,
SDL_Window
*
window
,
SDL_Renderer
*
renderer
,
int
noeuds
,
int
taille_cell
,
int
**
laby
)
...
...
laby/affichage_image.h
View file @
79f188c2
#ifndef _gard_affichage_image
#define _gard_affichage_image
#include
"main.h"
#include
"kruskal.h"
SDL_Texture
*
load_texture_from_image
(
char
*
file_image_name
,
SDL_Renderer
*
renderer
);
void
affichage_texture
(
SDL_Texture
*
my_texture
,
SDL_Window
*
window
,
SDL_Renderer
*
renderer
,
int
x
,
int
coord_colonne
,
int
coord_ligne
,
int
taille_cell
);
void
afficherImage
(
SDL_Renderer
*
renderer
,
SDL_Window
*
window
,
int
**
tab
,
int
taille_cell
,
SDL_Texture
*
texture
);
void
afficherImageBrouillard
(
SDL_Renderer
*
renderer
,
SDL_Window
*
window
,
int
**
tab
,
int
taille_cell
,
SDL_Texture
*
texture
,
int
pos_x
,
int
pos_y
);
void
affichage_fin
(
SDL_Texture
*
my_texture
,
SDL_Window
*
window
,
SDL_Renderer
*
renderer
,
int
coord_colonne
,
int
coord_ligne
,
int
taille_cell
);
void
peindreMap
(
SDL_Texture
*
texture
,
SDL_Window
*
window
,
SDL_Renderer
*
renderer
,
int
noeuds
,
int
taille_cell
,
int
**
laby
);
...
...
laby/dijkstra.c
0 → 100644
View file @
79f188c2
#include
"dijkstra.h"
int
*
dijkstra
(
int
**
laby
,
int
noeuds
,
int
depart
)
{
int
*
parent
=
malloc
(
noeuds
*
sizeof
(
int
));
parent
[
depart
]
=
depart
;
poids_t
*
distance
=
malloc
(
noeuds
*
sizeof
(
poids_t
));
for
(
int
i
=
0
;
i
<
noeuds
;
i
++
)
{
distance
[
i
].
poids
=
noeuds
;
distance
[
i
].
val
=
i
;
}
distance
[
depart
].
poids
=
0
;
int
*
indice_valeur
=
malloc
(
noeuds
*
sizeof
(
int
));
for
(
int
i
=
0
;
i
<
noeuds
;
i
++
)
indice_valeur
[
i
]
=-
1
;
tas_t
*
tas
=
init_tas
(
noeuds
+
1
);
for
(
int
i
=
0
;
i
<
noeuds
;
i
++
)
tas
->
tab
[
i
]
=
distance
[
i
];
int
*
voisin
=
malloc
(
4
*
sizeof
(
int
));
for
(
int
i
=
0
;
i
<
4
;
i
++
)
voisin
[
i
]
=-
1
;
int
sommet
=
depart
;
ajouter_tas_min
(
tas
,
distance
[
depart
],
indice_valeur
);
while
(
tas
->
taille
>-
1
)
{
if
(
laby
[
sommet
%
P
][
sommet
/
P
]
&
FLAG_N
)
voisin
[
0
]
=
sommet
-
P
;
if
(
laby
[
sommet
%
P
][
sommet
/
P
]
&
FLAG_S
)
voisin
[
1
]
=
sommet
+
P
;
if
(
laby
[
sommet
%
P
][
sommet
/
P
]
&
FLAG_O
)
voisin
[
2
]
=
sommet
-
1
;
if
(
laby
[
sommet
%
P
][
sommet
/
P
]
&
FLAG_E
)
voisin
[
3
]
=
sommet
+
1
;
for
(
int
j
=
0
;
j
<
4
;
j
++
)
{
if
(
voisin
[
j
]
!=-
1
)
{
if
(
indice_valeur
[
voisin
[
j
]]
!=-
2
)
{
if
(
indice_valeur
[
voisin
[
j
]]
==-
1
)
{
distance
[
voisin
[
j
]].
poids
=
1
+
distance
[
sommet
].
poids
;
ajouter_tas_min
(
tas
,
distance
[
voisin
[
j
]],
indice_valeur
);
parent
[
voisin
[
j
]]
=
sommet
;
}
else
{
if
(
distance
[
voisin
[
j
]].
poids
>
1
+
distance
[
sommet
].
poids
)
{
distance
[
voisin
[
j
]].
poids
=
1
+
distance
[
sommet
].
poids
;
percolation_bas_tas_min
(
tas
,
indice_valeur
[
voisin
[
j
]],
indice_valeur
);
parent
[
voisin
[
j
]]
=
sommet
;
}
}
}
}
voisin
[
j
]
=-
1
;
}
indice_valeur
[
tas
->
tab
[
0
].
val
]
=-
2
;
indice_valeur
[
tas
->
tab
[
tas
->
taille
].
val
]
=
0
;
typetas
aux
=
tas
->
tab
[
0
];
tas
->
tab
[
0
]
=
tas
->
tab
[
tas
->
taille
];
tas
->
tab
[
tas
->
taille
]
=
aux
;
tas
->
taille
+=-
1
;
percolation_bas_tas_min
(
tas
,
0
,
indice_valeur
);
sommet
=
tas
->
tab
[
0
].
val
;
}
free
(
distance
);
free
(
indice_valeur
);
liberer
(
tas
);
return
parent
;
}
laby/dijkstra.h
0 → 100644
View file @
79f188c2
#ifndef _gard_dijsktra_
#define _gard_dijsktra_
#include
<stdio.h>
#include
<stdlib.h>
#include
<string.h>
#include
<ctype.h>
#include
<time.h>
#include
"graph_aretes_tab.h"
#include
"tas.h"
#include
"kruskal.h"
#include
"main.h"
int
*
dijkstra
(
int
**
,
int
,
int
);
#endif
laby/texture_perso.c
View file @
79f188c2
...
...
@@ -74,7 +74,8 @@ void play_with_elve_N(SDL_Texture* texture_elve,SDL_Texture* background,SDL_Wind
state
[
9
].
h
=
offset_y
;
for
(
i
=
0
;
i
<
nb_images_animation
;
++
i
){
afficherImage
(
renderer
,
window
,
tab
,
taille_cell
,
background
);
afficherImageBrouillard
(
renderer
,
window
,
tab
,
taille_cell
,
background
,
pos_x
,
pos_y
);
// afficherImage(renderer,window,tab,taille_cell,background);
affichage_fin
(
texture_fin
,
window
,
renderer
,
noeud_arrive
/
P
,
noeud_arrive
%
P
,
taille_cell
);
destination
.
y
=
destination
.
y
-
(
deplacement
/
nb_images_animation
);
//déplacement du personnage ici de wind dim.h /32 en tout (diviser par nb animation pour chaque anim)
SDL_RenderCopy
(
renderer
,
texture_elve
,
&
state
[
i
],
&
destination
);
...
...
@@ -156,7 +157,8 @@ void play_with_elve_N_l(SDL_Texture* texture_elve,SDL_Texture* background,SDL_Wi
state
[
9
].
h
=
offset_y
;
for
(
i
=
0
;
i
<
nb_images_animation
;
++
i
){
afficherImage
(
renderer
,
window
,
tab
,
taille_cell
,
background
);
// afficherImage(renderer,window,tab,taille_cell,background);
afficherImageBrouillard
(
renderer
,
window
,
tab
,
taille_cell
,
background
,
pos_x
,
pos_y
);
affichage_fin
(
texture_fin
,
window
,
renderer
,
noeud_arrive
/
P
,
noeud_arrive
%
P
,
taille_cell
);
destination
.
y
=
destination
.
y
-
(
deplacement
/
nb_images_animation
);
SDL_RenderCopy
(
renderer
,
texture_elve
,
&
state
[
i
],
&
destination
);
...
...
@@ -240,7 +242,8 @@ void play_with_elve_S(SDL_Texture* texture_elve,SDL_Texture* background,SDL_Wind
state
[
9
].
h
=
offset_y
;
for
(
i
=
0
;
i
<
nb_images_animation
;
++
i
){
afficherImage
(
renderer
,
window
,
tab
,
taille_cell
,
background
);
// afficherImage(renderer,window,tab,taille_cell,background);
afficherImageBrouillard
(
renderer
,
window
,
tab
,
taille_cell
,
background
,
pos_x
,
pos_y
);
affichage_fin
(
texture_fin
,
window
,
renderer
,
noeud_arrive
/
P
,
noeud_arrive
%
P
,
taille_cell
);
destination
.
y
=
destination
.
y
+
(
deplacement
/
nb_images_animation
);
SDL_RenderCopy
(
renderer
,
texture_elve
,
&
state
[
i
],
&
destination
);
...
...
@@ -325,7 +328,8 @@ void play_with_elve_S_l(SDL_Texture* texture_elve,SDL_Texture* background,SDL_Wi
state
[
9
].
h
=
offset_y
;
for
(
i
=
0
;
i
<
nb_images_animation
;
++
i
){
afficherImage
(
renderer
,
window
,
tab
,
taille_cell
,
background
);
//afficherImage(renderer,window,tab,taille_cell,background);
afficherImageBrouillard
(
renderer
,
window
,
tab
,
taille_cell
,
background
,
pos_x
,
pos_y
);
affichage_fin
(
texture_fin
,
window
,
renderer
,
noeud_arrive
/
P
,
noeud_arrive
%
P
,
taille_cell
);
destination
.
y
=
destination
.
y
+
(
deplacement
/
nb_images_animation
);
SDL_RenderCopy
(
renderer
,
texture_elve
,
&
state
[
i
],
&
destination
);
...
...
@@ -411,7 +415,8 @@ void play_with_elve_O(SDL_Texture* texture_elve,SDL_Texture* background,SDL_Wind
state
[
9
].
h
=
offset_y
;
for
(
i
=
0
;
i
<
nb_images_animation
;
++
i
){
afficherImage
(
renderer
,
window
,
tab
,
taille_cell
,
background
);
// afficherImage(renderer,window,tab,taille_cell,background);
afficherImageBrouillard
(
renderer
,
window
,
tab
,
taille_cell
,
background
,
pos_x
,
pos_y
);
affichage_fin
(
texture_fin
,
window
,
renderer
,
noeud_arrive
/
P
,
noeud_arrive
%
P
,
taille_cell
);
destination
.
x
=
destination
.
x
-
(
deplacement
/
nb_images_animation
);
SDL_RenderCopy
(
renderer
,
texture_elve
,
&
state
[
i
],
&
destination
);
...
...
@@ -495,7 +500,8 @@ void play_with_elve_E(SDL_Texture* texture_elve,SDL_Texture* background,SDL_Wind
state
[
9
].
h
=
offset_y
;
for
(
i
=
0
;
i
<
nb_images_animation
;
++
i
){
afficherImage
(
renderer
,
window
,
tab
,
taille_cell
,
background
);
//afficherImage(renderer,window,tab,taille_cell,background);
afficherImageBrouillard
(
renderer
,
window
,
tab
,
taille_cell
,
background
,
pos_x
,
pos_y
);
affichage_fin
(
texture_fin
,
window
,
renderer
,
noeud_arrive
/
P
,
noeud_arrive
%
P
,
taille_cell
);
destination
.
x
=
destination
.
x
+
(
deplacement
/
nb_images_animation
);
SDL_RenderCopy
(
renderer
,
texture_elve
,
&
state
[
i
],
&
destination
);
...
...
@@ -526,7 +532,8 @@ void play_standstill_1(SDL_Texture* texture_elve,SDL_Texture* background,SDL_Win
state
[
0
].
y
=
0
;
state
[
0
].
w
=
offset_x
;
state
[
0
].
h
=
offset_y
;
afficherImage
(
renderer
,
window
,
tab
,
taille_cell
,
background
);
// afficherImage(renderer,window,tab,taille_cell,background);
afficherImageBrouillard
(
renderer
,
window
,
tab
,
taille_cell
,
background
,
pos_x
,
pos_y
);
affichage_fin
(
texture_fin
,
window
,
renderer
,
noeud_arrive
/
P
,
noeud_arrive
%
P
,
taille_cell
);
SDL_RenderCopy
(
renderer
,
texture_elve
,
&
state
[
i
],
&
destination
);
}
...
...
@@ -553,7 +560,8 @@ void play_standstill_1_l(SDL_Texture* texture_elve,SDL_Texture* background,SDL_W
state
[
0
].
y
=
0
;
state
[
0
].
w
=
offset_x
;
state
[
0
].
h
=
offset_y
;
afficherImage
(
renderer
,
window
,
tab
,
taille_cell
,
background
);
//afficherImage(renderer,window,tab,taille_cell,background);
afficherImageBrouillard
(
renderer
,
window
,
tab
,
taille_cell
,
background
,
pos_x
,
pos_y
);
affichage_fin
(
texture_fin
,
window
,
renderer
,
noeud_arrive
/
P
,
noeud_arrive
%
P
,
taille_cell
);
SDL_RenderCopy
(
renderer
,
texture_elve
,
&
state
[
i
],
&
destination
);
}
...
...
@@ -580,7 +588,8 @@ void play_standstill_2(SDL_Texture* texture_elve,SDL_Texture* background,SDL_Win
state
[
0
].
y
=
0
;
state
[
0
].
w
=
offset_x
;
state
[
0
].
h
=
offset_y
;
afficherImage
(
renderer
,
window
,
tab
,
taille_cell
,
background
);
// afficherImage(renderer,window,tab,taille_cell,background);
afficherImageBrouillard
(
renderer
,
window
,
tab
,
taille_cell
,
background
,
pos_x
,
pos_y
);
affichage_fin
(
texture_fin
,
window
,
renderer
,
noeud_arrive
/
P
,
noeud_arrive
%
P
,
taille_cell
);
SDL_RenderCopy
(
renderer
,
texture_elve
,
&
state
[
i
],
&
destination
);
}
...
...
@@ -607,7 +616,8 @@ void play_standstill_2_l(SDL_Texture* texture_elve,SDL_Texture* background,SDL_W
state
[
0
].
y
=
0
;
state
[
0
].
w
=
offset_x
;
state
[
0
].
h
=
offset_y
;
afficherImage
(
renderer
,
window
,
tab
,
taille_cell
,
background
);
// afficherImage(renderer,window,tab,taille_cell,background);
afficherImageBrouillard
(
renderer
,
window
,
tab
,
taille_cell
,
background
,
pos_x
,
pos_y
);
affichage_fin
(
texture_fin
,
window
,
renderer
,
noeud_arrive
/
P
,
noeud_arrive
%
P
,
taille_cell
);
SDL_RenderCopy
(
renderer
,
texture_elve
,
&
state
[
i
],
&
destination
);
}
...
...
@@ -634,7 +644,8 @@ void play_standstill_3(SDL_Texture* texture_elve,SDL_Texture* background,SDL_Win
state
[
0
].
y
=
0
;
state
[
0
].
w
=
offset_x
;
state
[
0
].
h
=
offset_y
;
afficherImage
(
renderer
,
window
,
tab
,
taille_cell
,
background
);
// afficherImage(renderer,window,tab,taille_cell,background);
afficherImageBrouillard
(
renderer
,
window
,
tab
,
taille_cell
,
background
,
pos_x
,
pos_y
);
affichage_fin
(
texture_fin
,
window
,
renderer
,
noeud_arrive
/
P
,
noeud_arrive
%
P
,
taille_cell
);
SDL_RenderCopy
(
renderer
,
texture_elve
,
&
state
[
i
],
&
destination
);
}
...
...
@@ -661,7 +672,8 @@ void play_standstill_3_l(SDL_Texture* texture_elve,SDL_Texture* background,SDL_W
state
[
0
].
y
=
0
;
state
[
0
].
w
=
offset_x
;
state
[
0
].
h
=
offset_y
;
afficherImage
(
renderer
,
window
,
tab
,
taille_cell
,
background
);
// afficherImage(renderer,window,tab,taille_cell,background);
afficherImageBrouillard
(
renderer
,
window
,
tab
,
taille_cell
,
background
,
pos_x
,
pos_y
);
affichage_fin
(
texture_fin
,
window
,
renderer
,
noeud_arrive
/
P
,
noeud_arrive
%
P
,
taille_cell
);
SDL_RenderCopy
(
renderer
,
texture_elve
,
&
state
[
i
],
&
destination
);
}
...
...
@@ -688,7 +700,8 @@ void play_standstill_4(SDL_Texture* texture_elve,SDL_Texture* background,SDL_Win
state
[
0
].
y
=
0
;
state
[
0
].
w
=
offset_x
;
state
[
0
].
h
=
offset_y
;
afficherImage
(
renderer
,
window
,
tab
,
taille_cell
,
background
);
// afficherImage(renderer,window,tab,taille_cell,background);
afficherImageBrouillard
(
renderer
,
window
,
tab
,
taille_cell
,
background
,
pos_x
,
pos_y
);
affichage_fin
(
texture_fin
,
window
,
renderer
,
noeud_arrive
/
P
,
noeud_arrive
%
P
,
taille_cell
);
SDL_RenderCopy
(
renderer
,
texture_elve
,
&
state
[
i
],
&
destination
);
}
...
...
@@ -715,7 +728,8 @@ void play_standstill_4_l(SDL_Texture* texture_elve,SDL_Texture* background,SDL_W
state
[
0
].
y
=
0
;
state
[
0
].
w
=
offset_x
;
state
[
0
].
h
=
offset_y
;
afficherImage
(
renderer
,
window
,
tab
,
taille_cell
,
background
);
// afficherImage(renderer,window,tab,taille_cell,background);
afficherImageBrouillard
(
renderer
,
window
,
tab
,
taille_cell
,
background
,
pos_x
,
pos_y
);
affichage_fin
(
texture_fin
,
window
,
renderer
,
noeud_arrive
/
P
,
noeud_arrive
%
P
,
taille_cell
);
SDL_RenderCopy
(
renderer
,
texture_elve
,
&
state
[
i
],
&
destination
);
}
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment