Code Monkey home page Code Monkey logo

reversatile's Introduction

Reversatile - Zebra Reversi for Android

This app continues the work of the discontinued Droidzebra: https://github.com/alkom/droidzebra

Since Version 1.4 this app needs Android 5 to run. The latest release that supports older version can be found here

Reversatile is a graphical front-end for well-known Zebra Othello Engine written by Gunnar Andersson. It is one of the strongest othello-playing programs in the world. More info on Zebra engine can be found here: http://radagast.se/othello/

The game requires 10MB of storage (external or internal) to play.

Info about Reversi: http://en.wikipedia.org/wiki/Reversi

You will need approximately 15mb of storage space to install and play the game.

assets/ - compressed book and coeffs2.bin jni/ - C code Zebra + mods src/ - Java code res/ - resource files

Differences from droidzebra:

  • will start in practise mode with highest difficulty
  • can read games via intents/copy and paste

Current features:

  • Zebra engine
  • play human vs human, hunam vs computer, computer vs computer
  • multiple levels of play
  • practice mode
  • unlimited undo

The Development/Master Branch uses play store apis. The foss branch is free vom closed source software.

Version 1.0.0

  • added functionality to enter games (via copy and paste or manually)
  • added functionality to listen to intent from Reversi Wars

Version 1.3.x.

  • guess the best move mode

Version 1.4.X.

  • Better Status View
  • Minimum Android 5
  • landscape mode

reversatile's People

Contributors

insti avatar oers avatar panstromek avatar sym777 avatar

Stargazers

 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  avatar

reversatile's Issues

Cherry pick bug fixes in C code from panstromek/zebra

When working on https://github.com/panstromek/zebra-rs, I found bunch of bugs in the original zebra by fuzzing them together.

I fixed them in my fork here https://github.com/panstromek/zebra, it'd make sense to cherry pick them to Reversatile. C code in Reversatile is not quite the same as in the original zebra, but there are not that many differences, so it shouldn't be difficult to port in most cases.

Some of them are quite nasty (some buffer oveflows) but mostly have low impact, because they are either triggered in some obscure conditions (invalid command line arguments) or don't cause any harm (off by one errors like reading one byte past the array length). That said, it's UB, so C makes no guarantees about any behaviour of the program ๐Ÿคทโ€โ™‚๏ธ

Cannot replay after undo then rotate

Play a full game.
Rewind to the start.
Redo the moves - everything works.
Rewind to the start.
Rotate the board.
Redo the moves - Nothing happens.

Expected behavior: The game replays the rotated moves.

Minimum API level?

We're currently have minSdkVersion 14

Can you see from the install stats if anyone is running it on old devices?

How much effort do we want to put into staying compatible?

This page shows the distribution of versions in use on google play recently: https://developer.android.com/about/dashboards/index.html

I can't (after a quick look) get any Android Studio emulator lower than 16 to run.
Leaving the minSdkVersion at 14 but only testing on 16 could also be an option.

Can't open game

D3C5F6F5F4C3C4D2E2B4D1F3B5E3F2F1A4D6E6E7F7B6E8C6B3A5D7A3E1A6G1A2C2C7B8D8C8G8G6H6G5H5G4H4H3G7H8F8H7A8A7B7A1B2G3G2H2H1C1B1

Invalid Move B4

Some evaluations are shown in Guess Best Move

When I generate a new puzzle, often some of the moves will have their expected scores displayed on the board (before having made any guesses), like in the screenshot below. Sometimes it includes the answer (A4), and sometimes it doesn't.

Screenshot_20240420-213304

I'm using Android version 13 on a Moto g82.

Nullpointer Exception in sendMail

java.lang.NullPointerException: 
  at de.earthlingz.oerszebra.DroidZebra.sendMail (DroidZebra.java:584)
  at de.earthlingz.oerszebra.DroidZebra.access$700 (DroidZebra.java:65)
  at de.earthlingz.oerszebra.DroidZebra$DialogGameOver$5.onClick (DroidZebra.java:872)
  at android.view.View.performClick (View.java:5646)
  at android.view.View$PerformClick.run (View.java:22473)
  at android.os.Handler.handleCallback (Handler.java:761)
  at android.os.Handler.dispatchMessage (Handler.java:98)
  at android.os.Looper.loop (Looper.java:156)
  at android.app.ActivityThread.main (ActivityThread.java:6523)
  at java.lang.reflect.Method.invoke (Native Method)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:942)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:832)

Crash on during evaluation

Reversatile version 1.4.14

When pasting a (finished) game sequence, fast backwards to first move and eveluating per next move basis, Reversatile on android crashes with certain move sequences. I can predictably replicate this bug on sequence:
c4c3d3c5b3f4b5b4a5a3c6d6f3c2d1e6d2b6g4e2e3f2e1f1g1f5g6a6a7a2c7d7d8e7e8f7f6f8g8g5h4b1b2a1c1a4a8b7b8c8h8g7h7h6h5h3h1g2
The crash occurs between c5 and b3.
I've noticed this behaviour before with different games and at different move numbers but never documented them.

Wrong Disc count

For this sequence E6F6C4D6F7C3C6C7G6H6C8G8C2B2A2C1G7C5B3B6A6H8E3A3F4A1

Redo button not visible in top menu.

The latest update has removed the "redo" button from the main 'board' screen.

I like to review played games, and having to open the menu to access the redo button is really annoying.

(This may be related to my screen size? Do you need a screenshot?)

Opening name

Could e6f4e3d6c5f3f5f6d7 and rotational and symmetrical equivalents be named "Luke" in the opening database? It currently doesn't have a name.

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.