Skip to content
Snippets Groups Projects
Commit a70f1234 authored by Le-Bao-Tin.Ha's avatar Le-Bao-Tin.Ha
Browse files

last and sad things to add :<

parent 42cc7512
No related branches found
No related tags found
No related merge requests found
Showing
with 1553 additions and 1458 deletions
......@@ -57,11 +57,35 @@ elseif (UNIX)
PKG_SEARCH_MODULE(SDL2MIXER REQUIRED SDL2_mixer)
file(GLOB_RECURSE SOURCES "src_linux/*c" main.c)
message(${SOURCES})
add_executable(INSAGAME ${SOURCES})
INCLUDE_DIRECTORIES(${SDL2_INCLUDE_DIRS} ${SDL2IMAGE_INCLUDE_DIR} ${SDl2TTF_INCLUDE_DIR} ${SDL2MIXER_INCLUDE_DIR} include)
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${SDL2_LIBRARIES} ${SDL2IMAGE_LIBRARIES} ${SDL2TTF_LIBRARIES} ${SDL2MIXER_LIBRARIES})
find_package(GTest REQUIRED)
include_directories(${GTEST_INCLUDE_DIRS})
option(BUILD_TESTS OFF)
set(BUILD_TESTS ON)
if(BUILD_TESTS)
project(INSAGAMETEST C CXX)
add_subdirectory(googletest)
set(GTEST_INCLUDE_DIR googletest/googletest/include)
INCLUDE_DIRECTORIES(test)
INCLUDE_DIRECTORIES(${GTEST_INCLUDE_DIR})
enable_testing()
file(GLOB_RECURSE SOURCES "src_linux/*c" test_main.cpp)
INCLUDE_DIRECTORIES(${SDL2_INCLUDE_DIRS} ${SDL2IMAGE_INCLUDE_DIR} ${SDl2TTF_INCLUDE_DIR} ${SDL2MIXER_INCLUDE_DIR} include)
add_executable(INSAGAMETEST ${SOURCES})
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${SDL2_LIBRARIES} ${SDL2IMAGE_LIBRARIES} ${SDL2TTF_LIBRARIES} ${SDL2MIXER_LIBRARIES} ${GTEST_LIBRARIES} pthread)
add_test(
NAME INSAGAMETEST
COMMAND INSAGAMETEST
)
else()
file(GLOB_RECURSE SOURCES "src_linux/*c" main.c)
message(${SOURCES})
add_executable(INSAGAME ${SOURCES})
INCLUDE_DIRECTORIES(${SDL2_INCLUDE_DIRS} ${SDL2IMAGE_INCLUDE_DIR} ${SDl2TTF_INCLUDE_DIR} ${SDL2MIXER_INCLUDE_DIR} include)
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${SDL2_LIBRARIES} ${SDL2IMAGE_LIBRARIES} ${SDL2TTF_LIBRARIES} ${SDL2MIXER_LIBRARIES} )
endif(BUILD_TESTS)
endif()
......
......@@ -69,14 +69,29 @@ Pour visualiser la documentation:
*****
##***TESTS UNITAIRES***
**Pour lancer les tests unitaires sous windows**
1. Dans le dossier GAME faire :
git clone https://github.com/google/googletest.git
2. Dans le CMakeLists.txt modifier :
set(BUILD_TEST OFF) --> set(BUILD_TEST ON)
3. Lancer le l'executable INSAGAME.exe dans un terminal pour visualiser les tests
3. Exécuter le projet
3. Lancer le l'executable INSAGAMETEST (dans GAME/cmake-build-debug) avec un terminal pour visualiser les tests
*****
##***RAPPORT DE TEST COVERAGE (SUITE DE TEST UNITAIRE)***
0. Installer et configurer CLion avec l'outil gcov pour pouvoir faire les étapes suivantes
1. Aller dans GAME/cmake-build-debug/CMakeFiles/INSAGAMETEST.dir
2. Lancer la commande :
lcov --capture --directory . --output-file coverage.info
3. Lancer la commande :
genhtml coverage.info --output-directory out
4. Verifier qu'un dossier nommé "out" va apparaitre
5. Aller dans ce dossier et ouvrir le fichier "index.html" avec un navigateur pour visualiser le rapport de test coverage
*****
##***VALGRIND***
......
......@@ -39,33 +39,8 @@
SDL_Texture * query_exam(DS * exam, SDL_Rect * exam_rect, SDL_Renderer * renderer, SDL_Window * window);
SDL_Texture * query_map(MAP * map, SDL_Renderer * renderer, SDL_Window * window);
SDL_Texture * query_heart(SDL_Rect * heart_rect,SDL_Renderer * renderer, SDL_Window * window, char * path);
SDL_Texture * query_score(SDL_Renderer *renderer, SDL_Rect* score_rect, SDL_Window * window, int score);
void copy_hero(Personnage * hero, SDL_Rect * hero_rect, SDL_Renderer * renderer, SDL_Texture ** container_textures_hero);
void load_timer_textures(SDL_Renderer * renderer, SDL_Texture ** container_timer, int number_second_max);
void load_hero_textures(SDL_Renderer * renderer, SDL_Texture ** container_textures_hero);
void load_teacher_textures(SDL_Renderer * renderer, SDL_Texture ** container_textures_teacher);
void copy_teacher(Prof * teacher, SDL_Rect * teacher_rect, SDL_Renderer * renderer, SDL_Texture ** container_textures_teacher);
void free_Textures(SDL_Texture ** container, int number);
int show_image_in_time(SDL_Renderer* renderer, SDL_Window * window, char * path, int time);
int calculer_score(Personnage * hero, int time_remaining, Window * window_play);
void test_event_hero(Personnage * hero, SDL_Event * event, int * close);
void test_event_hero_inverse(Personnage * hero, SDL_Event * event, int * close);
void test_event_hero_combinatoire(Personnage * hero, SDL_Event * event, int * close, int key_combinatoire);
#endif /*INSAGAME_GAME_H*/
/*!
* \file GAME.h
* \brief Game Header File
* \authors Tin
* \version 1
* \date 03/03/2021
*
* Game definition.
*
*/
#ifndef INSAGAME_QUERY__H
#define INSAGAME_QUERY__H
#include <SDL2/SDL.h>
#include "personnage.h"
#include "prof.h"
#include "DS.h"
#include "map.h"
#include "window.h"
SDL_Texture * query_exam(DS * exam, SDL_Rect * exam_rect, SDL_Renderer * renderer, SDL_Window * window);
SDL_Texture * query_map(MAP * map, SDL_Renderer * renderer, SDL_Window * window);
SDL_Texture * query_heart(SDL_Rect * heart_rect,SDL_Renderer * renderer, SDL_Window * window, char * path);
SDL_Texture * query_score(SDL_Renderer *renderer, SDL_Rect* score_rect, SDL_Window * window, int score);
void copy_hero(Personnage * hero, SDL_Rect * hero_rect, SDL_Renderer * renderer, SDL_Texture ** container_textures_hero);
void load_timer_textures(SDL_Renderer * renderer, SDL_Texture ** container_timer, int number_second_max);
void load_hero_textures(SDL_Renderer * renderer, SDL_Texture ** container_textures_hero);
void load_teacher_textures(SDL_Renderer * renderer, SDL_Texture ** container_textures_teacher);
void copy_teacher(Prof * teacher, SDL_Rect * teacher_rect, SDL_Renderer * renderer, SDL_Texture ** container_textures_teacher);
void free_Textures(SDL_Texture ** container, int number);
int show_image_in_time(SDL_Renderer* renderer, SDL_Window * window, char * path, int time);
void test_event_hero(Personnage * hero, SDL_Event * event, int * close);
void test_event_hero_inverse(Personnage * hero, SDL_Event * event, int * close);
void test_event_hero_combinatoire(Personnage * hero, SDL_Event * event, int * close, int key_combinatoire);
#endif //INSAGAME_QUERY__H
......@@ -5,7 +5,7 @@
#include "GAME.h"
#include "timer.h"
#include "window.h"
#include "Query_GAME.h"
int main(int argc, char *argv[])
{
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -18,7 +18,7 @@
#include "timer.h"
#include <time.h>
#include <stdio.h>
#include "Query_GAME.h"
/*!
* \fn void level_1(SDL_Renderer * renderer, SDL_Window * window, Personnage * hero, Window * window_play, int * close_request, int * time_remaining){
* \brief This function implements every feature necessary for the first level of the game.
......
......@@ -18,7 +18,7 @@
#include "timer.h"
#include <time.h>
#include <stdio.h>
#include "Query_GAME.h"
/*!
* \fn void level_10(SDL_Renderer * renderer, SDL_Window * window, Personnage * hero, Window * window_play, int * close_request, int * time_remaining){
* \brief This function implements every feature necessary for the final level of the game.
......
......@@ -18,7 +18,7 @@
#include "timer.h"
#include <time.h>
#include <stdio.h>
#include "Query_GAME.h"
/*!
* \fn void level_2(SDL_Renderer * renderer, SDL_Window * window, Personnage * hero, Window * window_play, int * close_request, int * time_remaining){
* \brief This function implements every feature necessary for the second level of the game.
......
......@@ -18,7 +18,7 @@
#include "timer.h"
#include <time.h>
#include <stdio.h>
#include "Query_GAME.h"
/*!
* \fn void level_3(SDL_Renderer * renderer, SDL_Window * window, Personnage * hero, Window * window_play, int * close_request, int * time_remaining){
* \brief This function implements every feature necessary for the third level of the game.
......
......@@ -18,7 +18,7 @@
#include "timer.h"
#include <time.h>
#include <stdio.h>
#include "Query_GAME.h"
/*!
* \fn void level_4(SDL_Renderer * renderer, SDL_Window * window, Personnage * hero, Window * window_play, int * close_request, int * time_remaining){
* \brief This function implements every feature necessary for the fourth level of the game.
......
......@@ -18,7 +18,7 @@
#include "timer.h"
#include <time.h>
#include <stdio.h>
#include "Query_GAME.h"
/*!
* \fn void level_5(SDL_Renderer * renderer, SDL_Window * window, Personnage * hero, Window * window_play, int * close_request, int * time_remaining){
* \brief This function implements every feature necessary for the fifth level of the game.
......
......@@ -18,7 +18,7 @@
#include "timer.h"
#include <time.h>
#include <stdio.h>
#include "Query_GAME.h"
/*!
* \fn void level_6(SDL_Renderer * renderer, SDL_Window * window, Personnage * hero, Window * window_play, int * close_request, int * time_remaining){
* \brief This function implements every feature necessary for the sixth level of the game.
......
......@@ -18,7 +18,7 @@
#include "timer.h"
#include <time.h>
#include <stdio.h>
#include "Query_GAME.h"
/*!
* \fn void level_7(SDL_Renderer * renderer, SDL_Window * window, Personnage * hero, Window * window_play, int * close_request, int * time_remaining){
* \brief This function implements every feature necessary for the seventh level of the game.
......
......@@ -18,7 +18,7 @@
#include "timer.h"
#include <time.h>
#include <stdio.h>
#include "Query_GAME.h"
/*!
* \fn void level_8(SDL_Renderer * renderer, SDL_Window * window, Personnage * hero, Window * window_play, int * close_request, int * time_remaining){
* \brief This function implements every feature necessary for the eighth level of the game.
......
......@@ -18,7 +18,7 @@
#include "timer.h"
#include <time.h>
#include <stdio.h>
#include "Query_GAME.h"
/*!
* \fn void level_9(SDL_Renderer * renderer, SDL_Window * window, Personnage * hero, Window * window_play, int * close_request, int * time_remaining){
* \brief This function implements every feature necessary for the ninth level of the game.
......
......@@ -381,9 +381,9 @@ void move_hero(Personnage * hero, SDL_Rect * hero_rect, Prof * teacher, DS * exa
case 4:
if (hero->x_pers <= 0) hero->x_pers = 2;
else if (hero->x_pers >= WINDOW_WIDTH - hero_rect->w) hero->x_pers = WINDOW_WIDTH - hero_rect->w - 2;
if (hero->y_pers <= 0) hero-> y_pers = 2;
if (hero->x_pers >= WINDOW_WIDTH - hero_rect->w) hero->x_pers = WINDOW_WIDTH - hero_rect->w - 2;
if (hero->y_pers >= WINDOW_HEIGHT - hero_rect->h) hero->y_pers = WINDOW_HEIGHT - hero_rect->h - 2;
else if (hero->y_pers >= WINDOW_HEIGHT - hero_rect->h) hero->y_pers = WINDOW_HEIGHT - hero_rect->h - 2;
hero_rect->x = (int) hero->x_pers;
hero_rect->y = (int) hero->y_pers;
break;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment