Advertisement
Guest User

Untitled

a guest
Oct 14th, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.67 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Tic Tac Toe</title>
  6. <style>
  7. body {
  8. background-color: white;
  9. }
  10. .container {
  11. max-width: 500px;
  12. margin: 0 auto;
  13. font-family: 'Lato', sans-serif;
  14. background-color: rgba(0,0,0,.1);
  15. }
  16. .board {
  17. display: flex;
  18. flex-direction: row;
  19. flex-wrap: wrap;
  20. }
  21. .row {
  22. display: flex;
  23. flex-direction: row;
  24. flex: 1 1 100%;
  25. }
  26. .space {
  27. flex: 1 1 100%;
  28. padding: 25px;
  29. text-align: center;
  30. font-size: 30px;
  31. }
  32. #space1, #space2, #space4, #space5, #space7, #space8{
  33. border-right: 2px solid;
  34. }
  35. #space1, #space2, #space4, #space5, #space3, #space6{
  36. border-bottom: 2px solid;
  37. }
  38. </style>
  39.  
  40. </head>
  41. <body>
  42.  
  43. <div class="container">
  44. <center><h1>Tic Tac Toe</h1></center>
  45.  
  46. <div class="board">
  47. <div class="row">
  48. <div class="space" id="space1">&nbsp</div>
  49. <div class="space" id="space2"></div>
  50. <div class="space" id="space3"></div>
  51. </div>
  52. <div class="row">
  53. <div class="space" id="space4">&nbsp</div>
  54. <div class="space" id="space5"></div>
  55. <div class="space" id="space6"></div>
  56. </div>
  57. <div class="row">
  58. <div class="space" id="space7">&nbsp</div>
  59. <div class="space" id="space8"></div>
  60. <div class="space" id="space9"></div>
  61. </div
  62. </div>
  63. </div>
  64.  
  65. <script>
  66. let xBoxes = [];
  67. let oBoxes = [];
  68. let clickedBoxes = [];
  69. let currentTurn = "X";
  70. const waysToWin = [
  71. [1,2,3],
  72. [1,4,7],
  73. [1,5,9],
  74. [2,5,8],
  75. [3,6,9],
  76. [3,5,7],
  77. [4,5,6],
  78. [7,8,9]
  79. ];
  80. function didPlayerWin(currentBoxes,playerName){
  81. for(let i=0;i<waysToWin.length; i++){
  82. if(currentBoxes.includes(waysToWin[i][0]) &&
  83. currentBoxes.includes(waysToWin[i][1]) &&
  84. currentBoxes.includes(waysToWin[i][2])
  85. )
  86. {alert("Player "+ playerName + " has won! Refresh the page to play again.")}
  87. }
  88. }
  89. let boxClicked = 0;
  90. for(let i=0;i<document.querySelectorAll("div.space").length;i++){
  91. document.querySelectorAll("div.space")[i]
  92. .addEventListener("click",() => {
  93. boxClicked = i+1;
  94. if(!clickedBoxes.includes(boxClicked)){
  95. clickedBoxes.push(boxClicked);
  96. document.querySelectorAll("div.space")[i].innerHTML=currentTurn;
  97. if(currentTurn == "X"){
  98. xBoxes.push(boxClicked);
  99. currentTurn = "O";
  100. didPlayerWin(xBoxes,"X");
  101. } else {
  102. oBoxes.push(boxClicked)
  103. currentTurn = "X";
  104. didPlayerWin(oBoxes,"O");
  105. }
  106. }
  107. });
  108. }
  109. </script>
  110. </body>
  111. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement