/* built with Studio Sketchpad:
* https://sketchpad.cc
*
* observe the evolution of this sketch:
* https://studio.sketchpad.cc/sp/pad/view/ro.ketzNxRvxrD/rev.6709
*
* authors:
* Meernat
* license (unless otherwise specified):
* creative commons attribution-share alike 3.0 license.
* https://creativecommons.org/licenses/by-sa/3.0/
*/
// This is a multiplayer Tic Tac Toe game
var winner = false;
var currentTurn = "X";
var gameOver = false;
var row1Array = ["N","N","N"];
var row2Array = ["N","N","N"];
var row3Array = ["N","N","N"];
var numOfTurns = 0;
// These variables set the x and y values of my circle and my X when //called
// Sets the size of the screen
size(400,450);
// This function when called puts a circle where its told
function drawCirc(xPos,yPos){
var redC = random(1,255);
var greenC = random(1,255);
var blueC = random(1,255);
random();
fill(redC,greenC,blueC);
ellipse(xPos,yPos,100,100);
}
function resetGame(){
size(400,450);
drawBoard();
winner = false;
currentTurn = "X";
gameOver = false;
row1Array = ["N","N","N"];
row2Array = ["N","N","N"];
row3Array = ["N","N","N"];
numOfTurns = 0;
}
var A1xX = 15;
var A1yX = 15;
var A2xX = 155;
var A2yX = 15;
var A3xX = 290;
var A3yX = 15;
var B1xX = 15;
var B1yX = 155;
var B2xX = 155;
var B2yX = 155;
var B3xX = 290;
var B3yX = 155;
var C1xX = 15;
var C1yX = 290;
var C2xX = 155;
var C2yX = 290;
var C3xX = 290;
var C3yX = 290;
var A1xC = 60;
var A1yC = 60;
var A2xC = 200;
var A2yC = 60;
var A3xC = 340;
var A3yC = 60;
var B1xC = 60;
var B1yC = 200;
var B2xC = 200;
var B2yC = 200;
var B3xC = 340;
var B3yC = 200;
var C1xC = 60;
var C1yC = 340;
var C2xC = 200;
var C2yC = 340;
var C3xC = 340;
var C3yC = 340;
// Makes the color of the backround change everytime you play
var red = random(1,255);
var green = random(1,255);
var blue = random(1,255);
// Sets the backround color with the randomized variables
background(red, green, blue);
// Creates the board for the game
function drawBoard(){
line(125,0,125,400);
line(275,0,275,400);
line(0,125,400,125);
line(0,275,400,275);
// Writes my name at the bottom of the screen
var redT = random(255);
var greenT = random(255);
var blueT = random(255);
fill(redT,greenT,blueT)
textSize(32);
text("Game by Natalie R. 11 years old", 60, 410, 300, 50);
}
// Draws the board
drawBoard();
// This function draws and X where its told
function drawEx(startXPos,startYPos){
var endXPos = startXPos + 90
var endYPos = startYPos + 90
line(startXPos,startYPos,endXPos,endYPos);
startXPos = startXPos + 90;
endXPos = endXPos - 90;
line(startXPos,startYPos,endXPos,endYPos);
}
//Checks if a player has won
function checkGameOver(){
if (row1Array[0] == row1Array[1] && row1Array[1] == row1Array[2]
&& row1Array[0] != "N" ){
alert("Game Over. " + row1Array[0] + " has won!");
gameOver = true;
winner = true;
}
if (row2Array[0] == row2Array[1] && row2Array[1] == row2Array[2]
&& row2Array[0] != "N" ){
alert("Game Over. " + row2Array[0] + " has won!");
gameOver = true;
winner = true;
}
if (row3Array[0] == row3Array[1] && row3Array[1] == row3Array[2]
&& row3Array[0] != "N" ){
alert("Game Over. " + row3Array[0] + " has won!");
gameOver = true;
winner = true;
}
if (row1Array[0] == row2Array[0] && row2Array[0] == row3Array[0]
&& row1Array[0] != "N" ){
alert("Game Over. " + row1Array[0] + " has won!");
gameOver = true;
winner = true;
}
if (row1Array[1] == row2Array[1] && row2Array[1] == row3Array[1]
&& row1Array[1] != "N" ){
alert("Game Over. " + row1Array[1] + " has won!");
gameOver = true;
winner = true;
}
if (row1Array[2] == row2Array[2] && row2Array[2] == row3Array[2]
&& row1Array[2] != "N" ){
alert("Game Over. " + row1Array[2] + " has won!");
gameOver = true;
winner = true;
}
if (row1Array[2] == row2Array[1] && row2Array[1] == row3Array[0]
&& row1Array[2] != "N" ){
alert("Game Over. " + row1Array[2] + " has won!");
gameOver = true;
winner = true;
}
if (row1Array[0] == row2Array[1] && row2Array[1] == row3Array[2]
&& row1Array[0] != "N" ){
alert("Game Over. " + row1Array[0] + " has won!");
gameOver = true;
winner = true;
}
// Checks for a tie
if (numOfTurns == 9 && winner == false){
gameOver = true;
alert("Your Game Is Over. You Tied");
}
if(gameOver == true){
var response = confirm("Do you want to play again ?");
println(response);
if (response == true){
resetGame();
}
}
}
// This determins where to put something and what it should put depending // on whose turn it is
void mouseClicked(){
if (gameOver == true){
alert("Sorry your game is over. Restart the game to play again");
return;
}
if (currentTurn == "X"){
if(mouseX <= 125 && mouseX >= 0 && mouseY <= 125 && mouseY >= 0 && row1Array[0] == "N"){
drawEx(A1xX,A1yX);
row1Array[0] = "X";
numOfTurns = numOfTurns + 1;
}
if(mouseX >= 125 && mouseX <= 275 && mouseY <= 125 && mouseY >= 0 && row1Array[1] == "N"){
drawEx(A2xX,A2yX);
row1Array[1] = "X";
numOfTurns = numOfTurns + 1;
}
if(mouseX >= 275 && mouseX <= 400 && mouseY <= 125 && mouseY >= 0 && row1Array[2] == "N"){
drawEx(A3xX,A3yX);
row1Array[2] = "X";
numOfTurns = numOfTurns + 1;
}
if(mouseX <= 125 && mouseX >= 0 && mouseY >= 125 && mouseY <= 275 && row2Array[0] == "N"){
drawEx(B1xX,B1yX);
row2Array[0] = "X";
numOfTurns = numOfTurns + 1;
}
if(mouseX >= 125 && mouseX <= 275 && mouseY >= 125 && mouseY <= 275 && row2Array[1] == "N"){
drawEx(B2xX,B2yX);
row2Array[1] = "X";
numOfTurns = numOfTurns + 1;
}
if(mouseX >= 275 && mouseX <= 400 && mouseY >= 125 && mouseY <= 275 && row2Array[2] == "N"){
drawEx(B3xX,B3yX);
row2Array[2] = "X";
numOfTurns = numOfTurns + 1;
}
if(mouseX <= 125 && mouseX >= 0 && mouseY >= 275 && mouseY <= 400 && row3Array[0] == "N"){
drawEx(C1xX,C1yX);
row3Array[0] = "X";
numOfTurns = numOfTurns + 1;
}
if(mouseX >= 125 && mouseX <= 275 && mouseY >= 275 && mouseY <= 400 && row3Array[1] == "N"){
drawEx(C2xX,C2yX);
row3Array[1] = "X";
numOfTurns = numOfTurns + 1;
}
if(mouseX >= 275 && mouseX <= 400 && mouseY >= 275 && mouseY <= 400 && row3Array[2] == "N"){
drawEx(C3xX,C3yX);
row3Array[2] = "X";
numOfTurns = numOfTurns + 1;
}
currentTurn = "0";
}else{
if(mouseX <= 125 && mouseX >= 0 && mouseY <= 125 && mouseY >= 0 && row1Array[0] == "N"){
drawCirc(A1xC,A1yC);
row1Array[0] = "O";
numOfTurns = numOfTurns + 1;
}
if(mouseX >= 125 && mouseX <= 275 && mouseY <= 125 && mouseY >= 0 && row1Array[1] == "N"){
drawCirc(A2xC,A2yC);
row1Array[1] = "O";
numOfTurns = numOfTurns + 1;
}
if(mouseX >= 275 && mouseX <= 400 && mouseY <= 125 && mouseY >= 0 && row1Array[2] == "N"){
drawCirc(A3xC,A3yC);
row1Array[2] = "O";
numOfTurns = numOfTurns + 1;
}
if(mouseX <= 125 && mouseX >= 0 && mouseY >= 125 && mouseY <= 275 && row2Array[0] == "N"){
drawCirc(B1xC,B1yC);
row2Array[0] = "O";
numOfTurns = numOfTurns + 1;
}
if(mouseX >= 125 && mouseX <= 275 && mouseY >= 125 && mouseY <= 275 && row2Array[1] == "N"){
drawCirc(B2xC,B2yC);
row2Array[1] = "O";
numOfTurns = numOfTurns + 1;
}
if(mouseX >= 275 && mouseX <= 400 && mouseY >= 125 && mouseY <= 275 && row2Array[2] == "N"){
drawCirc(B3xC,B3yC);
row2Array[2] = "O";
numOfTurns = numOfTurns + 1;
}
if(mouseX <= 125 && mouseX >= 0 && mouseY >= 275 && mouseY <= 400 && row3Array[0] == "N"){
drawCirc(C1xC,C1yC);
row3Array[0] = "O";
numOfTurns = numOfTurns + 1;
}
if(mouseX >= 125 && mouseX <= 275 && mouseY >= 275 && mouseY <= 400 && row3Array[1] == "N"){
drawCirc(C2xC,C2yC);
row3Array[1] = "O";
numOfTurns = numOfTurns + 1;
}
if(mouseX >= 275 && mouseX <= 400 && mouseY >= 275 && mouseY <= 400 && row3Array[2] == "N"){
drawCirc(C3xC,C3yC);
row3Array[2] = "O";
numOfTurns = numOfTurns + 1;
}
currentTurn = "X";
}
checkGameOver();
}