Sure thing! I'm adding a link to the .story file in the original post now. I forgot to do so last night...I think the JavaScript ran down my brain power :p
Spoiler alert, but this is how the AI opponent works:
1. It checks to see if it has a win condition - if it does, it goes in the winning spot.
2. It checks to see if the player has a win condition - if they do, the computer blocks them from winning.
3. If nobody is about to win, it drops in a random column that isn't already filled up.
It was a little tricky because I had to make sure that the computer was only going in a "win condition" spot when there was an open spot beneath it. For example, if it finds that it has 2 in a row diagonally and the 3rd spot is open for the win, it needs to make sure that it has a piece beneath that spot so that it's supported. Not sure if I'm making that clear...
You can dig around in the .story file and look at the JavaScript, but it may be quite confusing. Let me know if anyone has any questions, or I'd be happy to add a longer, more detailed technical write-up to the original post.