Code Monkey home page Code Monkey logo

spellcast-word-finder's Introduction

Spellcast Word Finder

Attempts to find the best word in the discord activity (game) Spellcast gui image

Spellcast in-game board

spellcast_board

Features

  • Can utilize one and two letter swaps
  • Will account for long word bonus
  • Hover over words to highlight them on the board

Requirements

Get started

    1. Clone the repo
     git clone <repo_url>
    1. Run as GUI
     python gui.py
    1. Run as CLI
     python spellcast.py
     <insert 5:5 letters of board>
     ex: abcde
         asdaa
         dasda
         asdas
         kolak

TODO

  • Add word/letter multipliers
  • Image Recognition

Credits

spellcast-word-finder's People

Contributors

fabaindaiz avatar mrdhanz avatar unseeyou avatar vscala avatar yilmazcabuk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

spellcast-word-finder's Issues

how

i dont understand how to make it work

Refactor Spellcast Word Finder to Follow Clean Architecture Principles

The current implementation of the Spellcast Word Finder application lacks a clear separation of concerns and architecture. To improve the maintainability, testability, and scalability of the codebase, we should refactor it to follow Clean Architecture principles.

Objectives:

  1. Implement Clean Architecture to separate concerns and improve modularity.
  2. Improve code readability and maintainability through proper structuring.
  3. Enhance testability by isolating business logic from external dependencies.
  4. Improve error handling and input validation.

Proposed Changes:

  1. Create Layers:

    • Domain Layer: Represents the core business logic of the application, containing entities, use cases, and interfaces.
    • Use Cases: Implement the application's main functionalities, such as finding the best words on the board.
    • Entities: Define the core data structures and business rules, e.g., WordBoard, Word, etc.
    • Interfaces: Define abstractions for interacting with external systems, such as data repositories or user interfaces.
  2. Move Business Logic:

    • Move the current business logic from the UI code (App class) to the Use Cases layer.
    • Use dependency injection to provide necessary dependencies to the Use Cases.
  3. Data Storage:

    • Abstract the word list data source using an interface in the Domain Layer.
    • Create an implementation of the data source using the current "words.txt" file.
  4. User Interface:

    • The current tkinter UI code should be separated from the business logic.
    • Create a new UI layer that interacts with the Use Cases through the interfaces.
  5. Error Handling:

    • Implement proper error handling mechanisms and separate error codes for different types of failures.
    • Ensure appropriate exception handling and reporting to the user.
  6. Unit Tests:

    • Write unit tests for the Use Cases layer to test the core business logic in isolation.
    • Mock the data source for testing to avoid external dependencies.
  7. Documentation:

    • Provide clear and concise comments and docstrings to explain the purpose and functionality of classes and functions.
  8. Additional Improvements:

    • Improve variable and function naming to make the code more readable.
    • Follow PEP 8 guidelines for code formatting and style.

Benefits:

  • The Clean Architecture will make the code more maintainable, scalable, and easier to test.
  • The separation of concerns will improve code readability and make future changes less error-prone.
  • Unit tests will ensure that the core functionality works as expected, allowing easier refactoring and continuous improvement.

Expected Outcome:

Upon completion of the refactoring process, the Spellcast Word Finder application will have a modular and well-structured codebase, adhering to the principles of Clean Architecture. This will enable easier maintenance, extension, and testing, making it more robust and reliable for the users.

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.