Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Contributor.md
Original file line number Diff line number Diff line change
Expand Up @@ -256,3 +256,4 @@ Added solution for custom range slider
45. Niranjan patil | [LinkedIn](https://www.linkedin.com/in/niranjan-patil-8512a1374) | [GitHub](https://github.com/niranjanpatil1010)
- Added Solution for Leetcode Q35 search insert position
-added solution for median of two sorted array
-added Tik tak toe game using Html,css,js
70 changes: 70 additions & 0 deletions css/css/Tic_Tak_Toe.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@

*{
margin: 0;
padding: 0;
}

body{
background-color:rgb(6, 129, 145);
text-align: center;
}

.cantainer{
height: 70svh;
display: flex;
flex-wrap: wrap;
justify-content: center;
align-content: center;
}

.game{
height: 60vmin;
width: 60vmin;
display: flex;
flex-wrap: wrap;
justify-content: center;
align-content: center;
gap: 1.5vmin;
}

.box{
height: 18vmin;
width:18vmin;
border-radius:1rem ;
/* border: none; */
box-shadow: 0 0 1rem rgb(6, 129, 145);
font-size: 8vmin;
color: rgb(246, 72, 86);
background-color: aliceblue;
}
#reset{
padding: 1.5rem;
font-size: 1.25rem;
background-color: black;
color: aliceblue;
border: 1rem;
}
#newgame{
padding: 1rem;
font-size: 1.25rem;
background-color: black;
color: aliceblue;
border: 1rem;

}
.win{
height :100vmin;

}
#msg{
font-size: 10vmin;
color: aliceblue;
display: flex;
justify-content: center;
align-items: center;
gap: 8rem;

}
.hide{
display: none;
}
35 changes: 35 additions & 0 deletions html/Tic_Tak_Toe.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Tic Tac Toe Game</title>
<link rel="stylesheet" href="css/Tic_Tak_Toe.css">
</head>
<body>
<div class="win hide">
<h1 id="msg">Winner</h1>
<button id="newgame">New game</button>
</div>
<Main>

<h1>Tic Tac Toe game </h1>
<div class="cantainer">
<div class="game">
<button class="box"></button>
<button class="box"></button>
<button class="box"></button>
<button class="box"></button>
<button class="box"></button>
<button class="box"></button>
<button class="box"></button>
<button class="box"></button>
<button class="box"></button>
</div>
</div>
<button id="reset">Reset</button>
</Main>
<script src="js/Tic_Tak_Toe.js"></script>

</body>
</html>
112 changes: 112 additions & 0 deletions js/css/Tic_Tak_Toe.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@

let boxes = document.querySelectorAll(".box");
let reset = document.querySelector("#reset");
let newgame = document.querySelector("#newgame");
let win = document.querySelector(".win");
let msg = document.querySelector("#msg");
let turn0 = true;
let count = 0;
let draw=false;
const patterns = [

[0, 1, 2],
[0, 3, 6],
[0, 4, 8],
[1, 4, 7],
[2, 5, 8],
[2, 4, 6],
[3, 4, 5],
[6, 7, 8],
];

boxes.forEach((box) => {
box.addEventListener("click", () => {
if (turn0) {
box.innerText = "O";
turn0 = false;
}
else {
box.innerText = "X";
turn0 = true;
}
count++;
console.log(count);
box.disabled = true;
checkwin();
})
})

const resetbut = () => {
turn0 = true;
enablebox();
win.classList.add("hide");
count = 0;
draw=false;


}
const disablebox = () => {
for (box of boxes) {
box.disabled = true;
}
}

const enablebox = () => {
for (box of boxes) {
box.disabled = false;
box.innerText = "";
}
}
const show = (winner) => {
msg.innerText = `winner is ${winner}`;
win.classList.remove("hide");
disablebox();
}


const checkwin = () => {
for (pattern of patterns) {
pos1 = boxes[pattern[0]].innerText;
pos2 = boxes[pattern[1]].innerText;
pos3 = boxes[pattern[2]].innerText;
if (pos1 !== "" && pos2 !== "" && pos3 !== "") {
if ((pos1 === pos2 && pos2 === pos3)) {
console.log("winner", pos1);
show(pos1);
draw=true;
break;

}
}

}

if (count === 9 && !draw) {
msg.innerText = "match draw";
win.classList.remove("hide");
disablebox();
}

}





newgame.addEventListener("click", resetbut);
reset.addEventListener("click", resetbut);