Category Archives: Tic-Tac-Toe

Coding session tomorrow

I plan on having a fairly long coding session tomorrow, and I’ve got some goals that I would like to accomplish during this session:
  • Google has added an item to the support library to allow the “action bar” in apps running on Android 2.2+. So I plan on adding that to Auto Respond for Android 2.2 and 2.3.x.
  • I want to get a solid foundation set for Google Games in Tic Tac Toe. I don’t know if I can get it working completely in one day, but I want to at least get a good start.
  • I want to get some actual working features built into my top secret app project
    • Right now there’s only a design and some basic navigation, I want to create some REAL functionality this weekend. 
    • I spent some time yesterday making some changes so that it’s more flexible, and can hopefully have changes made to content in the app without releasing a new version of the app. Instead, it will download the new content from an outside source, and I think I can do this directly through the Play Store.

That may seem like a relatively short list, but I think it will be a lot of work. Not so much Auto Respond, but the other two could be some serious time.
Neither of these updates (Auto Respond or Tic Tac Toe) will be released before August 18th. I will be out of town from the 10th to the 17th of August and I don’t want to release new features before then, because new features mean potential for new bugs. I don’t want to potentially introduce new bugs while I’m unavailable to fix them.

Background

I was just thinking about things… and I came to realize a few things.

To start, I want to give you a background on me.

In the Beginning

I first used a computer when I was about 8 years old. My mom brought home a computer from work, which was DOS based. She taught me some basic commands, and suddenly I was able to navigate my way around DOS… sort of.

Then she brought home a pile of floppy disks and said something like “someone at work gave me these disks and said they have games on them. Plug them in and see what’s on there.” So I did… and to my disappointment, most of the disks were password protected. But that didn’t stop me. I spent some time guessing passwords. They were educated guesses, but guesses. Don’t ask me what my exact process was… I was 8, and I don’t remember those details. Eventually I figured out one of the passwords, and was able to play the games on that disk. So I tried the password on all the other protected disks, and it worked on roughly half of them.

That day I fell in love with computers. I knew that I wanted to do something with computers “when I grew up”. As time progressed I got more and more into video games, both console and PC, and wanted to be a programmer. Specifically, a game programmer (like so many other kids in my generation.)

High School

There wasn’t much in the way of Computer Science classes in my high school… we had a Visual Basic class and a C++ class, but most of the time they never happened because not enough people signed up for them. One of those years though, I took the C++ class. Unfortunately, it did nothing for me because my teacher was “learning as we were” and I spent most of my time copying code from “the smart kid”.

Community College

So I went to community college and started as a CS major. I took “Introduction to Object Oriented Programming using Java” – the first programming class in the major – and I hated it. Again, a big part was my teacher. She could barely speak English, she actually spent 1 entire class writing Visual Basic code on the board, just to erase it and tell us “Oh, forget all of that, that was the wrong programming language.” I failed that class and retook the class the next semester with a different teacher. That second semester, I also took Calculus 2. I still hated Java, and I got a 22 on my first calc 2 test… so I switched majors to Computer Technology – a hardware major. (The highest level math required for CT was calc 1, so I didn’t have to pass that calc 2 class for the new major.)

College

I stuck with that major until the end of MCC, and transferred to RIT. The major there was Computer Engineering Technology – still a hardware major, but we did out fair share of software too. At RIT I finally started to grasp the concept of Object Oriented Programming, because I finally had a good teacher. It was C++ that finally got me to understand, but I was only doing command line (DOS) programs. I took some of those programs above and beyond, as I finally understood what I was doing (one project eventually turned into my tic-tac-toe game for android.)

After doing tic-tac-toe, I decided to really challenge myself and make a Euchre game. For those who don’t know the game of Euchre, it’s a card game with a TON of logic involved. The game was 1 human player and 3 computer players (Euchre is most often played as a 4-player game, although variations exist for anywhere from 3 to 7 players.) I got Euchre working as a playable game, and started adding more options to it – like some of the regional rules or “house rules” that exist in variations of the game.

Beyond College

