npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

tictactoe_core

v0.1.3

Published

Javascript Implementation of Tic Tac Toe Game

Downloads

7

Readme

Tic tac toe

Objective

In order to practice what we have learned regarding OOP and best practices, let's implement a Tic-Tac-Toe (Gato in Spanish) game!

Rules

  • Two players represented with X and O
  • First time the game is played, X starts
  • Each player alternate turns to put a mark in the board on any available slot
  • The game ends when either one of the players matches three marks in a horizontal, vertical or diagonal row or there are no more moves available

Considerations

  • Game logic MUST be implemented using OO Javascript and MUST NOT depend on any kind of user interface: you, as the creator of the code, MUST implement objects that contain everything needed to play the game and to allow any other developer to reuse your code.
  • Will the logic have to change if I want to play on a N x N board instead of the original 3 x 3?
  • What if we want to make it configurable for N players instead of 2?
  • And, will the logic need to change if we want to create a N x M board instead of N x N?
  • Remember this code is supposed to be used by other programmers so they need to be well documented and tested
  • Once the game finishes, players are asked if they want to play again. If they do, the player who lost the previous match starts. In case of a draw, the player who did the second-to-last movement starts

Deliverables

  • Class diagram or similar to illustrate how the object are going to communicate among them.
  • Code implementation of the game logic.
  • Documentation.
  • Unit testing.

Once we have all the logic documented and tested, we will create some clients that will use the logic

  • A command-line client
  • A RESTful API
  • A web application
  • An electron app

Milestones

  • [x] Make sure the objective, requirements and restrictions are understood
  • [x] Create the diagram
  • [x] Create the library with all the logic. For this point, investigate NPM and bower and choose one and explain your choice
  • [x] Create terminal interface
  • [ ] Create web app (Using HTML and CSS)
  • [ ] Create RESTful API
  • [ ] Create Electron app

Feel free to ask any question at any time