Giter Club home page Giter Club logo

code-word's Introduction

Code-Word

A code-breaking game for Android
by Jake Rosin
(c) 2023 Peace Ray LLC

https://www.peaceray.com/codeword

License

This project is licensed under GNU Public License 3.0. All original media assets (art, music, sound, documentation, etc.) are licensed under a Creative Commons Attribution ShareAlike 4.0 International License. Various derivative works are included under their respective licenses. See NOTICE.txt for details.

Code Word, Peace Ray, and the tile logo are trademarks of Peace Ray LLC.

Installation

Code Word may be built from source (this project uses Android Studio) or installed directly as an APK (see Code Word Releases).

Code Word is also available in the Google Play Store.

Description

Code Word is a code-breaking game for Android, implemented in Kotlin. Given a code length and a vocabulary, the player refines a series of guesses based on feedback to arrive at the correct code or exhaust their chances. "Codes" may be words of a particular length with feedback marking each correct letter, arbitrary letter sequences with feedback showing only the number of correct and included characters, etc. Code Word is implemented to support variable game rules and future extensions in code types and feedback details. At launch, the two main code types are English Words with per-letter feedback (exact, included-somewhere-else, not-present) and Code Sequences with aggregated feedback (number of exact and included characters).

Code Word is free and open-source.

Permissions

  • Internet: to ensure the Daily puzzle remains consistent for all users across app updates.

Credits

Game design, art, and code by Jake Rosin.

Code Word draws from a long history of code-breaking games and related work.

  • Wordle™: the viral hit by Josh Wardle. Wordle's daily puzzle is a 5-letter English word allowing six guesses. Trademark of The New York Times Corporation.
  • Jotto™: five-letter English words like Wordle, but with only the number of included letters (not their positions) provided as feedback. Trademark of Michael Rosenfeld.
  • Mastermind®: a two-player board game using colored pegs. Trademark of the Pressman Toy Corporation.
  • Bulls and Cows: a guess-the-number game with multiple software implementations.
  • Absurdle: this adversarial version of Wordle by qntm features a cheating opponent who changes the secret in response to your guesses.

Author Note

Code Word began as a hobby project to overengineer a Wordle solver. That project still exists as the core of the game's logic, available in a CLI by running ConsoleGame.kt.

Code Word is implemented in Kotlin, using layered Model-View-Presenter application architecture. Hilt is used for dependency injection, and Kotlin coroutines for asynchronous computation and IO operations. Originally RxJava was used for the latter purpose, but the use case did not justify the complexity of the tool.

Thank you to Josh Wardle for creating Wordle and inspiring this project (and many others)!

Donations

Updates to Code Word may be infrequent or sporadic, and I don't expect to make money from the project. If you want to send a donation anyway, I'm on PayPal at paypal.me/jakemrosin.

code-word's People

Contributors

jakerosin avatar

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.