Perl: the Markov chain saw 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?
 [erix]: Alvin Lee (Ten Years After) played a jazzguitar ("Big Red"), a good warm sound [stonecolddevin]: I think Stevie Ray is one of maybe 2 or 3 people that could take a Hendrix song and make you go "...huh. this is close." https://open. spotify.com/track/ 0UVM9trirBK5s1xBwL oVhZ [Corion]: Sadly I must go to bed now :-| See y'all! [erix]: I really loved/love this "Recorded Live" record, 1973 (yes, I'm that old) [stonecolddevin]: goodnight Corion [erix]: cya Corion :) [stevieb]: Joan Jett, Hendrix, Neil Young, Dave Keuning (The Killers)... I have my mind elsewhere so I'm limited in my capacity to think about this righ tnow ;) [stonecolddevin]: I will say John Mayer is an excellent guitarist, I don't like his music but he's pretty damn good

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (5)
As of 2017-06-22 21:37 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?
How many monitors do you use while coding?

Results (531 votes). Check out past polls.