Coder Social home page Coder Social logo

tic-tac-toe-21's Introduction

Github-Profile-Banner

Front-End Development

Back-End Development

Mobile Development


Data Science

Other Technologies


About Me:

Gradutae Software Engineering Student @ California State University, Fullerton

  • Currently engaging in personal projects and free-lance work
  • Activetly seeking full-time roles in Software Engineering, Dev Ops, Data Science / ML Engineering, and Application Security roles

My Statistics:

Kyle's Developer Statistics
Kyle's Streak Statistics
Kyle's Primary Programming Languages

tic-tac-toe-21's People

Contributors

ethanl21 avatar kynot54 avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Forkers

ethanl21

tic-tac-toe-21's Issues

Research and Implement a Finite State Machine

We're required to deliver UML use case, class, and state diagrams for our project. We should implement the State pattern using a Finite State Machine for our game to meet the state requirement and keep our program's execution organized.

There's multiple plugins available to implement a FSM, so we should decide on which one to use. I'm looking at this one.

At minimum we should define whether the program is in the title screen, 21 scene, or tictactoe scene and assign state accordingly since the game can only be in one of those states at any moment.

Convert card sprites to spritesheet

Currently all of our card sprites are stored as separate files. Seems like best practices include storing all sprite textures in a spritesheet instead of separate textures, so we should do that.

Tasks include:

  • Combine all card images into a single file
  • Use that file to create a Spritesheet node
  • Create a Card node that can hold a specified card with the correct texture

In order for this to be done, the individual images in the Cards directory should be replaced by one sprite sheet and a Card node should be created to make instancing cards easy.

Generate artifacts from CI

It would benefit us to use a CI platform (probably GitHub Actions) to build and unit test our Godot project so that we always have an up to date prototype available and we have some quantitative metrics from unit tests.

Tasks include:

  • Making our Godot project exportable to our target platforms
  • Configuring GitHub Actions to build our project and store artifacts
  • #24

Blockers include:

  • Codesigning for iOS, I don't know if GitHub Actions can build ipa files from Xcode projects and they need to be signed using a developer key anyways
  • #23

We can have our project exported for web and uploaded to GitHub Pages for a web based preview, which may be necessary in case CI-based building for mobile platforms is impractical for this project.

Add SFX to Control nodes

Control nodes should trigger a sound effect when they are interacted with. Mainly I'm thinking of adding click sounds to the buttons.

Tasks include:

  • Add click sounds to the "Start" and "Options" buttons in the Title scene
  • Add (different) click sounds to the buttons in the 21 scene
  • Add click sounds to the tic-tac-toe board

I don't anticipate anything blocking this issue and it should be relatively simple to implement. I'll use the Kenney UI Audio Pack which we can freely use under the CC0 License.

Global Tic-Tac-Toe state

The state of the TicTacToe game should be global so it is not lost when transitioning to and from the its scene.

Tasks include:

  • Track the TicTacToe game's state in a singleton

Definition of done includes:

  • Both players (user and AI) can claim squares on the TicTacToe board, depending on the RoundState
  • When transitioning to an in-progress tic-tac-toe game, the previous marked squares are indicated

I don't anticipate that this task will be blocked by anything in particular.

Create Logic to Check to See who Won Hand of 21 and then transition to Tic-Tac-Toe Board where either the User or AI has control.

Task Include:

  • - Debugging 21 game between dealer and player scenes and checking why the logic isn't working as it should.
  • - Delegate Control over to User or Computer Only in Tic-Tac-Toe Scene
  • - Once a choice has been made on the tic-tac-toe board; start the next round of twenty-one.

Blockers:

  • - Current Algorithm does not appear to work properly for the computer to make a move on it's own; currently in progress. Issue #33

Ending Scene

Currently when the game is complete (tic tac toe ends in a win or tie) the game transitions back to the title screen without any sort of screen indicating who won. We should add a screen that indicates who won and to indicate that the game has completed.

Tasks include:

  • When the game ends, indicate who won/the game has tied with text on the screen
  • Transition back to the main screen after a delay

I don't anticipate anything blocking the completion of this issue.

Add volume sliders for SE and BGM

Players should be able to set the volumes of background music and sound effects separately. We should add sliders to the currently-empty options screen scene to implement this functionality.

  • Add BGM slider
  • Add SE slider

Since we already have a singleton used for playing audio, this should be simple to implement. I don't anticipate any major or minor blockers that would prevent this issue from being resolved.

Transition from an in-progress Tic-Tac-Toe scene to an in-progress 21 scene

When a square has been selected in the tic-tac-toe phase of the game, it should transition back to the 21 scene after a short delay.

Tasks include:

  • Wait for the player or the AI to make a move on the board, then transition back to the 21 scene
  • Add a short delay before the transition

Definition of done includes:

  • When a square is selected by the player or AI, the game transitions back to the 21 scene after a short delay

Blockers include:

  • #35 , which needs to be done first and is not blocked by any other issue

Diagrams

We need to deliver diagrams/documentation items, including:

  • Activity Diagram
  • Use Case Diagram
  • CRC Diagram
  • Readme
  • Test Cases
  • Presentation Slideshow
  • Executable (Video Presentation)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.