From 7a91913b289d80baf642cbdfe7060e952d1b50f7 Mon Sep 17 00:00:00 2001 From: lejulien Date: Fri, 9 Jan 2026 13:20:01 +0100 Subject: [PATCH] Initial commit --- .gitignore | 8 ++ CMakeLists.txt | 34 ++++++ Makefile | 257 +++++++++++++++++++++++++++++++++++++++++ TODO.txt | 3 + assets/-1.png | Bin 0 -> 3223 bytes assets/-2.png | Bin 0 -> 3006 bytes assets/0.png | Bin 0 -> 3289 bytes assets/1.png | Bin 0 -> 2753 bytes assets/10.png | Bin 0 -> 3113 bytes assets/11.png | Bin 0 -> 2935 bytes assets/12.png | Bin 0 -> 3018 bytes assets/2.png | Bin 0 -> 2900 bytes assets/3.png | Bin 0 -> 3081 bytes assets/4.png | Bin 0 -> 2858 bytes assets/5.png | Bin 0 -> 2610 bytes assets/6.png | Bin 0 -> 2574 bytes assets/7.png | Bin 0 -> 2396 bytes assets/8.png | Bin 0 -> 2512 bytes assets/9.png | Bin 0 -> 2929 bytes assets/back.png | Bin 0 -> 8713 bytes assets/skyjo-cards.png | Bin 0 -> 16372 bytes includes/CardMaker.hpp | 35 ++++++ sources/CardMaker.cpp | 62 ++++++++++ sources/main.cpp | 36 ++++++ 24 files changed, 435 insertions(+) create mode 100644 .gitignore create mode 100644 CMakeLists.txt create mode 100644 Makefile create mode 100644 TODO.txt create mode 100644 assets/-1.png create mode 100644 assets/-2.png create mode 100644 assets/0.png create mode 100644 assets/1.png create mode 100644 assets/10.png create mode 100644 assets/11.png create mode 100644 assets/12.png create mode 100644 assets/2.png create mode 100644 assets/3.png create mode 100644 assets/4.png create mode 100644 assets/5.png create mode 100644 assets/6.png create mode 100644 assets/7.png create mode 100644 assets/8.png create mode 100644 assets/9.png create mode 100644 assets/back.png create mode 100644 assets/skyjo-cards.png create mode 100644 includes/CardMaker.hpp create mode 100644 sources/CardMaker.cpp create mode 100644 sources/main.cpp diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c26deea --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +build +enc_temp_folder +out +_deps +CMakeSettings.json +.vs +.cache + diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..9147096 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,34 @@ +cmake_minimum_required(VERSION 3.21) + +set(NAME skyjo) + +project(${NAME} LANGUAGES CXX) + +include(FetchContent) + +set(ASSET_DIR ${CMAKE_CURRENT_SOURCE_DIR}/assets/) + +# Disable sfml audio (This avoids pulling in OpenAL) +set(SFML_BUILD_AUDIO OFF CACHE BOOL "" FORCE) + +FetchContent_Declare( + SFML + GIT_REPOSITORY https://github.com/SFML/SFML.git + GIT_TAG 2.6.1 +) +FetchContent_MakeAvailable(SFML) + +add_executable(${NAME} + sources/main.cpp + sources/CardMaker.cpp +) +target_link_libraries(${NAME} sfml-graphics sfml-window sfml-system) +target_include_directories(${NAME} PUBLIC + ./includes +) + +target_compile_definitions(${NAME} PRIVATE + ASSET_DIR="${ASSET_DIR}" +) + +install(TARGETS ${NAME}) diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..1668d83 --- /dev/null +++ b/Makefile @@ -0,0 +1,257 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.22 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lju/Documents/game_projects/skyjo + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lju/Documents/game_projects/skyjo + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components +.PHONY : list_install_components/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# The main all target +all: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/lju/Documents/game_projects/skyjo/CMakeFiles /home/lju/Documents/game_projects/skyjo//CMakeFiles/progress.marks + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 all + $(CMAKE_COMMAND) -E cmake_progress_start /home/lju/Documents/game_projects/skyjo/CMakeFiles 0 +.PHONY : all + +# The main clean target +clean: + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +#============================================================================= +# Target rules for targets named skyjo + +# Build rule for target. +skyjo: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 skyjo +.PHONY : skyjo + +# fast build rule for target. +skyjo/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/skyjo.dir/build.make CMakeFiles/skyjo.dir/build +.PHONY : skyjo/fast + +sources/CardMaker.o: sources/CardMaker.cpp.o +.PHONY : sources/CardMaker.o + +# target to build an object file +sources/CardMaker.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/skyjo.dir/build.make CMakeFiles/skyjo.dir/sources/CardMaker.cpp.o +.PHONY : sources/CardMaker.cpp.o + +sources/CardMaker.i: sources/CardMaker.cpp.i +.PHONY : sources/CardMaker.i + +# target to preprocess a source file +sources/CardMaker.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/skyjo.dir/build.make CMakeFiles/skyjo.dir/sources/CardMaker.cpp.i +.PHONY : sources/CardMaker.cpp.i + +sources/CardMaker.s: sources/CardMaker.cpp.s +.PHONY : sources/CardMaker.s + +# target to generate assembly for a file +sources/CardMaker.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/skyjo.dir/build.make CMakeFiles/skyjo.dir/sources/CardMaker.cpp.s +.PHONY : sources/CardMaker.cpp.s + +sources/main.o: sources/main.cpp.o +.PHONY : sources/main.o + +# target to build an object file +sources/main.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/skyjo.dir/build.make CMakeFiles/skyjo.dir/sources/main.cpp.o +.PHONY : sources/main.cpp.o + +sources/main.i: sources/main.cpp.i +.PHONY : sources/main.i + +# target to preprocess a source file +sources/main.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/skyjo.dir/build.make CMakeFiles/skyjo.dir/sources/main.cpp.i +.PHONY : sources/main.cpp.i + +sources/main.s: sources/main.cpp.s +.PHONY : sources/main.s + +# target to generate assembly for a file +sources/main.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/skyjo.dir/build.make CMakeFiles/skyjo.dir/sources/main.cpp.s +.PHONY : sources/main.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... install" + @echo "... install/local" + @echo "... install/strip" + @echo "... list_install_components" + @echo "... rebuild_cache" + @echo "... skyjo" + @echo "... sources/CardMaker.o" + @echo "... sources/CardMaker.i" + @echo "... sources/CardMaker.s" + @echo "... sources/main.o" + @echo "... sources/main.i" + @echo "... sources/main.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/TODO.txt b/TODO.txt new file mode 100644 index 0000000..8af2558 --- /dev/null +++ b/TODO.txt @@ -0,0 +1,3 @@ + -> Make a cardTextureLoader + -> Make a PlaySpace (with configurable size) + diff --git a/assets/-1.png b/assets/-1.png new file mode 100644 index 0000000000000000000000000000000000000000..989dc1999248cb3dcbda19c75735de9918d435b1 GIT binary patch literal 3223 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 E1M@QunE(I) literal 0 HcmV?d00001 diff --git a/assets/-2.png b/assets/-2.png new file mode 100644 index 0000000000000000000000000000000000000000..765f444cacb5b4c05cc7f6ba67cded580dc10e70 GIT binary patch literal 3006 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 XOf*3+;Efan00000NkvXXu0mjfm2E*M literal 0 HcmV?d00001 diff --git a/assets/1.png b/assets/1.png new file mode 100644 index 0000000000000000000000000000000000000000..4bfd28be3211317b55b6862e7b70faf0ac18aed6 GIT binary patch literal 2753 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 M07*qoM6N<$f@jUP%m4rY literal 0 HcmV?d00001 diff --git a/assets/2.png b/assets/2.png new file mode 100644 index 0000000000000000000000000000000000000000..f97c77a66c16bd5ae6b1a9a54f04a4ca87750fa8 GIT binary patch literal 2900 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 XQ>_NsDjR^J00000NkvXXu0mjfofhZn literal 0 HcmV?d00001 diff --git a/assets/4.png b/assets/4.png new file mode 100644 index 0000000000000000000000000000000000000000..26423d818f6d0fb41f6e9974012e3319e806e9ef GIT binary patch literal 2858 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 IM6N<$f;zNz;s5{u literal 0 HcmV?d00001 diff --git a/assets/5.png b/assets/5.png new file mode 100644 index 0000000000000000000000000000000000000000..3be116a5ccc8ac2460d5146962babd56c2ab244e GIT binary patch literal 2610 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 U23#*NqyPW_07*qoM6N<$f|!!q9{>OV literal 0 HcmV?d00001 diff --git a/assets/6.png b/assets/6.png new file mode 100644 index 0000000000000000000000000000000000000000..679bd759ce568836e8c61eb56358f9aac141581f GIT binary patch literal 2574 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 b_9p)eYab)Ls;nkY00000NkvXXu0mjfa@wM* literal 0 HcmV?d00001 diff --git a/assets/back.png b/assets/back.png new file mode 100644 index 0000000000000000000000000000000000000000..f717577e77154eebb987352068b70a6001f03962 GIT binary patch literal 8713 zcmeHLc{tSV*B?uk$u6=RV_#;*GPYqX*=64qF=k;fXpB9|mYt%ARCcmtPernp$`T?w z*@YxYioBy|`9073zW+Se^}hc-b6wx$=xE4y?(e800D$>4R5~@$W=gxbUxpcPT`$c;6v($kV7u4Lqc+x8WkML{N zM`p%f?3RnV9*M@U>?S1W)@oiH3bEd*m`Ir#4M}Mc3rV7<*q1ch(oEszzwP;byTsga zZGXl4=~I7~`kV9qNtft}A(}sfXJQZh?R-`>)m2AUoDVMDoxArgxm9=eXTRg_lwy72 zU0^Tkw(_RY{12y&aPOVr=~COfEtE~q+g#t5 z9KkM6&qmDgNyoAruwQa*Z*e0vpSHz|W?40G zNd|J5n$>gKR!ub6-@m_nu6*>|`AvvYB-~%x^gN+zw_ia`I7nmqasD1_Tr#|l7rRXVQH?BuLx=O#B|`fAIA zi$E6DJVwKczHqWUVVto1l$OZ~$Qc`I?by0)iVH`DB0 zQvL4t2<(b*UQkYiF~?U`zA`CVQD5&#QM9;esqc&wp_KP}hXxk(icCgtm+9uOUbA2x z3CJJJ+9}N(xld#+lVtcj{5q_I{`$v9oG}`Ed|{lM?ptD&my=sN=1Qtg-4%{+Ua8wT z176|=9te{mRxuod%bFCmt&wAg$@8^tE{CUPA9krGS6a~IV{OjdlfJs!$Tl^b*-=F; zn4n#Iz~rIL44->-qkbThmm{XLwBi|5!(uaMwN=E_Ag%GmXaQ##N^&SI_xf20k?Ry) zx(%gF}2uD+vuk$WLWPQ+D*m(40kt!D{BetMzzOoIo_d_nFF2-|O?MBPA)#u`aG{`iF=$ljDZai?-QLbFM#?K;FL3ya$&=;d6HaGKjMdX}um`K4X znWxng@)Y#1?^kp1LQ7lR-kzBT#8Oii>QLk6>4z8}HTnT>8jmrlOSvWm1`kprc2*sGcnZ9l zY4FO@1pLLQGTVa(jX)rndov^|py9k`i)(B4>*c!<{L?G!rSidCx(Qb}@lPGlwD@qX~gvBlefG9%pnuJDoeL8P!oh zi5$KPu#DDP0DTJq-3uKX3NLysI6idtV^Ou+IQ@RXASaJobQYe0H*hLzVEV;?PC*d$ zq<|~KTrW_3)9X#`>LqlIh69%W3%(=YhSKOIUr)y!)ls(WDG>wd^k`7!P=&VsTxaR> z(dKIF-MPr%o*By3TpKEIP0<+DnV{zlgDs;bvUUNw>?4VF<#Zxh%w5*n?1AMOAg2P2 zs94)hm-s&It*g7G_pLF}-XvAwd}PF~NZgjgDxJl6(`Av_Y8A_9x@6;u=pxyCRlzdh z45iT2`*fQg6lrw+F?3JODq*Ls?I=t-w6f=QDLZw!2{alHrvq(E2By&>E-CLB3qGpp zAMF}S30^gX@MvQsW+RWn$Nj_jUzfwNo^;D?&q5akEbrNQU5{s_fM>UvJARmFFBOMN zkC>Nk3XFpevvCd=q_t4p+|t(Ko;_4@?2J#TnA;51g$q(F83R;yV`@-M|9qureY+pAi~e9dm~MjJacYvLT;;9FV4wLDcajBFl87oQ7k^; zVt=J8Fa*XA4nB##F>5w{xR&!7B@kSAogn@47X22+R37t9E_8x5(N3+_e1FZDzA5>9 z47;7KYp&~$;@f6)Us;{?h^P^`SA07Oz=q&&>T`T>s_2u6lSreWA38Z}M_Ov;=;h#H zaQ>!6K)AiZ(yf1@NwBO;i&XTWu zj3eGZuYCfy4##`BG!ve(+!b@=Z57PBuAJeb79^ƈp>teNjnZMoGJt(#yzI<)t3 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 literal 0 HcmV?d00001 diff --git a/assets/skyjo-cards.png b/assets/skyjo-cards.png new file mode 100644 index 0000000000000000000000000000000000000000..2f49eeee8f5e2bc73801550cf3174bf0931b9036 GIT binary patch literal 16372 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 P! +#include +#include +#include +#include +#include + +#define CARD_BACK -3 + +#pragma once + +class Card { + private: + int value_; + bool flipped_ = false; + bool grabbed_ = false; + std::shared_ptr back_; + std::shared_ptr face_; + public: + Card(int value, std::shared_ptr face, std::shared_ptr back); + ~Card(); + int getValue(); + std::shared_ptr getSprite(); + void setPosition(sf::Vector2i pos); + void flip(); +}; + +class CardMaker { + private: + std::map> textures_; + public: + CardMaker(); + ~CardMaker(); + std::shared_ptr generate(int value); +}; diff --git a/sources/CardMaker.cpp b/sources/CardMaker.cpp new file mode 100644 index 0000000..50dd2cf --- /dev/null +++ b/sources/CardMaker.cpp @@ -0,0 +1,62 @@ +#include + +/// Card + +Card::Card(int value, std::shared_ptr face, + std::shared_ptr back) + : value_(value), face_(face), back_(back) {} + +Card::~Card() {} + +int Card::getValue() { return value_; } +std::shared_ptr Card::getSprite() { + if (flipped_) + return face_; + return back_; +} + +void Card::setPosition(sf::Vector2i vec) { + if (grabbed_) + face_->setPosition(vec.x - 15, vec.y - 25); +} + +void Card::flip() { + if (!flipped_) + grabbed_ == true; + flipped_ = true; +} + +/// CardMaker + +CardMaker::CardMaker() { + std::string ext(".png"); + std::string folder(ASSET_DIR); + for (int i = -2; i < 13; i++) { + auto tex = std::make_shared(); + std::string name(std::to_string(i)); + if (!tex->loadFromFile(folder + name + ext)) { + std::cerr << "Failed to load " << folder + name + ext << std::endl; + exit(1); + } + textures_[i] = tex; + } + auto tex = std::make_shared(); + + tex->loadFromFile(folder + "back.png"); + textures_[CARD_BACK] = tex; +} + +CardMaker::~CardMaker() {} + +std::shared_ptr CardMaker::generate(int value) { + if (value < -2 || value > 12) { + std::cerr << "Trying to generate oob card nbr " << value << std::endl; + exit(1); + } + auto spr_face = std::make_shared(); + auto spr_back = std::make_shared(); + spr_face->setTexture(*textures_[value]); + spr_back->setTexture(*textures_[CARD_BACK]); + auto card = std::make_shared(value, spr_face, spr_back); + return card; +} diff --git a/sources/main.cpp b/sources/main.cpp new file mode 100644 index 0000000..5ccb3ae --- /dev/null +++ b/sources/main.cpp @@ -0,0 +1,36 @@ +#include +#include + +#include +#include + +#include + +int main() { + sf::RenderWindow win(sf::VideoMode(800, 600), "Skyjo", sf::Style::Default); + CardMaker cm; + auto card = cm.generate(5); + card->flip(); + + win.create(sf::VideoMode(800, 600), "Skyjo"); + while (win.isOpen()) { + sf::Event ev; + + while (win.pollEvent(ev)) { + if (ev.type == sf::Event::Closed) { + win.close(); + } + } + if (sf::Mouse::isButtonPressed(sf::Mouse::Left)) + card->flip(); + // Clear frame buffer + win.clear(sf::Color::Black); + card->setPosition(sf::Mouse::getPosition(win)); + // Draw sprite + win.draw(*card->getSprite()); + + // Draw frame buffer + win.display(); + } + return 0; +}