Giter VIP home page Giter VIP logo

canadian-fish's Introduction

Canadian Fish

This is a single-player only version of a six person card game with rules as described on this page.

demo gif

This is currently playable/winnable but there are several potential improvements

TODO

-> other players take turns
-> declare -> handle player's team running out of cards -> handle opponent's team running out of cards -> handle player running out of cards -> skip button -> ensure that games actually stop eventually

-> stronger AI -> process of elimination inference -> prefer players who are known to have asked for a particular suit (partial knowledge of cards?) -> guess that if a player does not snatch back something that was taken then they are out of that suit? -> polish? -> breadcrumbs in ask menus? -> manual hand sort? -> click to select cards -> window arrows change to shifting arrows -> seleceted card is swapped with adjacent cards -> insert cards at whichever index binary_search Errs with -> let player decide at game start how first player will be determined

Installation for Compilation

This program relies on libBearLibTerminal.so so that should be copied into usr/local/lib or another folder indicated by this command: ldconfig -v 2>/dev/null | grep -v ^$'\t'

then you should run sudo ldconfig to complete the installation.

Then the executable should run correctly.

Alternately if your OS has a package for BearLibTerminal, that may work as well.

Compiling for Windows

Comment out the line containing crate-type = ["dylib"] in the Cargo.toml in the state_manipulation folder. (this is more or less a workaround for this issue, hopefully we will eventually be able to make this switch using the cfg attribute, but currently using the attribute doesn't appear to work correctly.)

Run cargo build --release then copy the exe in ./target/release to the desired location as well as the following :

  • a copy of the precompiled BearLibTerminal.dll and BearLibTerminal.lib.
  • the state_manipulation.dll in ./target/release/deps
  • any necessary assets (graphics, sound, etc.).

canadian-fish's People

Contributors

ryan1729 avatar

Stargazers

 avatar

Watchers

 avatar  avatar  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.