Ik heb een spelletje gemaakt.
Het is mijn aller eerste script in c++
Dit is nog wel een alpha release.
dus bugs zullen er wel inzitten.
Hier is de code:
Tips en kommentaar is altijd welkom
Het is mijn aller eerste script in c++
Dit is nog wel een alpha release.
dus bugs zullen er wel inzitten.
Hier is de code:
PHP:
#include <iostream>
#include <windows.h>
#include <conio.h>
//for fullscreen
void AltEnter()
{
keybd_event(VK_MENU,0x38,0,0);
keybd_event(VK_RETURN,0x1c,0,0);
keybd_event(VK_RETURN,0x1c,KEYEVENTF_KEYUP,0);
keybd_event(VK_MENU,0x38,KEYEVENTF_KEYUP,0);
}
BOOL NT_SetConsoleDisplayMode(HANDLE hOutputHandle, DWORD dwNewMode)
{
typedef BOOL (WINAPI *SCDMProc_t) (HANDLE, DWORD, LPDWORD);
SCDMProc_t SetConsoleDisplayMode;
HMODULE hKernel32;
BOOL bFreeLib = FALSE, ret;
const char KERNEL32_NAME[] = "kernel32.dll";
hKernel32 = GetModuleHandleA(KERNEL32_NAME);
if (hKernel32 == NULL)
{
hKernel32 = LoadLibraryA(KERNEL32_NAME);
if (hKernel32 == NULL)
return FALSE;
bFreeLib = true;
}
}
using namespace std;
int spreek(int x , int y);
int menu(); //option variable
int optionnum; //option keuze
int iplayers();
int players = 2; //aantal speler
int player = 1; //speler die aan de beurt is
int x; //coördinaat links naar rechts
int y; //coördinaat boven naar onder
//speelveeld coördinaten
int maxx = 8;
int maxy = 8;
int speelveld[9][9]; //grote van de array van het speelveld
int xstart = 1; //het begin van het speelveld van links naar rechts
int xend = 8; // het einde van het speelveld van links naar rechts
int ystart = 1; //de begin rij van eht speelveld
int yend = 8; //het maximaal aantal rijen
int inarow = 4; //how mutch we need to get together
int status; //controleren of een spel al/nog aan de gang is
int spelen(); //controleert alles wat er op het speelbord gebeurt
int resetgame(); //resetten van het bord
//development variable
int dev_countcom = 0;
//menu variables
int options();
int gameoptions();
int main() {
//AltEnter();
menu();
cin.ignore();
cin.get();
}
//option menu
int menu() {
system("cls");
cout<<"1: New game \n";
if(status != 0){ cout<<"2: Resume game \n"; } else { cout<<"2: N/A \n"; }
cout<<"3: Players ["<<players<<"]\n";
//cout<<"4: Options \n";
cout<<"5: Quit \n";
cin>> optionnum;
cin.ignore();
switch ( optionnum ) {
case 1:
system("cls");
cout<<"Starting a new game";
resetgame();
spelen();
break;
case 2:
cout<<"Resumming a game";
spelen();
break;
if(status != 0){ cout<<"2: Resume game \n";
case 3:
system("cls");
iplayers();
break;
}
/* case 4:
options();
break;
*/
case 5:
cout<<"Goodbey";
status = 666;
break;
default:
cout<<"Not a valid option ";
menu();
break;
}
}
//het creëren van het speelveld
int spelen() {
if((status <= 1) && (status >= 0 )){
system("cls");
if (status == 0){
resetgame();
}
for(y = ystart; y <= yend; y++){
for(x = xstart; x <= xend; x++)
if(speelveld[x][y] == 0){
cout<<"[ ]";
}
else{
cout<<"["<<speelveld[x][y]<<"]";
}
cout<<"\n";
}
spreek( x,y);
}
}
// het vragen naar de 2 coördinaten om te spelen
int spreek( int x, int y ) {
cout<<"Player "<<player<<" insert 0 for menu: \n";
cout<<"Player "<<player<<" insert into row: ";
cin>> x;
cin.ignore();
//Controleren of er nog niks in het opgegeven veld staad
if(speelveld[x][1] == 0){
//Nagaan of de opgegeven coördinaten niet boven de limiets uitkome
if(x == 0 ) {
menu();
}
else if((x > xend ) || (x < xstart )){
cout<<"Wrong input, try again \n";
spreek( x,y);
}
else{
int yc = 1; //het maximale y om te checke in welk veld het fiche komt.
y = maxy;
while(yc != 0){
if((speelveld[x][y] != 0) && (y >= 1)){
y--;
if(dev_countcom == 1){ cout<<"Checking speelveld for opening: ["<<x<<"]["<<y<<"] \n"; }
}
else if((speelveld[x][y] == 0) && (y >= 1)){
speelveld[x][y] = player;
if(dev_countcom == 1){ cout<<"Checking speelveld for opening: ["<<x<<"]["<<y<<"] \n"<< cin.get(); }
yc = 0;
}
else if((speelveld[x][y] == 0) && (y < 1)){
cout<<"Row is full \n";
yc = 0;
spreek( x,y);
}
}
}
}
else {
cout<<"Error \n";
spreek( x,y);
}
int xcheck = x; //checking from left to right for 4 in a row
int ycheck = y; //checking from up to down for 4 in a row
int dcheck; //checking diagonaal for 4 in a row
int ncheck = 0; //counting the right numbers from all positions
int echeck = 0; //progressing the checkup
//checking from x to left
while(echeck < 9){
//controleren vanaf x,y naar links
if((speelveld[xcheck][ycheck] == player) && (echeck == 0) && (ncheck < inarow)){
if(dev_countcom == 1){ cout<<"Checking speelveld: ["<<xcheck<<"]["<<ycheck<<"] \n"; }
xcheck--;
ncheck++;
}
//Waneer van x,y naar links een ander nummer tegenkomt gaat hij naar rechts controleren
else if((speelveld[xcheck][ycheck] != player) && (echeck == 0) && (ncheck < inarow)){
xcheck = x + 1;
echeck = 1;
if(dev_countcom == 1){ cout<<"Resetting counters for x to right: ["<<xcheck<<"]["<<ycheck<<"] \n"; }
}
//Controleren vanaf x,y naar rechts
else if((speelveld[xcheck][ycheck] == player) && (echeck == 1) && (ncheck < inarow)){
if(dev_countcom == 1){ cout<<"Checking speelveld: ["<<xcheck<<"]["<<ycheck<<"] \n"; }
xcheck++;
ncheck++;
}
//Waneer van x,y naar rechts een ander nummer tegenkomt gaat hij van boven naar onder controleren
else if((speelveld[xcheck][ycheck] != player) && (echeck == 1) && (ncheck < inarow)){
xcheck = x;
ncheck = 0;
echeck = 2;
if(dev_countcom == 1){ cout<<"Resetting counters for y to up: ["<<xcheck<<"]["<<ycheck<<"] \n"; }
}
//Controleren vanaf x,y naar boven
else if((speelveld[xcheck][ycheck] == player) && (echeck == 2) && (ncheck < inarow)){
if(dev_countcom == 1){ cout<<"Checking speelveld: ["<<xcheck<<"]["<<ycheck<<"] \n"; }
ycheck--;
ncheck++;
}
//reset
else if((speelveld[xcheck][ycheck] != player) && (echeck == 2) && (ncheck < inarow)){
ycheck = y + 1;
echeck = 3;
if(dev_countcom == 1){ cout<<"Resetting counters for y to down: ["<<xcheck<<"]["<<ycheck<<"] \n"; }
}
//Controleren vanaf y naar onder
else if((speelveld[xcheck][ycheck] == player) && (echeck == 3) && (ncheck < inarow)){
if(dev_countcom == 1){ cout<<"Checking speelveld: ["<<xcheck<<"]["<<ycheck<<"] \n"; }
ycheck++;
ncheck++;
}
else if((speelveld[xcheck][ycheck] != player) && (echeck == 3) && (ncheck < inarow)){
ycheck = y;
ncheck = 0;
echeck = 4;
if(dev_countcom == 1){ cout<<"Resetting counters for y,x to left up: ["<<xcheck<<"]["<<ycheck<<"] \n"; }
}
//Controleren vanaf x,y naar links bovem
else if((speelveld[xcheck][ycheck] == player) && (echeck == 4) && (ncheck < inarow)){
if(dev_countcom == 1){ cout<<"Checking speelveld: ["<<xcheck<<"]["<<ycheck<<"] \n"; }
ycheck--;
xcheck--;
ncheck++;
}
//Resetten om naar rechts onder te gaan
else if((speelveld[xcheck][ycheck] != player) && (echeck == 4) && (ncheck < inarow)){
ycheck = y + 1;
xcheck = x + 1;
echeck = 5;
if(dev_countcom == 1){ cout<<"Resetting counters for y,x to right under: ["<<xcheck<<"]["<<ycheck<<"] \n"; }
}
//Controleren vanaf x,y naar rechts onder
else if((speelveld[xcheck][ycheck] == player) && (echeck == 5) && (ncheck < inarow)){
if(dev_countcom == 1){ cout<<"Checking speelveld: ["<<xcheck<<"]["<<ycheck<<"] \n"; }
ycheck++;
xcheck++;
ncheck++;
}
//Resetten voor volgende controlle
else if((speelveld[xcheck][ycheck] != player) && (echeck == 5) && (ncheck < inarow)){
ycheck = y;
xcheck = x;
ncheck = 0;
echeck = 6;
if(dev_countcom == 1){ cout<<"Resetting counters for y,x: ["<<xcheck<<"]["<<ycheck<<"] \n"; }
}
//Van x,y naar links onderin
else if((speelveld[xcheck][ycheck] == player) && (echeck == 6) && (ncheck < inarow)){
if(dev_countcom == 1){ cout<<"Checking speelveld: ["<<xcheck<<"]["<<ycheck<<"] \n"; }
ycheck++;
xcheck--;
ncheck++;
}
//Resetten om naar rechts boven
else if((speelveld[xcheck][ycheck] != player) && (echeck == 6) && (ncheck < inarow)){
ycheck = y - 1;
xcheck = x + 1;
echeck = 7;
if(dev_countcom == 1){ cout<<"Resetting counters for y,x to right up: ["<<xcheck<<"]["<<ycheck<<"] \n"; }
}
//Van x,y naar rechts boven
else if((speelveld[xcheck][ycheck] == player) && (echeck == 7) && (ncheck < inarow)){
if(dev_countcom == 1){ cout<<"Checking speelveld: ["<<xcheck<<"]["<<ycheck<<"] \n"; }
ycheck--;
xcheck++;
ncheck++;
}
//Resetten om naar
else if((speelveld[xcheck][ycheck] != player) && (echeck == 7) && (ncheck < inarow)){
ycheck = y;
xcheck = x;
ncheck = 0;
echeck = 8;
if(dev_countcom == 1){ cout<<"Resetting counters too finalyze checkup: ["<<xcheck<<"]["<<ycheck<<"] \n"; }
}
else if (ncheck >= inarow) {
cout<<"Player "<<player<<" has won ";
status = 0;
echeck = 9;
cin.get();
}
else {
echeck = 9;
}
}
//Switchen van spelers
if(player < players){
player++;
}
else if(player == players){
player = 1;
}
if (dev_countcom == 1){ cin.get(); }
if (ncheck < inarow) { spelen(); }
else { menu(); }
}
int options(){
system("cls");
cout<<"1: Game \n";
cout<<"2: Development \n";
}
int resetgame(){
for(y = ystart; y <= yend; y++){
for(x = xstart; x <= xend; x++)
if(speelveld[x][y] == 0){
}
else{
speelveld[x][y] = 0;
}
}
status = 1;
}
int iplayers() {
cout<<"Insert players: ";
cin>>players ;
if((players <= 9) && (players >= 1)) {
menu();
}
else {
cout<<"Please insert a number inbetween 1 and 9 \n";
iplayers();
}
}
Tips en kommentaar is altijd welkom
Laatst bewerkt: