Tic Tac Toe! v2!

By HoNdAx707 on Jan 27, 2008

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  
}

Comments

Sign in to comment.
Stewie1k94   -  Aug 31, 2012

Good script, easy to use. But I was thinking instead of !play , just . And for the !stats use

$iif

so for 'wins' it would be

$iif($readini(ttt.ini,$nick,wins),$readini(ttt.ini,$nick,wins),N/A)

So it shows something if they haven't gotten anything for the specific stat. Any way, just my thoughts. :)

 Respond  
evvabuo   -  Nov 17, 2010

sorry, how can change the channel? also tried to unload and reload addon, but don't work.

 Respond  
HoNdAx707   -  Apr 14, 2010

wow sorry guys i havent been on this site in a long time.. it needs work but havent used irc in months D;

 Respond  
sunslayer   -  Jan 27, 2010

you will need to /set %chan then, because

on *:text:*:%chan: { 

will not trigger if you dont
its easier to just have a load event

 Respond  
jackster35-1   -  Jan 27, 2010

@sunslayer
it works without it :P

 Respond  
sunslayer   -  Jan 26, 2010

@jackster35-1
you need that because it declares %chan

 Respond  
jackster35-1   -  Jan 26, 2010

Thanks mate but could do without

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 
  }
}

but never mind :P

 Respond  
AlexRapso   -  Dec 22, 2009

It isn't even working for me tbh lol

 Respond  
HoNdAx707   -  Jun 08, 2008

well i just redid the whole script.. no ini\'s its hash now.. colors etc
fixing bugs atm

 Respond  
napa182   -  Jun 05, 2008

silence the timers with a .
to stop it type /timer* off

 Respond  
BlueThen   -  Jun 05, 2008

Ctrl + Pause/Break?

 Respond  
Joel-Kun   -  Jun 05, 2008

Once I used this it started flooding my status window with \"TTT unknown command\" I tried deleting the script, unloading where the script was, and formatting ttt.ini, yet it still won\'t stop, and it even keeps going wether I\'m on a server or not, any suggestions? ⌐_⌐

 Respond  
HoNdAx707   -  Jan 30, 2008

update is i added stats except the giveup stat ill soon have it done

 Respond  
HoNdAx707   -  Jan 30, 2008

haha thanks goldy :)
post some of your stuff here

 Respond  
Goldy58   -  Jan 30, 2008

Awesome scripting, my scripting buddy :D

 Respond  
water_dragon   -  Jan 27, 2008

kool

 Respond  
HoNdAx707   -  Jan 27, 2008

check back tomorrow and ill prolly have updated it :)

 Respond  
water_dragon   -  Jan 27, 2008

Not To Bad Iv Seen worse to be honest mite use it :)

 Respond  
HoNdAx707   -  Jan 27, 2008

anyone else? =)

 Respond  
HoNdAx707   -  Jan 27, 2008

=)
thanks i did this at like midnight so i was tired ill fix it

 Respond  
EL   -  Jan 27, 2008

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.`-.-

 Respond  
Are you sure you want to unfollow this person?
Are you sure you want to delete this?
Click "Unsubscribe" to stop receiving notices pertaining to this post.
Click "Subscribe" to resume notices pertaining to this post.