Skip to content
Permalink
master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
//group D2 - Hazar
#include <ncurses.h>
#include <iostream>
#include <string>
#include <algorithm>
#include "sqlite3.h"
#include <ctime>
class MainGamePlayer
{
public:
string userName;
int strikes;
int cash;
int perClick;
int passive;
time_t lastOnline;
};
using namespace std;
bool loginregisterloop = false;
void printMiddle(WINDOW * win, int y, int x, int upDown, string asd)
{
int getLength = asd.length();
int newY = (y / 2) - upDown;
int newX = (x - getLength) / 2;
mvwprintw(win, newY, newX, asd.c_str());
}
int main()
{
while (!loginregisterloop)
{
mainPage:
initscr();
cbreak();
curs_set(0);
noecho();
int height, width, start_y, start_x;
height = 20;
width = 70;
start_y = 1;
start_x = 1;
WINDOW * loginWin = newwin(height, width, start_y, start_x);
refresh();
wborder(loginWin, 0, 0, 0, 0, 0, 0, 0, 0);
wrefresh(loginWin);
keypad(loginWin, true);
string playerUsername;
string loginMenu[3] = {"Register", "Login", "Exit"};
int choice;
int loginHighlight = 0;
while(1)
{
for (int i = 0; i < 3; i++)
{
if (i == loginHighlight)
wattron(loginWin, A_REVERSE);
mvwprintw(loginWin, i+7, 3, loginMenu[i].c_str());
wattroff(loginWin, A_REVERSE);
}
choice = wgetch(loginWin);
switch(choice)
{
case KEY_UP:
loginHighlight--;
if(loginHighlight == -1)
loginHighlight = 2;
break;
case KEY_DOWN:
loginHighlight++;
if(loginHighlight == 3)
loginHighlight = 0;
break;
default:
break;
}
if (choice == 10)
break;
}
string inputRegisterMenu = loginMenu [loginHighlight];
wrefresh(loginWin);
if (inputRegisterMenu == "Register")
{
bool registerGameLoop = false;
while(!registerGameLoop)
{
MainGamePlayer MainPlayer;
wrefresh(loginWin);
WINDOW * registerWin = newwin(20, 70, 1, 1);
keypad(registerWin, true);
refresh();
wborder(registerWin, 0, 0, 0, 0, 0, 0, 0, 0);
int registerMaxY, registerMaxX;
getmaxyx(registerWin, registerMaxY, registerMaxX);
printMiddle(registerWin, registerMaxY, registerMaxX, 9, "Register");
wrefresh(registerWin);
string registerWinChoices[1] = {"Create Username"};
int registerChoice;
int registerHighlight = 0;
while(1)
{
for (int p = 0; p < 1; p++)
{
if (p == registerHighlight)
wattron(registerWin, A_REVERSE);
mvwprintw(registerWin, p+7, 3, registerWinChoices[p].c_str());
wattroff(registerWin, A_REVERSE);
wrefresh(registerWin);
}
wrefresh(registerWin);
registerChoice = wgetch(registerWin);
switch(registerChoice)
{
case KEY_UP:
registerHighlight--;
if(registerHighlight == -1)
registerHighlight = 0;
break;
case KEY_DOWN:
registerHighlight++;
if(registerHighlight == 2)
registerHighlight = 1;
break;
default:
break;
}
string inputRegisterAccount = registerWinChoices [registerHighlight];
wrefresh(registerWin);
if(inputRegisterAccount == "Create Username")
{
echo();
curs_set(1);
wrefresh(registerWin);
mvwscanw(registerWin, 14, 2, "%s", playerUsername.c_str());
wrefresh(registerWin);
noecho();
curs_set(0);
mvwprintw(registerWin, 14, 2, "You have created an account %s. Press any key continue", playerUsername.c_str());
MainGamePlayer mainPlayer;
int rc;
sqlite3 *db;
rc=sqlite3_open( "stux_base.db", &db);
sqlite3_stmt * stmt;
string sqlInsert = "INSERT INTO mainGamePlayer (userName)" "VALUES(?)";
sqlite3_prepare(db, sqlInsert.c_str(), sqlInsert.size(), &stmt, nullptr);
mainPlayer_userName = sqlite_column_varchar(stmt, 1)
sqlite3_bind_int(stmt, 1, mainPlayer.userName)
sqlite3_step(stmt);
sqlite3_finalize(stmt);
wrefresh(registerWin);
getch();
bool backScreenLoop = false;
while (!backScreenLoop)
{
wrefresh(registerWin);
WINDOW * registerBackWin = newwin(20, 70, 1, 1);
refresh();
wborder(registerBackWin, 0, 0, 0, 0, 0, 0, 0, 0);
int registerBackMaxY, registerBackMaxX;
getmaxyx(registerBackWin, registerBackMaxY, registerBackMaxX);
wrefresh(registerBackWin);
string registerBackChoice[1] = {"Go Back"};
int backRegisterChoice;
int backRegisterHighlight = 0;
while(1)
{
for (int q = 0; q < 1; q++)
{
if(q == backRegisterHighlight)
wattron(registerBackWin, A_REVERSE);
mvwprintw(registerBackWin, q+7, 2, registerBackChoice[q].c_str());
wattroff(registerBackWin, A_REVERSE);
}
backRegisterChoice = wgetch(registerBackWin);
switch(backRegisterChoice)
{
case KEY_UP:
backRegisterHighlight--;
if(backRegisterHighlight == -1)
backRegisterHighlight = 0;
break;
case KEY_DOWN:
backRegisterHighlight++;
if(backRegisterHighlight == 1)
backRegisterHighlight = 0;
break;
default:
break;
}
if (backRegisterChoice == 10)
break;
}
string goBackScreen = registerBackChoice [backRegisterHighlight];
wrefresh(registerBackWin);
if (goBackScreen == "Go Back")
{
main();
}
}
}
}
}
}
string loginGameMenu = loginMenu [loginHighlight];
wrefresh(loginWin);
if (loginGameMenu == "Login")
{
bool registerGameLoop = false;
while(!registerGameLoop)
{
wrefresh(loginWin);
WINDOW * gameLoginWin = newwin(20, 70, 1, 1);
keypad(gameLoginWin, true);
refresh();
wborder(gameLoginWin, 0, 0, 0, 0, 0, 0, 0, 0);
int loginMaxY, loginMaxX;
getmaxyx(gameLoginWin, loginMaxY, loginMaxX);
printMiddle(gameLoginWin, loginMaxY, loginMaxX, 9, "Login");
wrefresh(gameLoginWin);
string loginGameWinChoices[2] = {"Enter Username", "Return"};
int loginChoice;
int loginGameHighlight = 0;
while(1)
{
for (int g = 0; g < 2; g++)
{
if (g == loginGameHighlight)
wattron(gameLoginWin, A_REVERSE);
mvwprintw(gameLoginWin, g+7, 3, loginGameWinChoices[g].c_str());
wattroff(gameLoginWin, A_REVERSE);
wrefresh(gameLoginWin);
}
wrefresh(gameLoginWin);
loginChoice = wgetch(gameLoginWin);
switch(loginChoice)
{
case KEY_UP:
loginGameHighlight--;
if(loginGameHighlight == -1)
loginGameHighlight = 1;
break;
case KEY_DOWN:
loginGameHighlight++;
if(loginGameHighlight == 2)
loginGameHighlight = 0;
break;
default:
break;
}
}
string loginScreen = loginGameWinChoices [loginGameHighlight];
wrefresh(gameLoginWin);
if(loginScreen == "Enter Username")
{
echo();
curs_set(1);
string loginPlayer;
mvwscanw(gameLoginWin, 14, 2, "%s", loginPlayer.c_str());
wrefresh(gameLoginWin);
noecho();
curs_set(0);
if(loginPlayer == playerUsername);
{
mvwprintw(gameLoginWin, 14, 2, "You logged in successfully %s. Press any key continue", loginPlayer.c_str());
}
}
string loginBackScreen = loginGameWinChoices [loginGameHighlight];
wrefresh(gameLoginWin);
if(loginBackScreen == "Return")
{
goto mainPage;
}
}
}
string goBackMenu = loginMenu [loginHighlight];
wrefresh(loginWin);
if (goBackMenu == "Exit")
{
bool exitGameLoop = false;
while (!exitGameLoop)
{
wrefresh(loginWin);
WINDOW * goBackWin = newwin (20, 70, 1, 1);
keypad(goBackWin, true);
refresh();
wborder(goBackWin, 0, 0, 0, 0, 0, 0, 0, 0);
int backMaxY, backMaxX;
getmaxyx(goBackWin, backMaxY, backMaxX);
printMiddle(goBackWin, backMaxY, backMaxX, 9, "Thank You For Playing");
wrefresh(goBackWin);
}
}
}
getch();
endwin();
return 0;
}