Tic tac toe script 2 players
there prolly is a easier way of doing so with a lot less code but i couldnt think of any other way
leave suggestions
Enjoy! Tell me how i did plx =)
<3
!start (start a game) !join (to join a game looking for players) !play (play in a square) !stop (stop a game) !board (to look at a board)
!help and !commands =)
Version 2
-Added Stats
To come
minor bugs- if someone gets kicked quits d/c's
colors still
BTW! i did all but the "Giveup" on stats.. gotta go work lol
on *:load: {
Echo -a Thanks for loading PaPaYa's Tic Tac Toe Script! Version 1!
Echo -a Irc.Mtown-zone.com #hon
if (!%chan) {
set %chan $input(Enter a channel for tic tac toe,eod, PaPaYa's Tic Tac Toe Script)
SReset
timer 0 1 TTT
}
}
on *:start: {
Timer 0 1 ttt
Sreset
}
on *:text:*:%chan: {
if ($1 == !start) {
if (!%game) {
if (!%getp) {
set %getp on | msg %chan $nick Started Tic Tic Toe! Type !join to join. (2 Players are needed to play).
}
else msg %chan Game is already active.
}
else msg %chan A game is already started.
}
if ($1 == !join) {
if (!$readini(ttt.ini,player,player1)) {
set %pi1 $nick
writeini ttt.ini player player1 $nick | msg $chan $nick has joined the game! 1 more player needed to start! | halt
}
if (!$readini(ttt.ini,player,player2)) {
if ($readini(ttt.ini,player,player1) !== $nick) {
set %pi2 $nick
writeini ttt.ini player player2 $nick | msg $chan $nick has joined the game!
msg %chan Tic tac toe is ready! | msg %chan $readini(ttt.ini,player,player1) is Player X and $readini(ttt.ini,player,player2) is Player O
writeini ttt.ini turn turn $readini(ttt.ini,player,player1)
msg %chan It's $readini(ttt.ini,turn,turn) $+ 's turn. Type !play (number) to play in a square
unset %getp
set %game on
writeini ttt.ini %pi1 games $calc($readini(ttt.ini,%pi1,games) + 1) | writeini ttt.ini %pi2 games $calc($readini(ttt.ini,%pi2,games) + 1)
unset %pi1 pi2
}
}
elseif (%game) {
msg %chan A game is already active!
}
}
if ($1 == !play) {
if ($readini(ttt.ini,turn,turn) == $nick) {
if ($nick == $readini(ttt.ini,player,player1)) {
if ($readini(ttt.ini,ttt,$2) == -) {
writeini ttt.ini ttt $2 X
writeini ttt.ini turn turn $readini(ttt.ini,player,player2)
msg %chan $readini(ttt.ini,ttt,1) $readini(ttt.ini,ttt,2) $readini(ttt.ini,ttt,3)
msg %chan $readini(ttt.ini,ttt,4) $readini(ttt.ini,ttt,5) $readini(ttt.ini,ttt,6)
msg %chan $readini(ttt.ini,ttt,7) $readini(ttt.ini,ttt,8) $readini(ttt.ini,ttt,9)
inc %go 1
}
}
}
if ($readini(ttt.ini,turn,turn) == $nick) {
if ($nick == $readini(ttt.ini,player,player2)) {
if ($readini(ttt.ini,ttt,$2) == -) {
writeini ttt.ini ttt $2 O
writeini ttt.ini turn turn $readini(ttt.ini,player,player1)
msg %chan $readini(ttt.ini,ttt,1) $readini(ttt.ini,ttt,2) $readini(ttt.ini,ttt,3)
msg %chan $readini(ttt.ini,ttt,4) $readini(ttt.ini,ttt,5) $readini(ttt.ini,ttt,6)
msg %chan $readini(ttt.ini,ttt,7) $readini(ttt.ini,ttt,8) $readini(ttt.ini,ttt,9)
inc %go 1
}
}
}
}
if ($1 == !stop) {
if (%getp) {
remini ttt.ini player player1
remini ttt.ini player player2
unset %game %getp
msg %chan Game stopped.
sreset
}
if (%game) {
unset %game %getp
remini ttt.ini player player1
remini ttt.ini player player2
msg %chan Game stopped.
sreset
}
}
if ($istok(!help !commands,$1,32)) {
notice $nick Help for Tic Tic Toe: !start (start a game) !join (to join a game looking for players) !play (play in a square) !stop (stop a game) !board (to look at a board)
notice $nick Square info!
notice $nick 1 2 3
notice $nick 4 5 6
notice $nick 7 8 9
}
if ($1 == !board) {
msg %chan $readini(ttt.ini,ttt,1) $readini(ttt.ini,ttt,2) $readini(ttt.ini,ttt,3)
msg %chan $readini(ttt.ini,ttt,4) $readini(ttt.ini,ttt,5) $readini(ttt.ini,ttt,6)
msg %chan $readini(ttt.ini,ttt,7) $readini(ttt.ini,ttt,8) $readini(ttt.ini,ttt,9)
}
if ($1 == !version) {
msg $chan PaPaYa's Tic Tac Toe Script version 2! With help by Goldy.
}
if ($1 == !stats) {
if ($2) {
if (!$readini(ttt.ini,$2,games)) {
msg %chan No stats for $2 found. | halt
}
else msg %chan Stats for [ $+ $2 $+ ] Games: $readini(ttt.ini,$2,games) Wins: $readini(ttt.ini,$2,wins) Loses: $readini(ttt.ini,$2,lose) Cats Game: $readini(ttt.ini,$2,Cats) Giveup: $readini(ttt.ini,$2,give)
}
elseif (!$readini(ttt.ini,$nick,games)) {
msg %chan No stats for you are found. | halt
}
else msg %chan Stats for [ $+ $nick $+ ] Games: $readini(ttt.ini,$nick,games) Wins: $readini(ttt.ini,$nick,wins) Loses: $readini(ttt.ini,$nick,lose) Cats Game: $readini(ttt.ini,$nick,Cats) Giveup: $readini(ttt.ini,$nick,give)
}
}
Alias SReset {
writeini ttt.ini ttt 1 -
writeini ttt.ini ttt 2 -
writeini ttt.ini ttt 3 -
writeini ttt.ini ttt 4 -
writeini ttt.ini ttt 5 -
writeini ttt.ini ttt 6 -
writeini ttt.ini ttt 7 -
writeini ttt.ini ttt 8 -
writeini ttt.ini ttt 9 -
}
Alias TTT {
if ($readini(ttt.ini,ttt,1) == X) && ($readini(ttt.ini,ttt,2) == X) && ($readini(ttt.ini,ttt,3) == X) {
set %winner $readini(ttt.ini,player,player1) | set %loser $readini(ttt.ini,player,player2)
writeini ttt.ini %winner wins $calc($readini(ttt.ini,%winner,wins) + 1) | writeini ttt.ini %loser lose $calc($readini(ttt.ini,%loser,lose) + 1)
msg %chan Gameover %winner Wins!
gameover
}
if ($readini(ttt.ini,ttt,4) == X) && ($readini(ttt.ini,ttt,5) == X) && ($readini(ttt.ini,ttt,6) == X) {
set %winner $readini(ttt.ini,player,player1) | set %loser $readini(ttt.ini,player,player2)
writeini ttt.ini %winner wins $calc($readini(ttt.ini,%winner,wins) + 1) | writeini ttt.ini %loser lose $calc($readini(ttt.ini,%loser,lose) + 1)
msg %chan Gameover %winner Wins!
gameover
}
if ($readini(ttt.ini,ttt,7) == X) && ($readini(ttt.ini,ttt,8) == X) && ($readini(ttt.ini,ttt,9) == X) {
set %winner $readini(ttt.ini,player,player1) | set %loser $readini(ttt.ini,player,player2)
writeini ttt.ini %winner wins $calc($readini(ttt.ini,%winner,wins) + 1) | writeini ttt.ini %loser lose $calc($readini(ttt.ini,%loser,lose) + 1)
msg %chan Gameover %winner Wins!
gameover
}
if ($readini(ttt.ini,ttt,7) == X) && ($readini(ttt.ini,ttt,4) == X) && ($readini(ttt.ini,ttt,1) == X) {
set %winner $readini(ttt.ini,player,player1) | set %loser $readini(ttt.ini,player,player2)
writeini ttt.ini %winner wins $calc($readini(ttt.ini,%winner,wins) + 1) | writeini ttt.ini %loser lose $calc($readini(ttt.ini,%loser,lose) + 1)
msg %chan Gameover %winner Wins!
gameover
}
if ($readini(ttt.ini,ttt,2) == X) && ($readini(ttt.ini,ttt,5) == X) && ($readini(ttt.ini,ttt,8) == X) {
set %winner $readini(ttt.ini,player,player1) | set %loser $readini(ttt.ini,player,player2)
writeini ttt.ini %winner wins $calc($readini(ttt.ini,%winner,wins) + 1) | writeini ttt.ini %loser lose $calc($readini(ttt.ini,%loser,lose) + 1)
msg %chan Gameover %winner Wins!
gameover
}
if ($readini(ttt.ini,ttt,3) == X) && ($readini(ttt.ini,ttt,6) == X) && ($readini(ttt.ini,ttt,9) == X) {
set %winner $readini(ttt.ini,player,player1) | set %loser $readini(ttt.ini,player,player2)
writeini ttt.ini %winner wins $calc($readini(ttt.ini,%winner,wins) + 1) | writeini ttt.ini %loser lose $calc($readini(ttt.ini,%loser,lose) + 1)
msg %chan Gameover %winner Wins!
gameover
}
if ($readini(ttt.ini,ttt,1) == X) && ($readini(ttt.ini,ttt,5) == X) && ($readini(ttt.ini,ttt,9) == X) {
set %winner $readini(ttt.ini,player,player1) | set %loser $readini(ttt.ini,player,player2)
writeini ttt.ini %winner wins $calc($readini(ttt.ini,%winner,wins) + 1) | writeini ttt.ini %loser lose $calc($readini(ttt.ini,%loser,lose) + 1)
msg %chan Gameover %winner Wins!
gameover
}
if ($readini(ttt.ini,ttt,7) == X) && ($readini(ttt.ini,ttt,5) == X) && ($readini(ttt.ini,ttt,3) == X) {
set %winner $readini(ttt.ini,player,player1) | set %loser $readini(ttt.ini,player,player2)
writeini ttt.ini %winner wins $calc($readini(ttt.ini,%winner,wins) + 1) | writeini ttt.ini %loser lose $calc($readini(ttt.ini,%loser,lose) + 1)
msg %chan Gameover %winner Wins!
gameover
}
if ($readini(ttt.ini,ttt,1) == O) && ($readini(ttt.ini,ttt,2) == O) && ($readini(ttt.ini,ttt,3) == O) {
set %winner $readini(ttt.ini,player,player2) | set %loser $readini(ttt.ini,player,player1)
writeini ttt.ini %winner wins $calc($readini(ttt.ini,%winner,wins) + 1) | writeini ttt.ini %loser lose $calc($readini(ttt.ini,%loser,lose) + 1)
msg %chan Gameover %winner Wins!
gameover
}
if ($readini(ttt.ini,ttt,4) == O) && ($readini(ttt.ini,ttt,5) == O) && ($readini(ttt.ini,ttt,6) == O) {
set %winner $readini(ttt.ini,player,player2) | set %loser $readini(ttt.ini,player,player1)
writeini ttt.ini %winner wins $calc($readini(ttt.ini,%winner,wins) + 1) | writeini ttt.ini %loser lose $calc($readini(ttt.ini,%loser,lose) + 1)
msg %chan Gameover %winner Wins!
gameover
}
if ($readini(ttt.ini,ttt,7) == O) && ($readini(ttt.ini,ttt,8) == O) && ($readini(ttt.ini,ttt,9) == O) {
set %winner $readini(ttt.ini,player,player2) | set %loser $readini(ttt.ini,player,player1)
writeini ttt.ini %winner wins $calc($readini(ttt.ini,%winner,wins) + 1) | writeini ttt.ini %loser lose $calc($readini(ttt.ini,%loser,lose) + 1)
msg %chan Gameover %winner Wins!
gameover
}
if ($readini(ttt.ini,ttt,7) == O) && ($readini(ttt.ini,ttt,4) == O) && ($readini(ttt.ini,ttt,1) == O) {
set %winner $readini(ttt.ini,player,player2) | set %loser $readini(ttt.ini,player,player1)
writeini ttt.ini %winner wins $calc($readini(ttt.ini,%winner,wins) + 1) | writeini ttt.ini %loser lose $calc($readini(ttt.ini,%loser,lose) + 1)
msg %chan Gameover %winner Wins!
gameover
}
if ($readini(ttt.ini,ttt,2) == O) && ($readini(ttt.ini,ttt,5) == O) && ($readini(ttt.ini,ttt,8) == O) {
set %winner $readini(ttt.ini,player,player2) | set %loser $readini(ttt.ini,player,player1)
writeini ttt.ini %winner wins $calc($readini(ttt.ini,%winner,wins) + 1) | writeini ttt.ini %loser lose $calc($readini(ttt.ini,%loser,lose) + 1)
msg %chan Gameover %winner Wins!
gameover
}
if ($readini(ttt.ini,ttt,3) == O) && ($readini(ttt.ini,ttt,6) == O) && ($readini(ttt.ini,ttt,9) == O) {
set %winner $readini(ttt.ini,player,player2) | set %loser $readini(ttt.ini,player,player1)
writeini ttt.ini %winner wins $calc($readini(ttt.ini,%winner,wins) + 1) | writeini ttt.ini %loser lose $calc($readini(ttt.ini,%loser,lose) + 1)
msg %chan Gameover %winner Wins!
gameover
}
if ($readini(ttt.ini,ttt,1) == O) && ($readini(ttt.ini,ttt,5) == O) && ($readini(ttt.ini,ttt,9) == O) {
set %winner $readini(ttt.ini,player,player2) | set %loser $readini(ttt.ini,player,player1)
writeini ttt.ini %winner wins $calc($readini(ttt.ini,%winner,wins) + 1) | writeini ttt.ini %loser lose $calc($readini(ttt.ini,%loser,lose) + 1)
msg %chan Gameover %winner Wins!
gameover
}
if ($readini(ttt.ini,ttt,7) == O) && ($readini(ttt.ini,ttt,5) == O) && ($readini(ttt.ini,ttt,3) == O) {
set %winner $readini(ttt.ini,player,player2) | set %loser $readini(ttt.ini,player,player1)
writeini ttt.ini %winner wins $calc($readini(ttt.ini,%winner,wins) + 1) | writeini ttt.ini %loser lose $calc($readini(ttt.ini,%loser,lose) + 1)
msg %chan Gameover %winner Wins!
gameover
}
elseif (%go == 9) {
set %p1 $readini(ttt.ini,player,player1) | set %p2 $readini(ttt.ini,player,player2)
writeini ttt.ini %p1 cats $calc($readini(ttt.ini,%p1,cats) + 1) | writeini ttt.ini %p2 cats $calc($readini(ttt.ini,%p2,cats) + 1)
unset %p1 %p2
msg %chan Cats game! Nobody wins! | gameover
}
}
Alias Gameover {
unset %game %getp %winner %go
remini ttt.ini player player1
remini ttt.ini player player2
remini ttt.ini turn turn
sreset
}
Ok this is cool.First issue tho i saw skimming is your set %chan: set %chan = $input(Enter a channel for tic tac toe,eod, PaPaYa\'s Tic Tac Toe Script) .You have a \'=\' there.Also this msg $chan Cats Game! Gameover! | gameover: returns Cats Game! Gameover!
Cats No such nick/channel.Change the $chan to %chan.Also maybe $strip so people can play with colors on.Speakin of colors i was asked to ask to add colors like green for O and red for X.I can add it my self but they thought it was a good idea to ask.Other then that is ace.`-.-