Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var_ms_table = { 0, 0, 0, 0, 0, 0, 0, 0 ,0 }
- var_ms_turn = 'X'
- var_ms_winner = nil
- var_ms_rotation = 0
- var_ms_x = 0
- var_ms_y = 0
- var_places = nil
- function reset()
- var_ms_table = { 0, 0, 0, 0, 0, 0, 0, 0 ,0 }
- var_ms_turn = 'X'
- var_ms_winner = nil
- var_ms_rotation = 0
- var_ms_x = 0
- var_ms_y = 0
- end
- function winbar(x,y,r)
- var_ms_rotation = r
- var_ms_x = x
- var_ms_y = y
- end
- var_ms_x_wins = 0
- var_ms_o_wins = 0
- var_ms_n_wins = 0
- function record_wins()
- if var_ms_winner == 'X' then
- var_ms_x_wins = var_ms_x_wins + 1
- elseif var_ms_winner == 'O' then
- var_ms_o_wins = var_ms_o_wins +1
- elseif var_ms_winner == 'No' then
- var_ms_n_wins = var_ms_n_wins + 1
- end
- reset()
- end
- function user_placed(x,y)
- check_board()
- if var_ms_turn == 'X' and var_ms_winner == nil then
- if x == 1 and y == 1 and var_ms_table[1] == 0 then
- var_ms_table[1] = 'X'
- var_ms_turn = 'O'
- elseif x == 1 and y == 2 and var_ms_table[2] == 0 then
- var_ms_table[2] = 'X'
- var_ms_turn = 'O'
- elseif x == 1 and y == 3 and var_ms_table[3] == 0 then
- var_ms_table[3] = 'X'
- var_ms_turn = 'O'
- elseif x == 2 and y == 1 and var_ms_table[4] == 0 then
- var_ms_table[4] = 'X'
- var_ms_turn = 'O'
- elseif x == 2 and y == 2 and var_ms_table[5] == 0 then
- var_ms_table[5] = 'X'
- var_ms_turn = 'O'
- elseif x == 2 and y == 3 and var_ms_table[6] == 0 then
- var_ms_table[6] = 'X'
- var_ms_turn = 'O'
- elseif x == 3 and y == 1 and var_ms_table[7] == 0 then
- var_ms_table[7] = 'X'
- var_ms_turn = 'O'
- elseif x == 3 and y == 2 and var_ms_table[8] == 0 then
- var_ms_table[8] = 'X'
- var_ms_turn = 'O'
- elseif x == 3 and y == 3 and var_ms_table[9] == 0 then
- var_ms_table[9] = 'X'
- var_ms_turn = 'O'
- end
- else
- cpu_placed()
- end
- cpu_placed()
- end
- var_ms_s_val = 10
- function cpu_placed()
- check_board()
- div = math.random(1,4)
- if var_ms_turn == 'O' and var_ms_winner == nil then
- for place in ipairs(var_ms_table) do
- 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'))
- then
- var_ms_table[place] = 'O'
- var_ms_turn = 'X'
- break
- 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')
- then
- var_ms_table[place] = 'O'
- var_ms_turn = 'X'
- break
- end
- end
- end
- end
- function cpu_player()
- check_board()
- div = math.random(1,4)
- if var_ms_turn == 'X' and var_ms_winner == nil then
- for place in ipairs(var_ms_table) do
- if var_ms_table[place] == 0 and (math.random(1,2) == 1)
- then
- var_ms_table[place] = 'X'
- var_ms_turn = 'O'
- break
- 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'))
- then
- var_ms_table[place] = 'X'
- var_ms_turn = 'O'
- break
- end
- end
- end
- end
- var_cpucpu = 1
- function cpu()
- var_cpucpu = (var_cpucpu%2 + 1)
- end
- function check_board()
- if (var_ms_table[1] == 'X' and var_ms_table[2] == 'X' and var_ms_table[3] == 'X') then
- var_ms_winner = 'X'
- winbar(0,-115,90)
- elseif (var_ms_table[4] == 'X' and var_ms_table[5] == 'X' and var_ms_table[6] == 'X') then
- var_ms_winner = 'X'
- winbar(0,0,90)
- elseif (var_ms_table[7] == 'X' and var_ms_table[8] == 'X' and var_ms_table[9] == 'X') then
- var_ms_winner = 'X'
- winbar(0,115,90)
- elseif (var_ms_table[1] == 'X' and var_ms_table[4] == 'X' and var_ms_table[7] == 'X') then
- var_ms_winner = 'X'
- winbar(-115,0,0)
- elseif (var_ms_table[2] == 'X' and var_ms_table[5] == 'X' and var_ms_table[8] == 'X') then
- var_ms_winner = 'X'
- winbar(0,0,0)
- elseif (var_ms_table[3] == 'X' and var_ms_table[6] == 'X' and var_ms_table[9] == 'X') then
- var_ms_winner = 'X'
- winbar(115,0,0)
- elseif (var_ms_table[1] == 'X' and var_ms_table[5] == 'X' and var_ms_table[9] == 'X') then
- var_ms_winner = 'X'
- winbar(0,0,-45)
- elseif (var_ms_table[3] == 'X' and var_ms_table[5] == 'X' and var_ms_table[7] == 'X')
- then
- var_ms_winner = 'X'
- winbar(0,0,45)
- elseif (var_ms_table[1] == 'O' and var_ms_table[2] == 'O' and var_ms_table[3] == 'O') then
- var_ms_winner = 'O'
- winbar(0,-115,90)
- elseif (var_ms_table[4] == 'O' and var_ms_table[5] == 'O' and var_ms_table[6] == 'O') then
- var_ms_winner = 'O'
- winbar(0,0,90)
- elseif (var_ms_table[7] == 'O' and var_ms_table[8] == 'O' and var_ms_table[9] == 'O') then
- var_ms_winner = 'O'
- winbar(0,115,90)
- elseif (var_ms_table[1] == 'O' and var_ms_table[4] == 'O' and var_ms_table[7] == 'O') then
- var_ms_winner = 'O'
- winbar(-115,0,0)
- elseif (var_ms_table[2] == 'O' and var_ms_table[5] == 'O' and var_ms_table[8] == 'O') then
- var_ms_winner = 'O'
- winbar(0,0,0)
- elseif (var_ms_table[3] == 'O' and var_ms_table[6] == 'O' and var_ms_table[9] == 'O') then
- var_ms_winner = 'O'
- winbar(115,0,0)
- elseif (var_ms_table[1] == 'O' and var_ms_table[5] == 'O' and var_ms_table[9] == 'O') then
- var_ms_winner = 'O'
- winbar(0,0,-45)
- elseif (var_ms_table[3] == 'O' and var_ms_table[5] == 'O' and var_ms_table[7] == 'O')
- then
- var_ms_winner = 'O'
- winbar(0,0,45)
- 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
- var_ms_winner = 'No'
- end
- end
- function on_second(h,m,s)
- if var_cpucpu == 1 then
- if ((var_ms_winner == 'X' or var_ms_winner == 'O' or var_ms_winner == 'No') and s%5 == 0) then
- record_wins()
- end
- elseif var_cpucpu == 2 then
- if ((var_ms_winner == 'X' or var_ms_winner == 'O' or var_ms_winner == 'No')) then
- record_wins()
- end
- end
- end
- function on_millisecond(dt)
- cpu_placed()
- check_board()
- if var_cpucpu == 2 then
- -- x = math.random(1,9)
- -- y = math.random(1,9)
- -- user_placed(x,y)
- cpu_player()
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement