added: first text templates, first checks for piece movement,

Information: There is no tui.h since MSVC doesn't find the code in there... for some unexplainable reason...
Check FC-Chess.h -> FCC::TUI for further information.
This commit is contained in:
AdmiralEmser
2022-10-09 17:13:41 +02:00
parent 036e84d2c1
commit 9c0acb89b9
15 changed files with 241 additions and 138 deletions
+1
View File
@@ -352,3 +352,4 @@ MigrationBackup/
# own
out/
.vscode/
build/
-101
View File
@@ -1,101 +0,0 @@
{
"version": 3,
"configurePresets": [
{
"name": "windows-base",
"hidden": true,
"generator": "Ninja",
"binaryDir": "${sourceDir}/out/build/${presetName}",
"installDir": "${sourceDir}/out/install/${presetName}",
"cacheVariables": {
"CMAKE_C_COMPILER": "cl.exe",
"CMAKE_CXX_COMPILER": "cl.exe"
},
"condition": {
"type": "equals",
"lhs": "${hostSystemName}",
"rhs": "Windows"
}
},
{
"name": "x64-debug",
"displayName": "x64 Debug",
"inherits": "windows-base",
"architecture": {
"value": "x64",
"strategy": "external"
},
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug"
}
},
{
"name": "x64-release",
"displayName": "x64 Release",
"inherits": "x64-debug",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release"
}
},
{
"name": "x86-debug",
"displayName": "x86 Debug",
"inherits": "windows-base",
"architecture": {
"value": "x86",
"strategy": "external"
},
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug"
}
},
{
"name": "x86-release",
"displayName": "x86 Release",
"inherits": "x86-debug",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release"
}
},
{
"name": "linux-debug",
"displayName": "Linux Debug",
"generator": "Ninja",
"binaryDir": "${sourceDir}/out/build/${presetName}",
"installDir": "${sourceDir}/out/install/${presetName}",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug"
},
"condition": {
"type": "equals",
"lhs": "${hostSystemName}",
"rhs": "Linux"
},
"vendor": {
"microsoft.com/VisualStudioRemoteSettings/CMake/1.0": {
"sourceDir": "$env{HOME}/.vs/$ms{projectDirName}"
}
}
},
{
"name": "macos-debug",
"displayName": "macOS Debug",
"generator": "Ninja",
"binaryDir": "${sourceDir}/out/build/${presetName}",
"installDir": "${sourceDir}/out/install/${presetName}",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug"
},
"condition": {
"type": "equals",
"lhs": "${hostSystemName}",
"rhs": "Darwin"
},
"vendor": {
"microsoft.com/VisualStudioRemoteSettings/CMake/1.0": {
"sourceDir": "$env{HOME}/.vs/$ms{projectDirName}"
}
}
}
]
}
+1 -1
View File
@@ -4,7 +4,7 @@
cmake_minimum_required (VERSION 3.8)
# Add source to this project's executable.
add_executable (FC-Chess "main.cpp" "fc-chess.cpp" "graphics.cpp")
add_executable (FC-Chess "main.cpp" "FC-Chess.cpp" "tui.cpp")
if (CMAKE_VERSION VERSION_GREATER 3.12)
set_property(TARGET FC-Chess PROPERTY CXX_STANDARD 20)
+58 -9
View File
@@ -1,9 +1,29 @@
#include "fc-chess.h"
#include "FC-Chess.h"
FCC::Chess::Chess()
{
//start game
FCC::Chess::startup();
FCC::Chess::mainLoop();
}
void FCC::Chess::mainLoop()
{
FCC::ChessTUI tui;
// initialize user interface
// tui.startup();
// main loop
while(!gameEnded)
{
/*MISSING: user input*/
// tui.mainLoop();
}
}
void FCC::Chess::startup()
{
// preparing board: colors
for (int8_t i = 0; i < 8; i++) {
for (int j = 0; i < 2; i++) {
@@ -32,11 +52,40 @@ void FCC::Chess::mainLoop()
posPieces[i][4] = (uint8_t)(Pieces::QUEEN);
}
// main loop
while(!gameEnded) {
tui.mainLoop();
}
// set language to English (default)
// m_lang = FCC::Languages::ENGLISH;
}
bool FCC::Chess::checkIsEnemyOnField()
{
// Check if the selected piece/field unequals the target piece/field => is true then
if (posColor[selX][selY] != posColor[tarX][tarY])
{
return true;
}
return false;
}
bool FCC::Chess::checkSelectedPosInBounds()
{
// check if X and Y values are below 8. No negative values have to be checked since the var type is unsigned int
if (selX <= 7 && selX <= 7)
{
return true;
}
return false;
}
bool FCC::Chess::checkTargetPosInBounds()
{
// check if X and Y values are below 8. No negative values have to be checked since the var type is unsigned int
if (tarX <= 7 && tarX <= 7)
{
return true;
}
return false;
}
//void FCC::Chess::set_lang(FCC::Languages lang) {
// m_lang = lang;
//}
+43 -6
View File
@@ -1,7 +1,7 @@
#pragma once
#include <iostream>
#include "graphics.h"
//#include <iostream>
// #include "tui.h"
#include "lang.h"
namespace FCC
{
@@ -22,19 +22,56 @@ namespace FCC
};
// classes and funcs
class TUI
{
/* Why is FCC::TUI here and not in tui.h, so another file? Well, that's quite easy. MSVC doesn't know how to access code from other files, apparently.
Error code is that class FCC::TUI wouldn't be a member of namespace FCC - which is a wrong statement. It is a member of FCC.
So yeah, thanks Microsoft.*/
public:
// constructor and destructor
TUI() = default;
virtual ~TUI() = default;
// funcs
void startup();
void mainLoop();
void testLoop();
};
class Chess
{
public:
// constructor and destructor
Chess() = default;
~Chess() = default;
Chess();
virtual ~Chess() = default;
// vars
uint8_t posPieces[8][8], posColor[8][8], posPossible[8][8];
uint8_t posPieces[8][8], posColor[8][8], posPossible[8][8], selX, selY, tarX, tarY; //tar = target, sel = selected, pos = possible
// funcs
void startup();
void mainLoop();
void checkHorizontalMovementAllowed();
void checkVerticalMovementAllowed();
void checkDiagonalMovementAllowed();
//void set_lang(FCC::Languages lang);
private:
// vars
bool gameEnded;
// texts for tui and gui
FCC::Lang lang;
FCC::TUI tui;
//FCC::ChessLang chessLangObj;
//FCC::Languages m_lang{ FCC::Languages::ENGLISH };
// funcs
void input();
bool checkIsEnemyOnField();
bool checkSelectedPosInBounds();
bool checkTargetPosInBounds();
void resetFieldColors();
};
}
+20
View File
@@ -0,0 +1,20 @@
#pragma once
#include <iostream>
#include "FC-Chess.h"
namespace FCC
{
class TUI
{
public:
// constructor and destructor
TUI() = default;
virtual ~TUI() = default;
// funcs
void startup();
void mainLoop();
void testLoop();
};
}
@@ -1,10 +1,18 @@
#include "graphics.h"
// #include "FC-Chess.h"
void FCC::ChessTUI::mainLoop() {
void FCC::TUI::startup()
{
}
void FCC::ChessTUI::testLoop() {
void FCC::TUI::mainLoop()
{
}
void FCC::TUI::testLoop()
{
std::cout << "\u2654" << std::endl;
std::cout << "" << std::endl;
//std::cout << L"♔";
+18
View File
@@ -0,0 +1,18 @@
#pragma once
#include "FC-Chess.h"
namespace FCC
{
class TUI
{
public:
// constructor and destructor
TUI() = default;
virtual ~TUI() = default;
// funcs
void startup();
void mainLoop();
void testLoop();
};
}
+6
View File
@@ -0,0 +1,6 @@
#include "lang.h"
void FCC::ChessLang::setLanguage(uint8_t setLangTo)
{
language = setLangTo;
}
+22
View File
@@ -0,0 +1,22 @@
#pragma once
#include <iostream>
//#include "FC-Chess.h"
#include <string>
namespace FCC {
enum class Languages {
ENGLISH,
GERMAN
};
}
namespace FCC::ChessLang
{
inline std::string testString(FCC::Languages lang) {
switch (lang) {
case FCC::Languages::ENGLISH:
return "Hello World";
case FCC::Languages::GERMAN:
return "Hallo Welt";
}
}
}
+18
View File
@@ -0,0 +1,18 @@
#pragma once
#include "FC-Chess.h"
namespace FCC
{
class TUI
{
public:
// constructor and destructor
TUI() = default;
virtual ~TUI() = default;
// funcs
void startup();
void mainLoop();
void testLoop();
};
}
-14
View File
@@ -1,14 +0,0 @@
#pragma once
#include <iostream>
#include "FC-Chess.h"
namespace FCC
{
class ChessTUI
{
public:
void mainLoop();
void testLoop();
};
}
+20
View File
@@ -0,0 +1,20 @@
#pragma once
#include <iostream>
#include <string>
namespace FCC
{
class Lang
{
public:
// texts shown in gui/tui
std::string menuButtonPlay = "Start Game!";
std::string menuButtonSettings = "Settings";
std::string menuButtonCredits = "Credits";
std::string menuButtonExitGame = "Exit to Desktop";
std::string error = "An error occoured. The game will exit now.";
std::string gameForbiddenMove = "This move is not allowed.";
std::string credits = "FoxCreation Chess by SinusFox 2022.\nContact: admiralemser@gmail.com\nhttps://github.com/AdmiralEmser/FC-Chess";
std::string backButton = "Back <--";
};
}
+4 -4
View File
@@ -1,17 +1,17 @@
// FC-Chess.cpp : Defines the entry point for the application.
//
#include "fc-chess.h"
#include "FC-Chess.h"
//using namespace std;
int main()
{
FCC::Chess gm;
gm.mainLoop();
FCC::ChessTUI test;
test.testLoop();
// FCC::TUI test;
// test.testLoop();
return 0;
}
+19
View File
@@ -0,0 +1,19 @@
// #include "tui.h"
#include "FC-Chess.h"
void FCC::TUI::startup()
{
}
void FCC::TUI::mainLoop()
{
}
void FCC::TUI::testLoop()
{
std::cout << "\u2654" << std::endl;
std::cout << "" << std::endl;
//std::cout << L"♔";
}