After college, I decided to make Euchre into a Windows program instead of a DOS program. Doing my first GUI was interesting. There was definitely a learning curve, especially considering I was learning from the internet and sample code. I decided to use C# instead of C++ because it seemed to have a lot more options for GUI programming. This meant that some of my code needed to be changed slightly for the new language. Since C# is based on C++, most of the changes were minor. The hard part was converting the command line output to a GUI. I played with a few other programs for a while, nothing else really got too far.

Android

Then I got into Android. I got my first Android phone in 2010, and got REALLY into the modding community – rooting, ROMs – and basically everything Android. I paid for Tasker, and eventually made some profiles in there for responding to text messages while my phone was in a car dock. (I was taking an hour and a half drive to Buffalo once a week for work, so it helped for that trip.) Then Tasker released App Factory, which allowed you to use “scenes”, which were basically GUI elements, together with profiles to create an actual app and an apk file which other people could install on their phones. This is where the first ever version of Auto Respond came from.

After realizing the visual limitations of the “scenes” created in Tasker, I decided to learn to write actual code and recreate this “app” that I created in Tasker with my own code. About a year later, Auto Respond is what it is now. Plus I’ve created tic-tac-toe, started to convert Euchre to Android, started on a countdown widget app, and have begun work on a super-secret project – which is going to be HUGE when it’s finally released. (I’ve told a few of my close friends and family about this project, and they all LOVE the idea.)

Conclusion

So today I was thinking about this journey… from computer enthusiast, to wanna-be game designer, to failure of a programmer, to writing basic command line programs, to learning on my own, to semi-successful Android developer, and hopefully in the future to successful entrepreneur and app developer.

And through all of this, I’ve been working as an IT professional for 10 years… and I’m glad. I wouldn’t want to code all day every day. I enjoy it too much. A lot of people out there say that you should never turn a hobby into a job, because you’ll end up not enjoying it as much – I agree with them.

I LOVE programming, but I would hate it if I did it 40 hours a week. Plus, if I did programming as a job, I wouldn’t want to come home and program my own stuff later. I want to program what I decide to program, not what someone tells me to program. And that’s exactly what I do right now.

Now, I know what some of you might be thinking… “Well if this idea of yours does become big, then won’t you be programming for a living?” …Yes and no. Yes, I will most likely be doing a lot of programming to keep this whole thing going. But I will still be doing what I want to do, not what someone else wants me to do. I’ve always dreamed of being my own boss, and I hope that one day that dream will come true.

News

A bunch of random stuff in this one…

Auto Respond

First, I’ve released a few new versions of Auto Respond since my last post. All just bug fixes. I released another one this morning for Pro users, which fixes a FC when deleting a schedule. If you have received this FC, the schedule was still deleted properly but it closed while trying to update the view.

A few weeks ago I added another stat to keep track of in Auto Respond. Each time it sends a message, Analytics tallies it. In the first 7 days of June, Auto Respond has sent 53 messages! That’s an average of almost 8 messages per day! I found that to be a pretty cool statistic. (especially since some people still have older versions installed that don’t send that information, so the number could potentially be higher.)

Countdown Widget

If you follow me on Google+, or other social media, you may have noticed that I posted last night about a Beta version of my Countdown Widget app. A few updates about that:

  1. The app STILL has not been actually published to the Play Store. I’m not sure why this one is taking so long, but after reading through some stuff in the developer’s console, it says it could take up to 24-hours to become live. Which means that it could be as late as 11pm Eastern Time tonight. (8pm for you West coasters.)
    1. EDIT: It’s live now! But it only shows up in the Play Store AFTER becoming a tester! (As there is no publicly available version right now)
  2. While reading through that documentation, I also noticed that all of my testers have to be in either a Google Group, or a Google+ Community to use the link and get the Beta. I created a community a while back, and right now it only has 4 users (including me.) If you would like to use the Countdown Widget Beta (and future app betas) join my community! (Again, this is a restriction put forth by Google, not me.) https://plus.google.com/u/0/communities/103951105335573781027
