ashlylau / TicTacToe

Learning basics of React Native by following this tutorial: https://medium.com/@davidguandev/building-a-tic-tac-toe-in-react-native-2a3c44e697f2

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

TicTacToe

Learning basics of React Native by following this tutorial: https://medium.com/@davidguandev/building-a-tic-tac-toe-in-react-native-2a3c44e697f2

Implemented additional heuristics for AI

Heuristics (attack)

    X | X | *
    ---------
    O |   | X
    ---------
    O | O |

    AI (X) will select position * to win
var almostWinAI = this.containsAlmostWin(AIInputs);
if (almostWinAI[0]) {
  this.setState({ AIInputs: AIInputs.concat(almostWinAI[1]) })
  this.judgeWinner()
  console.log('shouldWin')
  return
}

Heuristics (defense)

    X |   |
    ---------
    O |   | X
    ---------
    O | O | *

    AI (X) will select position * to prevent human from winning */
var almostWinUser = this.containsAlmostWin(userInputs);
if (almostWinUser[0]) {
  this.setState({ AIInputs: AIInputs.concat(almostWinUser[1]) })
  this.judgeWinner()
  console.log('blockedAlmostWinUser')
  return
}

About

Learning basics of React Native by following this tutorial: https://medium.com/@davidguandev/building-a-tic-tac-toe-in-react-native-2a3c44e697f2


Languages

Language:JavaScript 100.0%