How do I make a tic tac toe game using javascript html 1The
How do I make a tic tac toe game using javascript + html?
1.The game is played on a 4x4 board.
2.The computer plays one side (O) and the user plays the other (X). X plays first.
3.The players take turns placing tokens in unoccupied cells on the board. The computer\'s
strategy for playing O need not be complex. It can pick a random cell, or use a more
sophisticated strategy.
Each player is limited to four tokens on the board. When the fifth and subsequent plays are made by a player, the oldest token for that player must be removed before a new one is positioned.
Solution
<!DOCTYPE html>
 <html>
    <head>
        <style>
            #block {
                position:absolute;
                top: 50%;
                left: 50%;
                width: 30em;
                margin-top: -250px;
                margin-left: -15em;
                background-color: #f3f3f3;
                border: 1px solid #ccc;
                text-align:center;
                -webkit-border-radius: 10px;
                -moz-border-radius: 10px;
                border-radius: 10px;
            }
           #content {
            font-size:15px;
            padding-top:10px;
            }
           
            canvas {
                position:relative;
                -webkit-animation:canvasAnimation 2s;
            }
           
            #canvas1, #canvas2, #canvas3,
            #canvas4, #canvas5, #canvas6,
            #canvas7, #canvas8, #canvas9 {  
                border:1px solid black;
            }
           
            @-webkit-keyframes canvasAnimation {
                0% {-webkit-transform:rotate(90deg);left:0px; top:0px;}
            }
        </style>
        <script language=\"javascript\" type=\"text/javascript\">
            //Variables declaration
            var painted;
            var content;
            var winningCombinations;
            var turn = 0;
            var theCanvas;
            var c;
            var cxt;
            var squaresFilled = 0;
            var w;
            var yes;
   
            //Arrays
            window.onload=function(){
               
                painted = new Array();
                content = new Array();
                winningCombinations = [[0,1,2],[3,4,5],[6,7,8],[0,3,6],[1,4,7],[2,5,8],[0,4,8],[2,4,6]];
    
                for(var l = 0; l <= 8; l++){
                painted[l] = false;
                content[l]=\'\';
                }
            }
   
            //Game methods
            function canvasClicked(canvasNumber){
                theCanvas = \"canvas\"+canvasNumber;
                c = document.getElementById(theCanvas);
                cxt = c.getContext(\"2d\");
   
                if(painted[canvasNumber-1] ==false){
                    if(turn%2==0){
                        cxt.beginPath();
                        cxt.moveTo(10,10);
                        cxt.lineTo(40,40);
                        cxt.moveTo(40,10);
                        cxt.lineTo(10,40);
                        cxt.stroke();
                        cxt.closePath();
                        content[canvasNumber-1] = \'Opponent \"X\" wins. \';
                    }
   
                    else{
                        cxt.beginPath();
                        cxt.arc(25,25,20,0,Math.PI*2,true);
                        cxt.stroke();
                        cxt.closePath();
                        content[canvasNumber-1] = \'Opponent \"O\" wins. \';
                    }
   
                    turn++;
                    painted[canvasNumber-1] = true;
                    squaresFilled++;
                    checkForWinners(content[canvasNumber-1]);
   
                    if(squaresFilled==9){
                        alert(\"Draw. Game over.\");
                        location.reload(true);
                    }
               
                }
                else{
                    alert(\"Column filled !\");
                }
   
            }
   
            function checkForWinners(symbol){
               
                for(var a = 0; a < winningCombinations.length; a++){
                if(content[winningCombinations[a][0]]==symbol&&content[winningCombinations[a][1]]==   symbol&&content[winningCombinations[a][2]]==symbol){
                    alert(symbol+ \"Congrats ..\");
                    playAgain();
                }
                }
   
            }
   
            function playAgain(){
                yes=confirm(\"Play again?\");
                if(yes==true){
                    location.reload(true);
                }
                else{
                    alert(\"Bye !\");
                    location.reload(true);
            }
   
            }
        </script>
    </head>
    <body>
        <div id=\"block\">
            <h1>Game Tic-tac-toe“</h1>
            <h3>You are playing against computer</h3>
            <canvas id = \"canvas1\" width=\"50px\" height=\"50px\" onclick=\"canvasClicked(1)\"></canvas>
            <canvas id = \"canvas2\" width=\"50px\" height=\"50px\" onclick=\"canvasClicked(2)\"></canvas>
            <canvas id = \"canvas3\" width=\"50px\" height=\"50px\" onclick=\"canvasClicked(3)\"></canvas><br/>
            <canvas id = \"canvas4\" width=\"50px\" height=\"50px\" onclick=\"canvasClicked(4)\"></canvas>
            <canvas id = \"canvas5\" width=\"50px\" height=\"50px\" onclick=\"canvasClicked(5)\"></canvas>
            <canvas id = \"canvas6\" width=\"50px\" height=\"50px\" onclick=\"canvasClicked(6)\"></canvas><br/>
            <canvas id = \"canvas7\" width=\"50px\" height=\"50px\" onclick=\"canvasClicked(7)\"></canvas>
            <canvas id = \"canvas8\" width=\"50px\" height=\"50px\" onclick=\"canvasClicked(8)\"></canvas>
            <canvas id = \"canvas9\" width=\"50px\" height=\"50px\" onclick=\"canvasClicked(9)\"></canvas>
            <p id=\"content\">
                <input type=\"button\" value=\"New game\" onClick=\"document.location.reload(true)\">
                <input type=\"button\" value=\"Home\" onClick=\"javascript:location.href=\'index.html               <br/>
            </p>
        </div>
    </body>
 </html>



