Advertisement
IssyPutchy

Original code

Aug 14th, 2021
1,577
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 5.97 KB | None | 0 0
  1. var_ms_table = { 0, 0, 0, 0, 0, 0, 0, 0 ,0 }
  2. var_ms_turn = 'X'
  3. var_ms_winner = nil
  4. var_ms_rotation = 0
  5. var_ms_x = 0
  6. var_ms_y = 0
  7. var_places = nil
  8.  
  9. function reset()
  10.  var_ms_table = { 0, 0, 0, 0, 0, 0, 0, 0 ,0 }
  11.  var_ms_turn = 'X'
  12.  var_ms_winner = nil
  13.  var_ms_rotation = 0
  14.  var_ms_x = 0
  15.  var_ms_y = 0
  16. end
  17.  
  18. function winbar(x,y,r)
  19.  var_ms_rotation = r
  20.  var_ms_x = x
  21.  var_ms_y = y
  22. end
  23.  
  24. var_ms_x_wins = 0
  25. var_ms_o_wins = 0
  26. var_ms_n_wins = 0
  27.  
  28. function record_wins()
  29.  if var_ms_winner == 'X' then
  30.   var_ms_x_wins = var_ms_x_wins + 1
  31.  elseif var_ms_winner == 'O' then
  32.   var_ms_o_wins = var_ms_o_wins +1
  33.  elseif var_ms_winner == 'No' then
  34.   var_ms_n_wins = var_ms_n_wins + 1
  35.  end
  36. reset()
  37. end
  38.  
  39. function user_placed(x,y)
  40. check_board()
  41.  if var_ms_turn == 'X' and var_ms_winner == nil then
  42.   if x == 1 and y == 1 and var_ms_table[1] == 0 then
  43.    var_ms_table[1] = 'X'
  44.    var_ms_turn = 'O'
  45.     elseif x == 1 and y == 2 and var_ms_table[2] == 0 then
  46.    var_ms_table[2] = 'X'
  47.    var_ms_turn = 'O'
  48.     elseif x == 1 and y == 3 and var_ms_table[3] == 0 then
  49.    var_ms_table[3] = 'X'
  50.    var_ms_turn = 'O'
  51.     elseif x == 2 and y == 1 and var_ms_table[4] == 0 then
  52.    var_ms_table[4] = 'X'
  53.    var_ms_turn = 'O'
  54.     elseif x == 2 and y == 2 and var_ms_table[5] == 0 then
  55.    var_ms_table[5] = 'X'
  56.    var_ms_turn = 'O'
  57.     elseif x == 2 and y == 3 and var_ms_table[6] == 0 then
  58.    var_ms_table[6] = 'X'
  59.    var_ms_turn = 'O'
  60.     elseif x == 3 and y == 1 and var_ms_table[7] == 0 then
  61.    var_ms_table[7] = 'X'
  62.    var_ms_turn = 'O'
  63.     elseif x == 3 and y == 2 and var_ms_table[8] == 0 then
  64.    var_ms_table[8] = 'X'
  65.    var_ms_turn = 'O'
  66.     elseif x == 3 and y == 3 and var_ms_table[9] == 0 then
  67.    var_ms_table[9] = 'X'
  68.    var_ms_turn = 'O'
  69.   end
  70.  else
  71.   cpu_placed()
  72.  end
  73.  cpu_placed()
  74. end
  75.  
  76. var_ms_s_val = 10
  77.  
  78. function cpu_placed()
  79. check_board()
  80. div = math.random(1,4)
  81.  if var_ms_turn == 'O' and var_ms_winner == nil then
  82.   for place in ipairs(var_ms_table) do
  83.    if var_ms_table[place] == 0 and (math.random(1,9) == 1 and (var_ms_table[place-math.random(1,2)] == 'O' or var_ms_table[place+math.random(1,2)] == 'O'))
  84.     then
  85.      var_ms_table[place] = 'O'
  86.      var_ms_turn = 'X'
  87.      break
  88.    elseif var_ms_table[place] == 0 and (var_ms_table[place-math.random(0,4)] == 'X' or var_ms_table[place+math.random(0,4)] == 'X')
  89.     then
  90.      var_ms_table[place] = 'O'
  91.      var_ms_turn = 'X'
  92.      break
  93.    end
  94.   end
  95.  end
  96. end
  97.  
  98. function cpu_player()
  99. check_board()
  100. div = math.random(1,4)
  101.  if var_ms_turn == 'X' and var_ms_winner == nil then
  102.   for place in ipairs(var_ms_table) do
  103.    if var_ms_table[place] == 0 and (math.random(1,2) == 1)
  104.     then
  105.      var_ms_table[place] = 'X'
  106.      var_ms_turn = 'O'
  107.      break
  108.    elseif var_ms_table[place] == 0 and (math.random(1,2) == 2 and (var_ms_table[place-math.random(0,4)] == 'O' or var_ms_table[place+math.random(0,4)] == 'O'))
  109.     then
  110.      var_ms_table[place] = 'X'
  111.      var_ms_turn = 'O'
  112.      break
  113.    end
  114.   end
  115.  end
  116. end
  117.  
  118. var_cpucpu = 1
  119. function cpu()
  120.  var_cpucpu = (var_cpucpu%2 + 1)
  121. end
  122.  
  123. function check_board()
  124.  if (var_ms_table[1] == 'X' and var_ms_table[2] == 'X' and var_ms_table[3] == 'X') then
  125.   var_ms_winner = 'X'
  126.   winbar(0,-115,90)
  127. elseif (var_ms_table[4] == 'X' and var_ms_table[5] == 'X' and var_ms_table[6] == 'X') then
  128.   var_ms_winner = 'X'
  129.   winbar(0,0,90)
  130.  elseif (var_ms_table[7] == 'X' and var_ms_table[8] == 'X' and var_ms_table[9] == 'X') then
  131.   var_ms_winner = 'X'
  132.   winbar(0,115,90)
  133.   elseif (var_ms_table[1] == 'X' and var_ms_table[4] == 'X' and var_ms_table[7] == 'X') then
  134.   var_ms_winner = 'X'
  135.   winbar(-115,0,0)
  136.   elseif (var_ms_table[2] == 'X' and var_ms_table[5] == 'X' and var_ms_table[8] == 'X') then
  137.   var_ms_winner = 'X'
  138.   winbar(0,0,0)
  139.  elseif (var_ms_table[3] == 'X' and var_ms_table[6] == 'X' and var_ms_table[9] == 'X') then
  140.   var_ms_winner = 'X'
  141.   winbar(115,0,0)
  142. elseif (var_ms_table[1] == 'X' and var_ms_table[5] == 'X' and var_ms_table[9] == 'X') then
  143.   var_ms_winner = 'X'
  144.   winbar(0,0,-45)
  145.  elseif (var_ms_table[3] == 'X' and var_ms_table[5] == 'X' and var_ms_table[7] == 'X')
  146.   then
  147.    var_ms_winner = 'X'
  148.    winbar(0,0,45)
  149.  elseif (var_ms_table[1] == 'O' and var_ms_table[2] == 'O' and var_ms_table[3] == 'O') then
  150.   var_ms_winner = 'O'
  151.   winbar(0,-115,90)
  152.  elseif (var_ms_table[4] == 'O' and var_ms_table[5] == 'O' and var_ms_table[6] == 'O') then
  153.   var_ms_winner = 'O'
  154.   winbar(0,0,90)
  155.  elseif (var_ms_table[7] == 'O' and var_ms_table[8] == 'O' and var_ms_table[9] == 'O') then
  156.   var_ms_winner = 'O'
  157.   winbar(0,115,90)
  158.  elseif (var_ms_table[1] == 'O' and var_ms_table[4] == 'O' and var_ms_table[7] == 'O') then
  159.   var_ms_winner = 'O'
  160.   winbar(-115,0,0)
  161.  elseif (var_ms_table[2] == 'O' and var_ms_table[5] == 'O' and var_ms_table[8] == 'O') then
  162.   var_ms_winner = 'O'
  163.   winbar(0,0,0)
  164.  elseif (var_ms_table[3] == 'O' and var_ms_table[6] == 'O' and var_ms_table[9] == 'O') then
  165.   var_ms_winner = 'O'
  166.   winbar(115,0,0)
  167.  elseif (var_ms_table[1] == 'O' and var_ms_table[5] == 'O' and var_ms_table[9] == 'O') then
  168.   var_ms_winner = 'O'
  169.   winbar(0,0,-45)
  170.  elseif (var_ms_table[3] == 'O' and var_ms_table[5] == 'O' and var_ms_table[7] == 'O')
  171.   then
  172.    var_ms_winner = 'O'
  173.    winbar(0,0,45)
  174.   elseif (var_ms_table[1] ~= 0 and var_ms_table[2] ~= 0 and var_ms_table[3] ~= 0 and var_ms_table[4] ~= 0 and var_ms_table[5] ~= 0 and var_ms_table[6] ~= 0 and var_ms_table[7] ~= 0 and var_ms_table[8] ~= 0 and var_ms_table[9] ~= 0) then
  175.   var_ms_winner = 'No'
  176.  end
  177. end
  178.  
  179. function on_second(h,m,s)
  180.  if var_cpucpu == 1 then
  181.   if ((var_ms_winner == 'X' or var_ms_winner == 'O' or var_ms_winner == 'No') and s%5 == 0) then
  182.    record_wins()
  183.   end
  184.  elseif var_cpucpu == 2 then
  185.   if ((var_ms_winner == 'X' or var_ms_winner == 'O' or var_ms_winner == 'No')) then
  186.    record_wins()
  187.   end
  188.  end
  189. end
  190.  
  191. function on_millisecond(dt)
  192.  cpu_placed()
  193.  check_board()
  194.   if var_cpucpu == 2 then
  195.    -- x = math.random(1,9)
  196.    -- y = math.random(1,9)
  197.    -- user_placed(x,y)
  198.    cpu_player()
  199.   end
  200. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement