/tic-tac-toe

GA Project 1: Tic-Tac-Toe Game

Primary LanguageJavaScriptOtherNOASSERTION

General Assembly WDI Project 1: Tic-Tac-Toe

For this project my goal was to code a tic-tac-toe game which worked in the browser according to the game rules, which interacted with a backend in order to give and receive information, and which updates information server-side. I coded with HTML, CSS, Javascript, and the jQuery library in order to make a presentable board; I created game logic which worked correctly and consistently while updating the visual game board; and I created an interactive user experience allowing the user to access past games played.

User Stories, Wireframe, and Basic Problems

Admittedly, I was eager to get to work in the actual code, and so I kept my sketching of user stories and wireframes minimallistic. My goal was to have a clear idea of what the user would want and expect out of a tic-tac-toe game, and then consider the basic problems necessary in order to bring that experience to the user.

Wireframe of Layout

Wireframe

User Stories and Basic Problems

User Story and Basic

The Thrill of Victory, the Agony of Defeat

The basic pattern of my work on this project would be a series of problems that seemed relatively easy to solve and could be taken care of in short order, followed by a problem which I had assumed would be easy, but which ends up taking forever to fix. Moments of triumph included updating the game box depending on user clicks, connecting the display on the screen with the javascript game logic, and succesfully interacting with the back end.

Frustrating problems included not realizing that I could not edit a variable inside of a function, unless it was declared as an element of a reference object; not having an answer for how to connect the user clicks to a jquery event which changed the value of the apropriate data points (classmates were very helpful in helping me to a solution here); and not having all of my CSS code work the same way on the hosted page as it does on my local host.

What I Learned, What I Would Do Differently

I definitely learned the danger of going too far into your program logic before considering the form of the data which will be coming from the back end. There were times when I felt I had to completely retool aspects of my program, because I did not set up my inital game logic with a clear plan of how it would interact with the API. For future projects I will make a very clear plan of what kind of data the server expects, and how that data will be formed, manipulated, and returned to the back end.

Why You Should Hire Me

I think this program demonstrates my ability to solve problems both on my own and collaboratively in order to deliver a product which satisfies a given set of conditions and expectations. Building a working single-page application which interacts with an API, only days after learning how to use ajax, demonstrates my ability to learn and adapt quickly. Though it is not perfect, it is presented as an important step in my process of learning to be a web developer.