void displayboard(); // Viser spil brættet void computermove(); // Funktion der laver computerens træk void usermove(); // funktion der lader dit træk int checkgame(); // funktion der tjekker om spillet er slut
char gameboard[3][3]; // declaring a char matrix of size 3*3 as a global variable available to all functions
int main() { int check = 0; // declaring and initializing
for(;;) // infinite for loop {
computermove(); // calling up the computermove function displayboard(); // calling up the displayboard function check = checkgame(); // assign whatever the checkgame function returned to check
if (check == 1) // if the checkgame function returns 1.... { cout << endl << "This is the final outcome: " << endl; // output displayboard(); // calling up the displayboard function break; //...then break out of the loop and terminate the program } usermove(); // calling up the usermove function displayboard(); // calling up the displayboard function check = checkgame(); // assign whatever the checkgame function returned to check if (check == 1) // if the checkgame function returns 1.... { cout << endl << "This is the final outcome: " << endl; // output displayboard(); // calling up the displayboard function break; //...then break out of the loop and terminate the program } }
return 0; }
void computermove() // uses a forloop to decide where to put the X { cout << endl << "This was the computer's move: " << endl; // output
for(int i = 0; i <= 1; i++) // using a for loop to iterate only once {
if (gameboard[0][0] == 'O' || gameboard[0][0] == 'X') // if the current element is taken do nothing... { } else // but if it's empty... { gameboard[0][0] = 'X'; //...then assign 'X' to it... break; //...and break out of the loop }
if (gameboard[0][1] == 'O' || gameboard[0][1] == 'X') // if the current element is taken do nothing... { } else // but if it's empty... { gameboard[0][1] = 'X'; //...then assign 'X' to it... break; //...and break out of the loop }
if (gameboard[0][2] == 'O' || gameboard[0][2] == 'X') // if the current element is taken do nothing... { } else // but if it's empty... { gameboard[0][2] = 'X'; //...then assign 'X' to it... break; //...and break out of the loop }
if (gameboard[1][0] == 'O' || gameboard[1][0] == 'X') // if the current element is taken do nothing... { } else // but if it's empty... { gameboard[1][0] = 'X'; //...then assign 'X' to it... break; //...and break out of the loop }
if (gameboard[1][1] == 'O' || gameboard[1][1] == 'X') // if the current element is taken do nothing... { } else // but if it's empty... { gameboard[1][1] = 'X'; //...then assign 'X' to it... break; //...and break out of the loop }
if (gameboard[1][2] == 'O' || gameboard[1][2] == 'X') // if the current element is taken do nothing... { } else // but if it's empty... { gameboard[1][2] = 'X'; //...then assign 'X' to it... break; //...and break out of the loop }
if (gameboard[2][0] == 'O' || gameboard[2][0] == 'X') // if the current element is taken do nothing... { } else // but if it's empty... { gameboard[2][0] = 'X'; //...then assign 'X' to it... break; //...and break out of the loop }
if (gameboard[2][1] == 'O' || gameboard[2][1] == 'X') // if the current element is taken do nothing... { } else // but if it's empty... { gameboard[2][1] = 'X'; //...then assign 'X' to it... break; //...and break out of the loop }
if (gameboard[2][2] == 'O' || gameboard[2][2] == 'X') // if the current element is taken do nothing... { } else // but if it's empty... { gameboard[2][2] = 'X'; //...then assign 'X' to it... break; //...and break out of the loop } }
}
void usermove() // determines where the user wants to put his/her O { int row = 0, column = 0; // declaring and initializing
do // do what's in between the brackets... { cout << endl<< "What row would you like to place your O in? (0 - 2)"; // output cin >> row; // input } while(row < 0 || row > 2); //...while rov is less than 0 or greater than 2
do // do what's in between the brackets... { cout << "What column would you like to place your O in (0 - 2)?"; // output cin >> column; // input } while(column < 0 || column > 2); //...while rov is less than 0 or greater than 2
if (gameboard[row][column] == 'X' || gameboard[row][column] == 'O') // if the current element is taken... { cout << "This square is occupied, please select another one" << endl; //...then display a message indicating so... usermove(); //...and call the same function again } else // if the current element isn't taken... { gameboard[row][column] = 'O'; //...then assign 'O' to it } }
void displayboard() // displays the current gameboard { cout << endl << endl << "User: O Computer X" << endl; // output
void displayboard(); // Viser spil brættet void computermove(); // Funktion der laver computerens træk void usermove(); // funktion der laver dit træk int checkgame(); // funktion der tjekker om spillet er slut
char gameboard[3][3]; // Feltet, storelse 3*3 som en variabel, tingaengelig for alle funkltioner
int main() { int check = 0; // erklaere og begynder
for(;;) // uendelig gentagelse {
computermove(); // udfører computer funktionen displayboard(); // udfører displayboard funktionen check = checkgame(); // bestemmer om spillet er slut, eller om det skal returneres til check funktionen
if (check == 1) // hvis checkgame funktionen retunere 1... { cout << endl << "det endelige ressultat: " << endl; // output displayboard(); // udfører displayboard funktionen break; //...og så slutter gentagelsen } usermove(); // udfører dit træk displayboard(); // udfører displayboard funktionen check = checkgame(); // bestemmer om spillet er slut, eller om det skal returneres til check funktionen if (check == 1) // hvis checkgame funktionen retunere 1... { cout << endl << "det endelige resultat: " << endl; // output displayboard(); // udfører displayboard funktionen break; //...og så slutter gentagelsen } }
return 0; }
void computermove() // laver et gentagelse for at bestemme hvor den skal sætte x { cout << endl << "det var computerens træk: " << endl; // output
for(int i = 0; i <= 1; i++) // bruger en for løkke for at gentage, dette sker kun en gang {
if (gameboard[0][0] == 'O' || gameboard[0][0] == 'X') // hvis feltet er taget, så skal den ikke gøre noget... { } else // men hvis det er tomt... { gameboard[0][0] = 'X'; //...så put et 'X' ind... break; //...og bryd løkken }
if (gameboard[0][1] == 'O' || gameboard[0][1] == 'X') // hvis feltet er taget, så skal den ikke gøre noget... { } else // men hvis det er tomt... { gameboard[0][1] = 'X'; //...then assign 'X' to it... break; //...og bryd løkken }
if (gameboard[0][2] == 'O' || gameboard[0][2] == 'X') // hvis feltet er taget, så skal den ikke gøre noget... { } else // men hvis det er tomt... { gameboard[0][2] = 'X'; //...then assign 'X' to it... break; //...og bryd løkken }
if (gameboard[1][0] == 'O' || gameboard[1][0] == 'X') // hvis feltet er taget, så skal den ikke gøre noget... { } else // men hvis det er tomt... { gameboard[1][0] = 'X'; //...then assign 'X' to it... break; //...og bryd løkken }
if (gameboard[1][1] == 'O' || gameboard[1][1] == 'X') // hvis feltet er taget, så skal den ikke gøre noget... { } else // men hvis det er tomt... { gameboard[1][1] = 'X'; //...then assign 'X' to it... break; //...og bryd løkken }
if (gameboard[1][2] == 'O' || gameboard[1][2] == 'X') // hvis feltet er taget, så skal den ikke gøre noget... { } else // men hvis det er tomt... { gameboard[1][2] = 'X'; //...then assign 'X' to it... break; //...og bryd løkken }
if (gameboard[2][0] == 'O' || gameboard[2][0] == 'X') // hvis feltet er taget, så skal den ikke gøre noget... { } else // men hvis det er tomt... { gameboard[2][0] = 'X'; //...then assign 'X' to it... break; //...og bryd løkken }
if (gameboard[2][1] == 'O' || gameboard[2][1] == 'X') // hvis feltet er taget, så skal den ikke gøre noget... { } else // men hvis det er tomt... { gameboard[2][1] = 'X'; //...then assign 'X' to it... break; //...og bryd løkken }
if (gameboard[2][2] == 'O' || gameboard[2][2] == 'X') // hvis feltet er taget, så skal den ikke gøre noget... { } else // men hvis det er tomt... { gameboard[2][2] = 'X'; //...then assign 'X' to it... break; //...og bryd løkken } }
}
void usermove() // Bestemmer hvor spilleren vil sætte sin o { int row = 0, column = 0; // erklærer og begynder
do // gør hvad der er mellem klammerne... { cout << endl<< "I hvilken række vil du putte dit o i? (0 - 2)"; // output cin >> row; // input } while(row < 0 || row > 2); //...sålænge at rækken er mindre en 0 eller større end 2
do // gør hvad der er mellem klammerne... { cout << "I hvilken række vil du putte dit o i? (0 - 2)?"; // output cin >> column; // input } while(column < 0 || column > 2); //...sålænge at rækken er mindre en 0 eller større end 2
if (gameboard[row][column] == 'X' || gameboard[row][column] == 'O') // Hvis det nuværende element er taget... { cout << "Dette felt er taget, vælg et andet" << endl; //...Viser beskeden i "Dette felt er..." usermove(); //...udfører samme funktion igen... } else // hvis feltet ikke er taget... { gameboard[row][column] = 'O'; //...put så 'O' ind i feltet } }
void displayboard() // viser det nuværende spilbræt... { cout << endl << endl << "User: O Computer X" << endl; // output
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.