Keep It Simple, Stupid PerlMonks

### Re: Checking Tic-Tac-Toe Win conditions?

 on Sep 25, 2004 at 11:06 UTC ( #393772=note: print w/replies, xml ) Need Help??

in reply to Checking Tic-Tac-Toe Win conditions?

Okay, here's my take.

• my board is some kind of a 2D array.
• 'x' are 1.
• 'o' are -1.
• empty is 0.

we look for an absolute 3. But I'm sure there is a more mathematical way for this:

```my @board;
while (<DATA>) {
chomp;
push @board, [split / /];
}

for my \$i (0 .. 2) {
my (\$t1, \$t2, \$t3, \$t4) = (0,0,0,0);
for my \$j ( 0 .. 2 ) {
\$t1 += \$board[\$i][\$j];
\$t2 += \$board[\$j][\$i];
\$t3 += \$board[\$j][\$j];
\$t4 += \$board[2 - \$j][\$j];
}

if (abs(\$t1) == 3 || abs(\$t2) == 3
|| abs(\$t3) == 3 || abs(\$t4) == 3) {
print "Win.\n";
last;
}
}

__DATA__
1 0 1
-1 1 -1
1 0 1

He who asks will be a fool for five minutes, but he who doesn't ask will remain a fool for life.
Are you a Linux user in Lebanon? join the Lebanese Linux User Group.

Create A New User
Node Status?
node history
Node Type: note [id://393772]
help
Chatterbox?
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (8)
As of 2018-03-23 20:53 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?
When I think of a mole I think of:

Results (296 votes). Check out past polls.

Notices?