aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar alecdwm 2015-01-28 19:41:57 +1000
committerGravatar alecdwm 2015-01-28 19:41:57 +1000
commit12d1ab840ea5fa1ec3fdda380f95ae79bdc60548 (patch)
tree4a72b249ebb7f3a9f18fd52ef112e21db04fb4ba
Initial Commit
-rw-r--r--Gameboard.cpp101
-rw-r--r--Gameboard.h17
-rw-r--r--Makefile128
-rw-r--r--Player.cpp68
-rw-r--r--Player.h19
-rw-r--r--README.md1
-rw-r--r--main.cpp43
-rw-r--r--nbproject/Makefile-Debug.mk96
-rw-r--r--nbproject/Makefile-Release.mk96
-rw-r--r--nbproject/Makefile-Win64.mk96
-rw-r--r--nbproject/Makefile-impl.mk133
-rw-r--r--nbproject/Makefile-variables.mk43
-rw-r--r--nbproject/Package-Debug.bash76
-rw-r--r--nbproject/Package-Release.bash76
-rw-r--r--nbproject/Package-Win64.bash76
-rw-r--r--nbproject/configurations.xml123
-rw-r--r--nbproject/project.xml32
17 files changed, 1224 insertions, 0 deletions
diff --git a/Gameboard.cpp b/Gameboard.cpp
new file mode 100644
index 0000000..387e68d
--- /dev/null
+++ b/Gameboard.cpp
@@ -0,0 +1,101 @@
+#include "Gameboard.h"
+
+Gameboard::Gameboard() {
+ for(int y=0;y<3;y++) {
+ for(int x=0;x<3;x++) {
+ _gameboard[y][x] = _defaultSymbol;
+ }
+ }
+}
+
+void Gameboard::printGameboard() {
+ cout << "Game State:" << endl;
+ cout << " ABC" << endl;
+ for(int y=0;y<3;y++) {
+ cout << y+1;
+ for(int x=0;x<3;x++) {
+ cout << _gameboard[y][x];
+ }
+ cout << endl;
+ }
+}
+
+bool Gameboard::playMove(char symbol,int y,int x) {
+ if(_gameboard[y-1][x-1] == _defaultSymbol) {
+ _gameboard[y-1][x-1] = symbol;
+ return true;
+ }
+ else {
+ return false;
+ }
+}
+
+bool Gameboard::checkWin(int playerID,char symbol) {
+ string horizontalTop,horizontalMid,horizontalBottom,
+ verticalLeft,verticalMid,verticalRight,
+ diagonalTopLeft,diagonalTopRight,symbolRow = "";
+
+ symbolRow += symbol;
+ symbolRow += symbol;
+ symbolRow += symbol;
+
+ horizontalTop += _gameboard[0][0];
+ horizontalTop += _gameboard[0][1];
+ horizontalTop += _gameboard[0][2];
+
+ horizontalMid += _gameboard[1][0];
+ horizontalMid += _gameboard[1][1];
+ horizontalMid += _gameboard[1][2];
+
+ horizontalBottom += _gameboard[2][0];
+ horizontalBottom += _gameboard[2][1];
+ horizontalBottom += _gameboard[2][2];
+
+ verticalLeft += _gameboard[0][0];
+ verticalLeft += _gameboard[1][0];
+ verticalLeft += _gameboard[2][0];
+
+ verticalMid += _gameboard[0][1];
+ verticalMid += _gameboard[1][1];
+ verticalMid += _gameboard[2][1];
+
+ verticalRight += _gameboard[0][2];
+ verticalRight += _gameboard[1][2];
+ verticalRight += _gameboard[2][2];
+
+ diagonalTopLeft += _gameboard[0][0];
+ diagonalTopLeft += _gameboard[1][1];
+ diagonalTopLeft += _gameboard[2][2];
+
+ diagonalTopRight += _gameboard[0][2];
+ diagonalTopRight += _gameboard[1][1];
+ diagonalTopRight += _gameboard[2][0];
+
+ if(horizontalTop == symbolRow) {
+ return playerID;
+ }
+ else if(horizontalMid == symbolRow) {
+ return playerID;
+ }
+ else if(horizontalBottom == symbolRow) {
+ return playerID;
+ }
+ else if(verticalLeft == symbolRow) {
+ return playerID;
+ }
+ else if(verticalMid == symbolRow) {
+ return playerID;
+ }
+ else if(verticalRight == symbolRow) {
+ return playerID;
+ }
+ else if(diagonalTopLeft == symbolRow) {
+ return playerID;
+ }
+ else if(diagonalTopRight == symbolRow) {
+ return playerID;
+ }
+ else {
+ return 0;
+ }
+}
diff --git a/Gameboard.h b/Gameboard.h
new file mode 100644
index 0000000..3be9c0e
--- /dev/null
+++ b/Gameboard.h
@@ -0,0 +1,17 @@
+#pragma once
+#include <string>
+#include <iostream>
+
+using namespace std;
+
+class Gameboard {
+public:
+ Gameboard();
+ void printGameboard();
+ bool playMove(char symbol,int y,int x);
+ bool checkWin(int playerID,char symbol);
+private:
+ char _defaultSymbol = '#';
+ char _gameboard[3][3];
+ string _winner;
+};
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..05de621
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,128 @@
+#
+# There exist several targets which are by default empty and which can be
+# used for execution of your targets. These targets are usually executed
+# before and after some main targets. They are:
+#
+# .build-pre: called before 'build' target
+# .build-post: called after 'build' target
+# .clean-pre: called before 'clean' target
+# .clean-post: called after 'clean' target
+# .clobber-pre: called before 'clobber' target
+# .clobber-post: called after 'clobber' target
+# .all-pre: called before 'all' target
+# .all-post: called after 'all' target
+# .help-pre: called before 'help' target
+# .help-post: called after 'help' target
+#
+# Targets beginning with '.' are not intended to be called on their own.
+#
+# Main targets can be executed directly, and they are:
+#
+# build build a specific configuration
+# clean remove built files from a configuration
+# clobber remove all built files
+# all build all configurations
+# help print help mesage
+#
+# Targets .build-impl, .clean-impl, .clobber-impl, .all-impl, and
+# .help-impl are implemented in nbproject/makefile-impl.mk.
+#
+# Available make variables:
+#
+# CND_BASEDIR base directory for relative paths
+# CND_DISTDIR default top distribution directory (build artifacts)
+# CND_BUILDDIR default top build directory (object files, ...)
+# CONF name of current configuration
+# CND_PLATFORM_${CONF} platform name (current configuration)
+# CND_ARTIFACT_DIR_${CONF} directory of build artifact (current configuration)
+# CND_ARTIFACT_NAME_${CONF} name of build artifact (current configuration)
+# CND_ARTIFACT_PATH_${CONF} path to build artifact (current configuration)
+# CND_PACKAGE_DIR_${CONF} directory of package (current configuration)
+# CND_PACKAGE_NAME_${CONF} name of package (current configuration)
+# CND_PACKAGE_PATH_${CONF} path to package (current configuration)
+#
+# NOCDDL
+
+
+# Environment
+MKDIR=mkdir
+CP=cp
+CCADMIN=CCadmin
+
+
+# build
+build: .build-post
+
+.build-pre:
+# Add your pre 'build' code here...
+
+.build-post: .build-impl
+# Add your post 'build' code here...
+
+
+# clean
+clean: .clean-post
+
+.clean-pre:
+# Add your pre 'clean' code here...
+
+.clean-post: .clean-impl
+# Add your post 'clean' code here...
+
+
+# clobber
+clobber: .clobber-post
+
+.clobber-pre:
+# Add your pre 'clobber' code here...
+
+.clobber-post: .clobber-impl
+# Add your post 'clobber' code here...
+
+
+# all
+all: .all-post
+
+.all-pre:
+# Add your pre 'all' code here...
+
+.all-post: .all-impl
+# Add your post 'all' code here...
+
+
+# build tests
+build-tests: .build-tests-post
+
+.build-tests-pre:
+# Add your pre 'build-tests' code here...
+
+.build-tests-post: .build-tests-impl
+# Add your post 'build-tests' code here...
+
+
+# run tests
+test: .test-post
+
+.test-pre: build-tests
+# Add your pre 'test' code here...
+
+.test-post: .test-impl
+# Add your post 'test' code here...
+
+
+# help
+help: .help-post
+
+.help-pre:
+# Add your pre 'help' code here...
+
+.help-post: .help-impl
+# Add your post 'help' code here...
+
+
+
+# include project implementation makefile
+include nbproject/Makefile-impl.mk
+
+# include project make variables
+include nbproject/Makefile-variables.mk
diff --git a/Player.cpp b/Player.cpp
new file mode 100644
index 0000000..48fb76c
--- /dev/null
+++ b/Player.cpp
@@ -0,0 +1,68 @@
+#include "Player.h"
+
+Player::Player(int playerID) {
+ _playerID = playerID;
+
+ cout << "Enter Player " << playerID << "'s name:" << endl;
+ cout << " > ";
+ cin >> _name;
+ cout << endl;
+
+ cout << "Enter " << _name << "'s symbol:" << endl;
+ cout << " > ";
+ cin >> _symbol;
+ cout << endl;
+}
+
+int Player::getPlayerID() {
+ return _playerID;
+}
+
+string Player::getName() {
+ return _name;
+}
+
+char Player::getSymbol() {
+ return _symbol;
+}
+
+int Player::getMoveX() {
+ int moveX = -1;
+ while(moveX == -1) {
+ cout << "Enter letter coordinate:" << endl;
+ cout << " > ";
+ string testMoveX;
+ cin >> testMoveX;
+ if(testMoveX == "A" || testMoveX == "a") {
+ moveX = 1;
+ } else if(testMoveX == "B" || testMoveX == "b") {
+ moveX = 2;
+ }
+ else if(testMoveX == "C" || testMoveX == "c") {
+ moveX = 3;
+ }
+ cout << endl;
+ }
+ return moveX;
+}
+
+int Player::getMoveY() {
+ int moveY = -1;
+ while(moveY == -1) {
+ cout << "Enter number coordinate:" << endl;
+ cout << " > ";
+ string testMoveY;
+ cin >> testMoveY;
+ if(testMoveY == "1") {
+ moveY = 1;
+ }
+ else if(testMoveY == "2") {
+ moveY = 2;
+ }
+ else if(testMoveY == "3") {
+ moveY = 3;
+ }
+ cout << endl;
+ }
+ return moveY;
+}
diff --git a/Player.h b/Player.h
new file mode 100644
index 0000000..73f1f29
--- /dev/null
+++ b/Player.h
@@ -0,0 +1,19 @@
+#pragma once
+#include <string>
+#include <iostream>
+
+using namespace std;
+
+class Player {
+public:
+ Player(int playerID);
+ int getPlayerID();
+ string getName();
+ char getSymbol();
+ int getMoveX();
+ int getMoveY();
+private:
+ int _playerID;
+ string _name;
+ char _symbol;
+};
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..b37b3b5
--- /dev/null
+++ b/README.md
@@ -0,0 +1 @@
+# CppTicTacToe \ No newline at end of file
diff --git a/main.cpp b/main.cpp
new file mode 100644
index 0000000..526516a
--- /dev/null
+++ b/main.cpp
@@ -0,0 +1,43 @@
+#include <iostream>
+
+#include "Player.h"
+#include "Gameboard.h"
+
+using namespace std;
+
+int main()
+{
+ // Initialize game
+ cout << "Welcome to TicTacToe!" << endl << endl;
+
+ // Initialize gameboard
+ Gameboard gameboard;
+
+ // Initialize players
+ Player player1(1);
+ Player player2(2);
+
+ // Do gameloop
+ int endGame = 0;
+ while(!endGame) {
+ gameboard.printGameboard();
+ cout << player1.getName() << "'s turn:" << endl;
+ gameboard.playMove(player1.getSymbol(),player1.getMoveY(),player1.getMoveX());
+ endGame = gameboard.checkWin(player1.getPlayerID(),player1.getSymbol());
+ if(endGame){break;}
+ gameboard.printGameboard();
+ cout << player2.getName() << "'s turn:" << endl;
+ gameboard.playMove(player2.getSymbol(),player2.getMoveY(),player2.getMoveX());
+ endGame = gameboard.checkWin(player2.getPlayerID(),player2.getSymbol());
+ }
+
+ // Print winning player
+ if(endGame == player1.getPlayerID()) {
+ cout << player1.getName() << " Wins!" << endl;
+ }
+ if(endGame == player2.getPlayerID()) {
+ cout << player2.getName() << " Wins!" << endl;
+ }
+
+ return 0;
+}
diff --git a/nbproject/Makefile-Debug.mk b/nbproject/Makefile-Debug.mk
new file mode 100644
index 0000000..ad88a54
--- /dev/null
+++ b/nbproject/Makefile-Debug.mk
@@ -0,0 +1,96 @@
+#
+# Generated Makefile - do not edit!
+#
+# Edit the Makefile in the project folder instead (../Makefile). Each target
+# has a -pre and a -post target defined where you can add customized code.
+#
+# This makefile implements configuration specific macros and targets.
+
+
+# Environment
+MKDIR=mkdir
+CP=cp
+GREP=grep
+NM=nm
+CCADMIN=CCadmin
+RANLIB=ranlib
+CC=gcc
+CCC=g++
+CXX=g++
+FC=gfortran
+AS=as
+
+# Macros
+CND_PLATFORM=GNU-Linux-x86
+CND_DLIB_EXT=so
+CND_CONF=Debug
+CND_DISTDIR=dist
+CND_BUILDDIR=build
+
+# Include project Makefile
+include Makefile
+
+# Object Directory
+OBJECTDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}
+
+# Object Files
+OBJECTFILES= \
+ ${OBJECTDIR}/Gameboard.o \
+ ${OBJECTDIR}/Player.o \
+ ${OBJECTDIR}/main.o
+
+
+# C Compiler Flags
+CFLAGS=
+
+# CC Compiler Flags
+CCFLAGS=
+CXXFLAGS=
+
+# Fortran Compiler Flags
+FFLAGS=
+
+# Assembler Flags
+ASFLAGS=
+
+# Link Libraries and Options
+LDLIBSOPTIONS=
+
+# Build Targets
+.build-conf: ${BUILD_SUBPROJECTS}
+ "${MAKE}" -f nbproject/Makefile-${CND_CONF}.mk ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/cpptictactoe
+
+${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/cpptictactoe: ${OBJECTFILES}
+ ${MKDIR} -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}
+ ${LINK.cc} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/cpptictactoe ${OBJECTFILES} ${LDLIBSOPTIONS}
+
+${OBJECTDIR}/Gameboard.o: Gameboard.cpp
+ ${MKDIR} -p ${OBJECTDIR}
+ ${RM} "$@.d"
+ $(COMPILE.cc) -g -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/Gameboard.o Gameboard.cpp
+
+${OBJECTDIR}/Player.o: Player.cpp
+ ${MKDIR} -p ${OBJECTDIR}
+ ${RM} "$@.d"
+ $(COMPILE.cc) -g -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/Player.o Player.cpp
+
+${OBJECTDIR}/main.o: main.cpp
+ ${MKDIR} -p ${OBJECTDIR}
+ ${RM} "$@.d"
+ $(COMPILE.cc) -g -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/main.o main.cpp
+
+# Subprojects
+.build-subprojects:
+
+# Clean Targets
+.clean-conf: ${CLEAN_SUBPROJECTS}
+ ${RM} -r ${CND_BUILDDIR}/${CND_CONF}
+ ${RM} ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/cpptictactoe
+
+# Subprojects
+.clean-subprojects:
+
+# Enable dependency checking
+.dep.inc: .depcheck-impl
+
+include .dep.inc
diff --git a/nbproject/Makefile-Release.mk b/nbproject/Makefile-Release.mk
new file mode 100644
index 0000000..f7c8e12
--- /dev/null
+++ b/nbproject/Makefile-Release.mk
@@ -0,0 +1,96 @@
+#
+# Generated Makefile - do not edit!
+#
+# Edit the Makefile in the project folder instead (../Makefile). Each target
+# has a -pre and a -post target defined where you can add customized code.
+#
+# This makefile implements configuration specific macros and targets.
+
+
+# Environment
+MKDIR=mkdir
+CP=cp
+GREP=grep
+NM=nm
+CCADMIN=CCadmin
+RANLIB=ranlib
+CC=gcc
+CCC=g++
+CXX=g++
+FC=gfortran
+AS=as
+
+# Macros
+CND_PLATFORM=GNU-Linux-x86
+CND_DLIB_EXT=so
+CND_CONF=Release
+CND_DISTDIR=dist
+CND_BUILDDIR=build
+
+# Include project Makefile
+include Makefile
+
+# Object Directory
+OBJECTDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}
+
+# Object Files
+OBJECTFILES= \
+ ${OBJECTDIR}/Gameboard.o \
+ ${OBJECTDIR}/Player.o \
+ ${OBJECTDIR}/main.o
+
+
+# C Compiler Flags
+CFLAGS=
+
+# CC Compiler Flags
+CCFLAGS=
+CXXFLAGS=
+
+# Fortran Compiler Flags
+FFLAGS=
+
+# Assembler Flags
+ASFLAGS=
+
+# Link Libraries and Options
+LDLIBSOPTIONS=
+
+# Build Targets
+.build-conf: ${BUILD_SUBPROJECTS}
+ "${MAKE}" -f nbproject/Makefile-${CND_CONF}.mk ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/cpptictactoe
+
+${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/cpptictactoe: ${OBJECTFILES}
+ ${MKDIR} -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}
+ ${LINK.cc} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/cpptictactoe ${OBJECTFILES} ${LDLIBSOPTIONS}
+
+${OBJECTDIR}/Gameboard.o: Gameboard.cpp
+ ${MKDIR} -p ${OBJECTDIR}
+ ${RM} "$@.d"
+ $(COMPILE.cc) -O2 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/Gameboard.o Gameboard.cpp
+
+${OBJECTDIR}/Player.o: Player.cpp
+ ${MKDIR} -p ${OBJECTDIR}
+ ${RM} "$@.d"
+ $(COMPILE.cc) -O2 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/Player.o Player.cpp
+
+${OBJECTDIR}/main.o: main.cpp
+ ${MKDIR} -p ${OBJECTDIR}
+ ${RM} "$@.d"
+ $(COMPILE.cc) -O2 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/main.o main.cpp
+
+# Subprojects
+.build-subprojects:
+
+# Clean Targets
+.clean-conf: ${CLEAN_SUBPROJECTS}
+ ${RM} -r ${CND_BUILDDIR}/${CND_CONF}
+ ${RM} ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/cpptictactoe
+
+# Subprojects
+.clean-subprojects:
+
+# Enable dependency checking
+.dep.inc: .depcheck-impl
+
+include .dep.inc
diff --git a/nbproject/Makefile-Win64.mk b/nbproject/Makefile-Win64.mk
new file mode 100644
index 0000000..ed67a69
--- /dev/null
+++ b/nbproject/Makefile-Win64.mk
@@ -0,0 +1,96 @@
+#
+# Generated Makefile - do not edit!
+#
+# Edit the Makefile in the project folder instead (../Makefile). Each target
+# has a -pre and a -post target defined where you can add customized code.
+#
+# This makefile implements configuration specific macros and targets.
+
+
+# Environment
+MKDIR=mkdir
+CP=cp
+GREP=grep
+NM=nm
+CCADMIN=CCadmin
+RANLIB=ranlib
+CC=gcc
+CCC=x86_64-w64-mingw32-g++
+CXX=x86_64-w64-mingw32-g++
+FC=gfortran
+AS=as
+
+# Macros
+CND_PLATFORM=GNU-Linux-x86
+CND_DLIB_EXT=so
+CND_CONF=Win64
+CND_DISTDIR=dist
+CND_BUILDDIR=build
+
+# Include project Makefile
+include Makefile
+
+# Object Directory
+OBJECTDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}
+
+# Object Files
+OBJECTFILES= \
+ ${OBJECTDIR}/Gameboard.o \
+ ${OBJECTDIR}/Player.o \
+ ${OBJECTDIR}/main.o
+
+
+# C Compiler Flags
+CFLAGS=
+
+# CC Compiler Flags
+CCFLAGS=
+CXXFLAGS=
+
+# Fortran Compiler Flags
+FFLAGS=
+
+# Assembler Flags
+ASFLAGS=
+
+# Link Libraries and Options
+LDLIBSOPTIONS=
+
+# Build Targets
+.build-conf: ${BUILD_SUBPROJECTS}
+ "${MAKE}" -f nbproject/Makefile-${CND_CONF}.mk ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/cpptictactoe.exe
+
+${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/cpptictactoe.exe: ${OBJECTFILES}
+ ${MKDIR} -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}
+ x86_64-w64-mingw32-g++ -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/cpptictactoe.exe ${OBJECTFILES} ${LDLIBSOPTIONS}
+
+${OBJECTDIR}/Gameboard.o: Gameboard.cpp
+ ${MKDIR} -p ${OBJECTDIR}
+ ${RM} "$@.d"
+ $(COMPILE.cc) -g -std=c++11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/Gameboard.o Gameboard.cpp
+
+${OBJECTDIR}/Player.o: Player.cpp
+ ${MKDIR} -p ${OBJECTDIR}
+ ${RM} "$@.d"
+ $(COMPILE.cc) -g -std=c++11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/Player.o Player.cpp
+
+${OBJECTDIR}/main.o: main.cpp
+ ${MKDIR} -p ${OBJECTDIR}
+ ${RM} "$@.d"
+ $(COMPILE.cc) -g -std=c++11 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/main.o main.cpp
+
+# Subprojects
+.build-subprojects:
+
+# Clean Targets
+.clean-conf: ${CLEAN_SUBPROJECTS}
+ ${RM} -r ${CND_BUILDDIR}/${CND_CONF}
+ ${RM} ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/cpptictactoe.exe
+
+# Subprojects
+.clean-subprojects:
+
+# Enable dependency checking
+.dep.inc: .depcheck-impl
+
+include .dep.inc
diff --git a/nbproject/Makefile-impl.mk b/nbproject/Makefile-impl.mk
new file mode 100644
index 0000000..0afa4a7
--- /dev/null
+++ b/nbproject/Makefile-impl.mk
@@ -0,0 +1,133 @@
+#
+# Generated Makefile - do not edit!
+#
+# Edit the Makefile in the project folder instead (../Makefile). Each target
+# has a pre- and a post- target defined where you can add customization code.
+#
+# This makefile implements macros and targets common to all configurations.
+#
+# NOCDDL
+
+
+# Building and Cleaning subprojects are done by default, but can be controlled with the SUB
+# macro. If SUB=no, subprojects will not be built or cleaned. The following macro
+# statements set BUILD_SUB-CONF and CLEAN_SUB-CONF to .build-reqprojects-conf
+# and .clean-reqprojects-conf unless SUB has the value 'no'
+SUB_no=NO
+SUBPROJECTS=${SUB_${SUB}}
+BUILD_SUBPROJECTS_=.build-subprojects
+BUILD_SUBPROJECTS_NO=
+BUILD_SUBPROJECTS=${BUILD_SUBPROJECTS_${SUBPROJECTS}}
+CLEAN_SUBPROJECTS_=.clean-subprojects
+CLEAN_SUBPROJECTS_NO=
+CLEAN_SUBPROJECTS=${CLEAN_SUBPROJECTS_${SUBPROJECTS}}
+
+
+# Project Name
+PROJECTNAME=CppTicTacToe
+
+# Active Configuration
+DEFAULTCONF=Debug
+CONF=${DEFAULTCONF}
+
+# All Configurations
+ALLCONFS=Debug Release Win64
+
+
+# build
+.build-impl: .build-pre .validate-impl .depcheck-impl
+ @#echo "=> Running $@... Configuration=$(CONF)"
+ "${MAKE}" -f nbproject/Makefile-${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .build-conf
+
+
+# clean
+.clean-impl: .clean-pre .validate-impl .depcheck-impl
+ @#echo "=> Running $@... Configuration=$(CONF)"
+ "${MAKE}" -f nbproject/Makefile-${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .clean-conf
+
+
+# clobber
+.clobber-impl: .clobber-pre .depcheck-impl
+ @#echo "=> Running $@..."
+ for CONF in ${ALLCONFS}; \
+ do \
+ "${MAKE}" -f nbproject/Makefile-$${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .clean-conf; \
+ done
+
+# all
+.all-impl: .all-pre .depcheck-impl
+ @#echo "=> Running $@..."
+ for CONF in ${ALLCONFS}; \
+ do \
+ "${MAKE}" -f nbproject/Makefile-$${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .build-conf; \
+ done
+
+# build tests
+.build-tests-impl: .build-impl .build-tests-pre
+ @#echo "=> Running $@... Configuration=$(CONF)"
+ "${MAKE}" -f nbproject/Makefile-${CONF}.mk SUBPROJECTS=${SUBPROJECTS} .build-tests-conf
+
+# run tests
+.test-impl: .build-tests-impl .test-pre
+ @#echo "=> Running $@... Configuration=$(CONF)"
+ "${MAKE}" -f nbproject/Makefile-${CONF}.mk SUBPROJECTS=${SUBPROJECTS} .test-conf
+
+# dependency checking support
+.depcheck-impl:
+ @echo "# This code depends on make tool being used" >.dep.inc
+ @if [ -n "${MAKE_VERSION}" ]; then \
+ echo "DEPFILES=\$$(wildcard \$$(addsuffix .d, \$${OBJECTFILES}))" >>.dep.inc; \
+ echo "ifneq (\$${DEPFILES},)" >>.dep.inc; \
+ echo "include \$${DEPFILES}" >>.dep.inc; \
+ echo "endif" >>.dep.inc; \
+ else \
+ echo ".KEEP_STATE:" >>.dep.inc; \
+ echo ".KEEP_STATE_FILE:.make.state.\$${CONF}" >>.dep.inc; \
+ fi
+
+# configuration validation
+.validate-impl:
+ @if [ ! -f nbproject/Makefile-${CONF}.mk ]; \
+ then \
+ echo ""; \
+ echo "Error: can not find the makefile for configuration '${CONF}' in project ${PROJECTNAME}"; \
+ echo "See 'make help' for details."; \
+ echo "Current directory: " `pwd`; \
+ echo ""; \
+ fi
+ @if [ ! -f nbproject/Makefile-${CONF}.mk ]; \
+ then \
+ exit 1; \
+ fi
+
+
+# help
+.help-impl: .help-pre
+ @echo "This makefile supports the following configurations:"
+ @echo " ${ALLCONFS}"
+ @echo ""
+ @echo "and the following targets:"
+ @echo " build (default target)"
+ @echo " clean"
+ @echo " clobber"
+ @echo " all"
+ @echo " help"
+ @echo ""
+ @echo "Makefile Usage:"
+ @echo " make [CONF=<CONFIGURATION>] [SUB=no] build"
+ @echo " make [CONF=<CONFIGURATION>] [SUB=no] clean"
+ @echo " make [SUB=no] clobber"
+ @echo " make [SUB=no] all"
+ @echo " make help"
+ @echo ""
+ @echo "Target 'build' will build a specific configuration and, unless 'SUB=no',"
+ @echo " also build subprojects."
+ @echo "Target 'clean' will clean a specific configuration and, unless 'SUB=no',"
+ @echo " also clean subprojects."
+ @echo "Target 'clobber' will remove all built files from all configurations and,"
+ @echo " unless 'SUB=no', also from subprojects."
+ @echo "Target 'all' will will build all configurations and, unless 'SUB=no',"
+ @echo " also build subprojects."
+ @echo "Target 'help' prints this message."
+ @echo ""
+
diff --git a/nbproject/Makefile-variables.mk b/nbproject/Makefile-variables.mk
new file mode 100644
index 0000000..82e95d4
--- /dev/null
+++ b/nbproject/Makefile-variables.mk
@@ -0,0 +1,43 @@
+#
+# Generated - do not edit!
+#
+# NOCDDL
+#
+CND_BASEDIR=`pwd`
+CND_BUILDDIR=build
+CND_DISTDIR=dist
+# Debug configuration
+CND_PLATFORM_Debug=GNU-Linux-x86
+CND_ARTIFACT_DIR_Debug=dist/Debug/GNU-Linux-x86
+CND_ARTIFACT_NAME_Debug=cpptictactoe
+CND_ARTIFACT_PATH_Debug=dist/Debug/GNU-Linux-x86/cpptictactoe
+CND_PACKAGE_DIR_Debug=dist/Debug/GNU-Linux-x86/package
+CND_PACKAGE_NAME_Debug=cpptictactoe.tar
+CND_PACKAGE_PATH_Debug=dist/Debug/GNU-Linux-x86/package/cpptictactoe.tar
+# Release configuration
+CND_PLATFORM_Release=GNU-Linux-x86
+CND_ARTIFACT_DIR_Release=dist/Release/GNU-Linux-x86
+CND_ARTIFACT_NAME_Release=cpptictactoe
+CND_ARTIFACT_PATH_Release=dist/Release/GNU-Linux-x86/cpptictactoe
+CND_PACKAGE_DIR_Release=dist/Release/GNU-Linux-x86/package
+CND_PACKAGE_NAME_Release=cpptictactoe.tar
+CND_PACKAGE_PATH_Release=dist/Release/GNU-Linux-x86/package/cpptictactoe.tar
+# Win64 configuration
+CND_PLATFORM_Win64=GNU-Linux-x86
+CND_ARTIFACT_DIR_Win64=dist/Win64/GNU-Linux-x86
+CND_ARTIFACT_NAME_Win64=cpptictactoe.exe
+CND_ARTIFACT_PATH_Win64=dist/Win64/GNU-Linux-x86/cpptictactoe.exe
+CND_PACKAGE_DIR_Win64=dist/Win64/GNU-Linux-x86/package
+CND_PACKAGE_NAME_Win64=cpptictactoe.tar
+CND_PACKAGE_PATH_Win64=dist/Win64/GNU-Linux-x86/package/cpptictactoe.tar
+#
+# include compiler specific variables
+#
+# dmake command
+ROOT:sh = test -f nbproject/private/Makefile-variables.mk || \
+ (mkdir -p nbproject/private && touch nbproject/private/Makefile-variables.mk)
+#
+# gmake command
+.PHONY: $(shell test -f nbproject/private/Makefile-variables.mk || (mkdir -p nbproject/private && touch nbproject/private/Makefile-variables.mk))
+#
+include nbproject/private/Makefile-variables.mk
diff --git a/nbproject/Package-Debug.bash b/nbproject/Package-Debug.bash
new file mode 100644
index 0000000..7cf9b2f
--- /dev/null
+++ b/nbproject/Package-Debug.bash
@@ -0,0 +1,76 @@
+#!/bin/bash -x
+
+#
+# Generated - do not edit!
+#
+
+# Macros
+TOP=`pwd`
+CND_PLATFORM=GNU-Linux-x86
+CND_CONF=Debug
+CND_DISTDIR=dist
+CND_BUILDDIR=build
+CND_DLIB_EXT=so
+NBTMPDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tmp-packaging
+TMPDIRNAME=tmp-packaging
+OUTPUT_PATH=${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/cpptictactoe
+OUTPUT_BASENAME=cpptictactoe
+PACKAGE_TOP_DIR=cpptictactoe/
+
+# Functions
+function checkReturnCode
+{
+ rc=$?
+ if [ $rc != 0 ]
+ then
+ exit $rc
+ fi
+}
+function makeDirectory
+# $1 directory path
+# $2 permission (optional)
+{
+ mkdir -p "$1"
+ checkReturnCode
+ if [ "$2" != "" ]
+ then
+ chmod $2 "$1"
+ checkReturnCode
+ fi
+}
+function copyFileToTmpDir
+# $1 from-file path
+# $2 to-file path
+# $3 permission
+{
+ cp "$1" "$2"
+ checkReturnCode
+ if [ "$3" != "" ]
+ then
+ chmod $3 "$2"
+ checkReturnCode
+ fi
+}
+
+# Setup
+cd "${TOP}"
+mkdir -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package
+rm -rf ${NBTMPDIR}
+mkdir -p ${NBTMPDIR}
+
+# Copy files and create directories and links
+cd "${TOP}"
+makeDirectory "${NBTMPDIR}/cpptictactoe/bin"
+copyFileToTmpDir "${OUTPUT_PATH}" "${NBTMPDIR}/${PACKAGE_TOP_DIR}bin/${OUTPUT_BASENAME}" 0755
+
+
+# Generate tar file
+cd "${TOP}"
+rm -f ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/cpptictactoe.tar
+cd ${NBTMPDIR}
+tar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/cpptictactoe.tar *
+checkReturnCode
+
+# Cleanup
+cd "${TOP}"
+rm -rf ${NBTMPDIR}
diff --git a/nbproject/Package-Release.bash b/nbproject/Package-Release.bash
new file mode 100644
index 0000000..da1f94b
--- /dev/null
+++ b/nbproject/Package-Release.bash
@@ -0,0 +1,76 @@
+#!/bin/bash -x
+
+#
+# Generated - do not edit!
+#
+
+# Macros
+TOP=`pwd`
+CND_PLATFORM=GNU-Linux-x86
+CND_CONF=Release
+CND_DISTDIR=dist
+CND_BUILDDIR=build
+CND_DLIB_EXT=so
+NBTMPDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tmp-packaging
+TMPDIRNAME=tmp-packaging
+OUTPUT_PATH=${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/cpptictactoe
+OUTPUT_BASENAME=cpptictactoe
+PACKAGE_TOP_DIR=cpptictactoe/
+
+# Functions
+function checkReturnCode
+{
+ rc=$?
+ if [ $rc != 0 ]
+ then
+ exit $rc
+ fi
+}
+function makeDirectory
+# $1 directory path
+# $2 permission (optional)
+{
+ mkdir -p "$1"
+ checkReturnCode
+ if [ "$2" != "" ]
+ then
+ chmod $2 "$1"
+ checkReturnCode
+ fi
+}
+function copyFileToTmpDir
+# $1 from-file path
+# $2 to-file path
+# $3 permission
+{
+ cp "$1" "$2"
+ checkReturnCode
+ if [ "$3" != "" ]
+ then
+ chmod $3 "$2"
+ checkReturnCode
+ fi
+}
+
+# Setup
+cd "${TOP}"
+mkdir -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package
+rm -rf ${NBTMPDIR}
+mkdir -p ${NBTMPDIR}
+
+# Copy files and create directories and links
+cd "${TOP}"
+makeDirectory "${NBTMPDIR}/cpptictactoe/bin"
+copyFileToTmpDir "${OUTPUT_PATH}" "${NBTMPDIR}/${PACKAGE_TOP_DIR}bin/${OUTPUT_BASENAME}" 0755
+
+
+# Generate tar file
+cd "${TOP}"
+rm -f ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/cpptictactoe.tar
+cd ${NBTMPDIR}
+tar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/cpptictactoe.tar *
+checkReturnCode
+
+# Cleanup
+cd "${TOP}"
+rm -rf ${NBTMPDIR}
diff --git a/nbproject/Package-Win64.bash b/nbproject/Package-Win64.bash
new file mode 100644
index 0000000..81ec1a3
--- /dev/null
+++ b/nbproject/Package-Win64.bash
@@ -0,0 +1,76 @@
+#!/bin/bash -x
+
+#
+# Generated - do not edit!
+#
+
+# Macros
+TOP=`pwd`
+CND_PLATFORM=GNU-Linux-x86
+CND_CONF=Win64
+CND_DISTDIR=dist
+CND_BUILDDIR=build
+CND_DLIB_EXT=so
+NBTMPDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tmp-packaging
+TMPDIRNAME=tmp-packaging
+OUTPUT_PATH=${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/cpptictactoe.exe
+OUTPUT_BASENAME=cpptictactoe.exe
+PACKAGE_TOP_DIR=cpptictactoe/
+
+# Functions
+function checkReturnCode
+{
+ rc=$?
+ if [ $rc != 0 ]
+ then
+ exit $rc
+ fi
+}
+function makeDirectory
+# $1 directory path
+# $2 permission (optional)
+{
+ mkdir -p "$1"
+ checkReturnCode
+ if [ "$2" != "" ]
+ then
+ chmod $2 "$1"
+ checkReturnCode
+ fi
+}
+function copyFileToTmpDir
+# $1 from-file path
+# $2 to-file path
+# $3 permission
+{
+ cp "$1" "$2"
+ checkReturnCode
+ if [ "$3" != "" ]
+ then
+ chmod $3 "$2"
+ checkReturnCode
+ fi
+}
+
+# Setup
+cd "${TOP}"
+mkdir -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package
+rm -rf ${NBTMPDIR}
+mkdir -p ${NBTMPDIR}
+
+# Copy files and create directories and links
+cd "${TOP}"
+makeDirectory "${NBTMPDIR}/cpptictactoe/bin"
+copyFileToTmpDir "${OUTPUT_PATH}" "${NBTMPDIR}/${PACKAGE_TOP_DIR}bin/${OUTPUT_BASENAME}" 0755
+
+
+# Generate tar file
+cd "${TOP}"
+rm -f ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/cpptictactoe.tar
+cd ${NBTMPDIR}
+tar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/cpptictactoe.tar *
+checkReturnCode
+
+# Cleanup
+cd "${TOP}"
+rm -rf ${NBTMPDIR}
diff --git a/nbproject/configurations.xml b/nbproject/configurations.xml
new file mode 100644
index 0000000..870b6db
--- /dev/null
+++ b/nbproject/configurations.xml
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configurationDescriptor version="95">
+ <logicalFolder name="root" displayName="root" projectFiles="true" kind="ROOT">
+ <logicalFolder name="HeaderFiles"
+ displayName="Header Files"
+ projectFiles="true">
+ <itemPath>Gameboard.h</itemPath>
+ <itemPath>Player.h</itemPath>
+ </logicalFolder>
+ <logicalFolder name="ResourceFiles"
+ displayName="Resource Files"
+ projectFiles="true">
+ </logicalFolder>
+ <logicalFolder name="SourceFiles"
+ displayName="Source Files"
+ projectFiles="true">
+ <itemPath>Gameboard.cpp</itemPath>
+ <itemPath>Player.cpp</itemPath>
+ <itemPath>main.cpp</itemPath>
+ </logicalFolder>
+ <logicalFolder name="TestFiles"
+ displayName="Test Files"
+ projectFiles="false"
+ kind="TEST_LOGICAL_FOLDER">
+ </logicalFolder>
+ <logicalFolder name="ExternalFiles"
+ displayName="Important Files"
+ projectFiles="false"
+ kind="IMPORTANT_FILES_FOLDER">
+ <itemPath>Makefile</itemPath>
+ </logicalFolder>
+ <itemPath>README.md</itemPath>
+ </logicalFolder>
+ <projectmakefile>Makefile</projectmakefile>
+ <confs>
+ <conf name="Debug" type="1">
+ <toolsSet>
+ <compilerSet>default</compilerSet>
+ <dependencyChecking>true</dependencyChecking>
+ <rebuildPropChanged>false</rebuildPropChanged>
+ </toolsSet>
+ <compileType>
+ </compileType>
+ <item path="Gameboard.cpp" ex="false" tool="1" flavor2="0">
+ </item>
+ <item path="Gameboard.h" ex="false" tool="3" flavor2="0">
+ </item>
+ <item path="Player.cpp" ex="false" tool="1" flavor2="0">
+ </item>
+ <item path="Player.h" ex="false" tool="3" flavor2="0">
+ </item>
+ <item path="README.md" ex="false" tool="3" flavor2="0">
+ </item>
+ <item path="main.cpp" ex="false" tool="1" flavor2="0">
+ </item>
+ </conf>
+ <conf name="Release" type="1">
+ <toolsSet>
+ <compilerSet>default</compilerSet>
+ <dependencyChecking>true</dependencyChecking>
+ <rebuildPropChanged>false</rebuildPropChanged>
+ </toolsSet>
+ <compileType>
+ <cTool>
+ <developmentMode>5</developmentMode>
+ </cTool>
+ <ccTool>
+ <developmentMode>5</developmentMode>
+ </ccTool>
+ <fortranCompilerTool>
+ <developmentMode>5</developmentMode>
+ </fortranCompilerTool>
+ <asmTool>
+ <developmentMode>5</developmentMode>
+ </asmTool>
+ </compileType>
+ <item path="Gameboard.cpp" ex="false" tool="1" flavor2="0">
+ </item>
+ <item path="Gameboard.h" ex="false" tool="3" flavor2="0">
+ </item>
+ <item path="Player.cpp" ex="false" tool="1" flavor2="0">
+ </item>
+ <item path="Player.h" ex="false" tool="3" flavor2="0">
+ </item>
+ <item path="README.md" ex="false" tool="3" flavor2="0">
+ </item>
+ <item path="main.cpp" ex="false" tool="1" flavor2="0">
+ </item>
+ </conf>
+ <conf name="Win64" type="1">
+ <toolsSet>
+ <compilerSet>default</compilerSet>
+ <dependencyChecking>true</dependencyChecking>
+ <rebuildPropChanged>false</rebuildPropChanged>
+ </toolsSet>
+ <compileType>
+ <ccTool>
+ <standard>8</standard>
+ <commandlineTool>x86_64-w64-mingw32-g++</commandlineTool>
+ </ccTool>
+ <asmTool>
+ <commandlineTool>as</commandlineTool>
+ </asmTool>
+ <linkerTool>
+ <output>${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/cpptictactoe.exe</output>
+ <commandlineTool>x86_64-w64-mingw32-g++</commandlineTool>
+ </linkerTool>
+ </compileType>
+ <item path="Gameboard.cpp" ex="false" tool="1" flavor2="0">
+ </item>
+ <item path="Gameboard.h" ex="false" tool="3" flavor2="0">
+ </item>
+ <item path="Player.cpp" ex="false" tool="1" flavor2="0">
+ </item>
+ <item path="Player.h" ex="false" tool="3" flavor2="0">
+ </item>
+ <item path="README.md" ex="false" tool="3" flavor2="0">
+ </item>
+ <item path="main.cpp" ex="false" tool="1" flavor2="0">
+ </item>
+ </conf>
+ </confs>
+</configurationDescriptor>
diff --git a/nbproject/project.xml b/nbproject/project.xml
new file mode 100644
index 0000000..77888e8
--- /dev/null
+++ b/nbproject/project.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://www.netbeans.org/ns/project/1">
+ <type>org.netbeans.modules.cnd.makeproject</type>
+ <configuration>
+ <data xmlns="http://www.netbeans.org/ns/make-project/1">
+ <name>CppTicTacToe</name>
+ <c-extensions/>
+ <cpp-extensions>cpp</cpp-extensions>
+ <header-extensions>h</header-extensions>
+ <sourceEncoding>UTF-8</sourceEncoding>
+ <make-dep-projects/>
+ <sourceRootList/>
+ <confList>
+ <confElem>
+ <name>Debug</name>
+ <type>1</type>
+ </confElem>
+ <confElem>
+ <name>Release</name>
+ <type>1</type>
+ </confElem>
+ <confElem>
+ <name>Win64</name>
+ <type>1</type>
+ </confElem>
+ </confList>
+ <formatting>
+ <project-formatting-style>false</project-formatting-style>
+ </formatting>
+ </data>
+ </configuration>
+</project>