MinimaxTTT
How do I make an minimaxttt?
What is a minimaxttt? How do you make a minimaxttt? This script and codes were developed by Neeilan Selvalingam on 13 September 2022, Tuesday.
MinimaxTTT - Script Codes HTML Codes
<!DOCTYPE html>
<html >
<head> <meta charset="UTF-8"> <title>MinimaxTTT</title> <link rel="stylesheet" href="css/style.css">
</head>
<body> <div id="board"> <div onclick="userClick(0)" id="0"></div> <div onclick="userClick(1)" id="1"></div> <div onclick="userClick(2)" id="2"></div><br> <div onclick="userClick(3)" id="3"></div> <div onclick="userClick(4)" id="4"></div> <div onclick="userClick(5)" id="5"></div><br> <div onclick="userClick(6)" id="6"></div> <div onclick="userClick(7)" id="7"></div> <div onclick="userClick(8)" id="8"></div>
</div>
<div id="content"></div> <script src="js/index.js"></script>
</body>
</html>
MinimaxTTT - Script Codes CSS Codes
#content { font-size: 16px;
}
#board { /* visibility: hidden; */ text-align: center; margin-left: auto; margin-right: auto; margin-top: 100px; margin-bottom: 100px;
}
#board div { border: solid 5px #bcaaa4; margin-bottom: -10px; margin-left: -10px; display: inline-block; width: 100px; height: 100px; margin: none; overflow: hidden; color: #40c4ff; font-family: Arial; font-size: 80px; font-weight: bold;
}
.comp { color: #ff8a65;
}
MinimaxTTT - Script Codes JS Codes
(function(){ this.userClick = userClick; var human = "o", computer = "x", board = [0, 0, 0, 0, 0, 0, 0, 0, 0];
function score(state, player) { //determine sign var sign; if (player == 1) { sign = computer; } else if (player == -1) { sign = human; } var winCheckResult = winCheck(state); //minimax implementation if (winCheckResult === false) { var stateScore; if (player == 1) { // maximize the computer's score stateScore = -1; for (var i = 0; i < 9; i++) { if (state[i] === 0) { var state2 = state.slice(); state2[i] = sign; var nextStateScore = score(state2, -1 * player); if (nextStateScore > stateScore) { stateScore = nextStateScore; } } } return stateScore; } else if (player == -1) { // minimize the human's score stateScore = 1; for (var i = 0; i < 9; i++) { if (state[i] === 0) { var state2 = state.slice(); state2[i] = sign; var nextStateScore = score(state2, -1 * player); if (nextStateScore < stateScore) { stateScore = nextStateScore; } } } return stateScore; // The minimax score, based on how likely the computer wins from this board state } } else { // game is over return winCheckResult; }
}
function userClick(position) { if (board[position] === 0) { document.getElementById("" + position).innerHTML = ("<span class='human'>" + human + "</span>"); board[position] = human; if (winCheck(board) === false) { board = idealState(board); updateBoard(board); } endgameCheck(board); }
}
function idealState(arr) { var highScore = -2; var idealState = []; for (var i = 0; i < 9; i++) { if (arr[i] === 0) { var arr2 = arr.slice(); arr2[i] = computer; var stateScore = score(arr2, -1); // player is -1 b/c we're simulating starting on the next (human) turn if (stateScore > highScore) { highScore = stateScore; idealState = arr2; } } } return idealState;
}
function winCheck(arr) { //returns false if game is ongoing, 0 if tied, 1 if computer wins, and -1 if human wins var result = false; if (((arr[0] == arr[4] && arr[0] == arr[8]) || (arr[2] == arr[4] && arr[2] == arr[6])) && arr[4] !== 0) { result = arr[4]; } for (var i = 0; i < 9; i += 3) { if ((arr[i] == arr[i + 1] && arr[i] == arr[i + 2]) && arr[i] !== 0) { result = arr[i]; } } for (var i = 0; i < 3; i++) { if ((arr[i] == arr[i + 3] && arr[i] == arr[i + 6]) && arr[i] !== 0) { result = arr[i]; } } if (result === human) { return -1; } else if (result === computer) { return 1; } else if (arr.indexOf(0) === -1) { return 0; } else { return false; }
}
function updateBoard(arr) { for (var i = 0; i < arr.length; i++) { if (arr[i] !== 0) { if (arr[i] === human) { document.getElementById("" + i).innerHTML = human; } else { document.getElementById("" + i).innerHTML = "<span class='comp'>" + computer + "</span>"; } } }
}
function endgameCheck(board) { switch (winCheck(board)) { case 1: alert("You lose!"); break; case -1: alert("You win!"); break; case 0: alert("Tie game!"); break; }
}
})();
Developer | Neeilan Selvalingam |
Username | neeilan |
Uploaded | September 13, 2022 |
Rating | 3 |
Size | 2,823 Kb |
Views | 26,312 |
Find the perfect freelance services for your business! Fiverr's mission is to change how the world works together. Fiverr connects businesses with freelancers offering digital services in 500+ categories. Find Developer!
Name | Size |
NeeilCalc | 3,209 Kb |
UTSCMap | 3,292 Kb |
RenderTest | 15,600 Kb |
NeeilTimer | 2,836 Kb |
Simon Game | 3,313 Kb |
NeeilQuote | 3,195 Kb |
NeeilTwitch | 2,785 Kb |
Firebase-test | 2,374 Kb |
NeeilWiki | 2,824 Kb |
Scribe | 3,525 Kb |
Jasper is the AI Content Generator that helps you and your team break through creative blocks to create amazing, original content 10X faster. Discover all the ways the Jasper AI Content Platform can help streamline your creative workflows. Start For Free!
Name | Username | Size |
Mostly Fluid | Mccreath | 3,308 Kb |
Single element checkbox | Ivijaygupta | 1,996 Kb |
Hamburger Menu Animation | Salmanraza | 2,580 Kb |
APortfolio | Skybutterfly | 5,174 Kb |
CSS Letter animations | Sladix | 2,116 Kb |
Testing Portfolio Page | Sideshowli | 3,395 Kb |
Guidepopup | Wooljs | 3,747 Kb |
Responsive Section hover effect to show content | Berdejitendra | 2,540 Kb |
Slim Grid SASS SCSS v3.2 | Thesturs | 4,709 Kb |
Christ the Redeemer | Prashantsani | 2,208 Kb |
Surf anonymously, prevent hackers from acquiring your IP address, send anonymous email, and encrypt your Internet connection. High speed, ultra secure, and easy to use. Instant setup. Hide Your IP Now!