Tic-tac-toe: Difference between revisions

Content added Content deleted
Line 4,748: Line 4,748:
textsize 14
textsize 14
#
#
func init . .
proc init . .
linewidth 2
linewidth 2
clear
clear
Line 4,768: Line 4,768:
.
.
.
.
func draw ind . .
proc draw ind . .
c = (ind - 1) mod 3
c = (ind - 1) mod 3
r = (ind - 1) div 3
r = (ind - 1) div 3
Line 4,787: Line 4,787:
.
.
.
.
func sum3 a d . st .
proc sum3 a d . st .
for i = 1 to 3
for i = 1 to 3
s += f[a]
s += f[a]
Line 4,798: Line 4,798:
.
.
.
.
func rate . res done .
proc rate . res done .
res = 0
res = 0
for i = 1 step 3 to 7
for i = 1 step 3 to 7
Line 4,820: Line 4,820:
.
.
.
.
func minmax player alpha beta . rval rmov .
proc minmax player alpha beta . rval rmov .
call rate rval done
call rate rval done
if done = 1
if done = 1
Line 4,846: Line 4,846:
.
.
.
.
func show_result val . .
proc show_result val . .
color 555
color 555
move 16 4
move 16 4
Line 4,859: Line 4,859:
state += 2
state += 2
.
.
func computer . .
proc computer . .
call minmax 4 -11 11 val mov
call minmax 4 -11 11 val mov
f[mov] = 4
f[mov] = 4
Line 4,869: Line 4,869:
.
.
.
.
func human . .
proc human . .
mov = floor ((mouse_x - 6) / 28) + 3 * floor ((mouse_y - 16) / 28) + 1
mov = floor ((mouse_x - 6) / 28) + 3 * floor ((mouse_y - 16) / 28) + 1
if f[mov] = 0
if f[mov] = 0