Right now the app is fairly basic… put in a title and a date, and you get a widget which shows how many days until your event. There are also options to put a specific time with that date, and options to display hours left instead of days left, or display hours left when less than a certain amount of hours are left.
In the future I’m going to add a lot more options, like changing background color and transparency (right now it’s black with 50% transparency,) possibly changing text size and color, rearranging the data that is displayed, and more designs and sizes of widgets.
The widget is resizable now if you have an Android version or a home screen launcher that supports it (I think resizing widgets was added in 3.0, but certain 2.x launchers may support it) but there is only 1 design. I have plans for more designs that will default to larger sizes.
Tic Tac Toe
I said before that I am going to build Google Games features into Tic Tac Toe… and I still plan on doing that. However, I still have not had the time to do that. I am working on a lot of stuff right now, and even the things mentioned above have had minimal work done. I’ve had Countdown Widget almost working for a while, and just finished up some last minute things over the past couple days.

Google Games!!!

It’s there! In my Developer Console… “Google Play Games Services”!

I can’t wait to play around with it, and network up my Tic Tac Toe game, and hopefully finish up Euchre soon, and get that networked.

I have some achievement ideas for Tic Tac Toe as well. I know, there’s not a whole lot you can do with achievements in Tic Tac Toe, but I found some things. I’ve also got achievements already built into the existing Windows version of my Euchre game, so those will be coming over to Android, and I may add a few more. I may also categorize them a little differently than they are right now… we’ll have to see.

In any case, I’m REALLY excited to get coding, there’s just one problem… I don’t have much time this week because I’m moving this week/weekend 🙁

So most of the work won’t even get started until next week. I’ve first got to read through the documentation and see how to use the API and all of that stuff, so it might be a couple weeks before any actual progress gets made. We’ll see how difficult it is, hopefully I can get some good work knocked out in a little time.

Google Games is coming!

For those of you who don’t know, Google I/O starts on Wednesday!

There has been a LOT of speculation as to what will be announced at I/O, but there have been some things that have been pretty much confirmed, and right now, Google Games is one of them.

Android Police (AP) did one of their famous teardowns of some new a new Google Play Services app, and found a TON of references to Google Games, and even some working pieces!
http://www.androidpolice.com/2013/05/11/google-play-games-leaks-out-in-all-its-glory-ahead-of-google-io-hello-cloud-game-saves-apk-teardown/

Reading this got my mind rolling with ideas for Tic Tac Toe and Euchre. New achievements all over the place, new ways to get people connected, new ways to get more people playing, and new ways to have more fun with the games that I’ve already created! (Or in Euchre’s case, mostly created)

Since none of this has been officially released (or even officially announced) I can’t really start working on these things yet. But you can be assured that I will be working on it soon! (Well, once things get settled down in my personal life. Check out my personal blog for details on that.)

Redesigned Menus

After seeing how some other apps did menus, I realized that my menus were kind of out of date.

Mainly, a lot of apps use the “action bar” in Android 4.0 for their menu, then put the rest of the menu in the overflow menu. So I did this with all of my apps.

The settings button and the share button are now in the action bar, and the rest of the items are in the overflow menu. For users on Android 2.x, it’s all still in the menu, but many menu items now have icons associated with them.

Also, in Tic Tac Toe the settings menu item is no longer present while in an active game. Previously, this item was present but would display an error dialog if clicked. Now it’s gone.

Here are some screen shots:

Look at the top right of the screen shot, just below the time. That’s where the menu is. Notice how the wrench icon is present in the first shot, but not in the second.

Auto Respond’s menu setup is identical to the setup in the first screen shot.

As usual, these updates have been pushed, but may take a while to be live on the Play Store.

Auto Respond 1.2.9.6, Tic Tac Toe 1.2.2

I did some more digging into Google Analytics, and found that the crash in Auto Respond was occurring on tablets. All 3 crashes were on a tablet device.

With that said, I’m not sure why anyone would even be using Auto Respond on a tablet so I was a bit confused. Plus, just for kicks, I ran it on my Nexus 10 with no issues, which confused me further.

I was, however, able to recreate the issue on a 7-inch tablet in an emulator. The issue is that a 7-inch tablet failed my check to see if the device is a tablet, and it loads a layout over top of the existing layout – which causes a crash on a tablet settings screen layout, which is why I have that check in the first place.

The good news is, since I used the same code in my Tic Tac Toe game, this avoids an issue if THAT is used on a 7-inch tablet (which is something that is very plausible)

So all 3 apps have been updated (Auto Respond – free and pro, and Tic Tac Toe) to a version free of crashes, and a few minor other updates in each.

These changes have just been pushed to the Play Store, and should be live in a couple hours.

Tic Tac Toe 1.2

I just published a new version of Tic Tac Toe:

  • Added ability to change the color of the X and O
  • Added ability to select which player plays first
These options are in a new settings screen, which can be found by pressing the menu button.
As usual, this update was just published and may not be available until Google’s servers refresh.
Here are some screenshots of the additions:

Tic Tac Toe – psychedelic!

As I mentioned the other day, I’m going to work on making some options for Tic Tac Toe. The past couple days I’ve been working on changing the color of the X and O.

Changing the color to predetermined values was easy. I had that done within a couple hours. Allowing the user to pick their own color… that was a little more difficult. I had to do some searching for a color selector, because for some reason there isn’t on available in the Android SDK.

The first one I found was WAY too small, hard to manipulate, and just not working well. If you touched and dragged, it wouldn’t actually drag. It was small even on a phone… when seeing it on a tablet, it was even more ridiculous how small it looked.

So I did some more searching and found an open sourced project with a much better implementation. It’s much larger, making it easier to see and manipulate, it scales well on a tablet, and dragging your finger after touching actually drags the marker. The only thing I could ask for that isn’t included is an RGB value of the color.

Here’s the code, in case you’re interested: http://color-picker-view.googlecode.com/svn/trunk/

Right now your options are: ROYGBIV (Red, Orange, Yellow, Green, Blue, Indigo, Violet) and using the color selector to create your own. I am thinking about adding an RGB value editor of my own… allowing the user to input a value for Red, Green and Blue, displaying the resulting color, and allowing them to accept or deny the color they have created. This should not be too terribly hard, I just haven’t done it yet.

Here’s how it looks now: (screen shots from my Nexus 10)

The top screen is the selection screen, which includes my preset options and a button for creating your own, and the second screen is the color selector. (I’m just noticing now that one window says “Choose a Color” and the other says “Pick a Color”… I’ll change that.)

As you can see, the color selector is a nice size that is easy to manipulate. The scale on the right side is to choose a color range, and the big box that comprises the majority of the dialog is where you select the specific color. Just above “Cancel” and “OK” are the old color, and the new color.

As usual the final design may change slightly, but it’s far enough along that I figured I’d share.

Here’s a game in progress with some different colors selected:

Tic Tac Toe Ideas – user input wanted! Please leave some comments!

Sounds

I want to add some sounds to the end of the game in Tac Tac Toe. Like applause, or a fanfare, or something like that if you win, and maybe an “awww” type of sound if you lose, and I have no idea what to put if you tie.

I looked briefly for some free sound bytes, but I didn’t find much yet. Do you have a suggestion of sites where I can get some good sounds for free? (and by free, I mean legally free… not stealing sounds that are licensed by someone else.) Anyone willing to create some good sounds for me?

If I get enough good ones I can put a few different sounds for each scenario, so that it isn’t the same sound every time you win or lose. I can have it randomly choose a sound when it’s time to play the sound.

Images

Also, I’m thinking about giving the user the option to change colors of the X and O, and maybe creating some other themed items for players to use other than the traditional X and O. Any ideas for themes? I know there are existing games on the Play Store with puppies, and a couple other things, so I wouldn’t really want to copy any of those ideas. Again, I would need images that are free to use, or images created by myself or that you (my users) have created and would be willing to allow me to use for free.

I could also do themes based on holidays… those would mostly be easy to do. Hearts and such for v-day, pumpkins and creepy things for Halloween, Santa and trees for Christmas, Turkeys and pies for Thanksgiving, flags and fireworks for Independence Day… the list goes on.

Game Play

I know there’s not a lot to change about game play in Tic Tac Toe, but I could make an option for what player plays first – player 1, player 2, or random like it is now. Making it so that player 2 is always first would increase the difficulty a bit, and vice versa.

I’ve also seen games with larger game boards – is that something that would interest people? I’m not sure about the strategy for the larger boards, so it may be a while before I have a competent computer player, but I am always up for a programming challenge. Until then, I could make it just 2-player for the larger boards.

Other?

Any other ideas? I’m always open to suggestions. If you have anything, leave it in the comments or drop a line to my inbox.