All Projects → benjaminfoo → OpenTriad

benjaminfoo / OpenTriad

Licence: GPL-3.0, GPL-3.0 licenses found Licenses found GPL-3.0 LICENSE GPL-3.0 LICENSE.md
Open Triad is a reimplementation of the card game "Triple Triad" by Squaresoft.

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to OpenTriad

jfxvnc
JavaFX based VNC client
Stars: ✭ 44 (+25.71%)
Mutual labels:  javafx
quiz-app
Quiz for Desktop Application - Java case.
Stars: ✭ 26 (-25.71%)
Mutual labels:  javafx
gomoku-battle
Gomoku Battle is a cross-language cross-system battle platform.
Stars: ✭ 18 (-48.57%)
Mutual labels:  javafx
ownNoteEditor
JavaFX editor for the ownNote files locally stored in ownCloud folder
Stars: ✭ 25 (-28.57%)
Mutual labels:  javafx
EdisonEngine
An open-source Tomb Raider 1 engine remake
Stars: ✭ 58 (+65.71%)
Mutual labels:  reimplementation
OnlyViewer
A material design picture viewer made with JavaFX and JFoenix. / 用JavaFX编写的Material Design风格的电子图片管理系统
Stars: ✭ 23 (-34.29%)
Mutual labels:  javafx
Pytorch-PCGrad
Pytorch reimplementation for "Gradient Surgery for Multi-Task Learning"
Stars: ✭ 179 (+411.43%)
Mutual labels:  reimplementation
jdeploy
Developer friendly desktop deployment tool
Stars: ✭ 282 (+705.71%)
Mutual labels:  javafx
actlist
📦 Actlist is a utility platform to execute your own action list easily and simply.
Stars: ✭ 85 (+142.86%)
Mutual labels:  javafx
Tutorials
Step by step to learn coding and build Apps 🎉. Code files of Youtube & University tutorials.
Stars: ✭ 80 (+128.57%)
Mutual labels:  javafx
ner-tagger-dynet
See http://github.com/onurgu/joint-ner-and-md-tagger This repository is basically a Bi-LSTM based sequence tagger in both Tensorflow and Dynet which can utilize several sources of information about each word unit like word embeddings, character based embeddings and morphological tags from an FST to obtain the representation for that specific wor…
Stars: ✭ 23 (-34.29%)
Mutual labels:  reimplementation
quantumVITAS
Quantum Visualization Interacting Toolkit for Ab-initio Simulations
Stars: ✭ 52 (+48.57%)
Mutual labels:  javafx
Emoji-Tools
Multiple useful tools to help Android and iOS/OSX developers with creating and modifying Emoji Font files.
Stars: ✭ 102 (+191.43%)
Mutual labels:  javafx
Bank-Account-Simulation
A Bank Account Simulation with JavaFX and SQLite back-end. Material UX|UI.
Stars: ✭ 19 (-45.71%)
Mutual labels:  javafx
dynamoit
A simple AWS DynamoDB viewer
Stars: ✭ 32 (-8.57%)
Mutual labels:  javafx
JFXGoogleDrive
A JavaFX Google Drive Client (For Demonstration Purposes Only).
Stars: ✭ 29 (-17.14%)
Mutual labels:  javafx
darculafx
JavaFX darcula theme
Stars: ✭ 35 (+0%)
Mutual labels:  javafx
find the letter material design
litterature game made using javaFX and FXML, small collaboration, the game is about finding the missing letters from a word using different hints (an image, incomplete word..etc).
Stars: ✭ 21 (-40%)
Mutual labels:  javafx
DrawingBotV3
DrawingBotV3 is a software for creating line drawings from Images
Stars: ✭ 161 (+360%)
Mutual labels:  javafx
AllInOneFX
All In One JavaFX Application with a curated list of awesome JavaFX libraries, frameworks
Stars: ✭ 26 (-25.71%)
Mutual labels:  javafx

Welcome to OpenTriad

This project is a reimplementation of the great card game called "Triple Triad" originally developed by Squaresoft for the Playstation 1 title "Final Fantasy 8".

Architecture

The project is separated into the following subprojects:

  • engine - Contains the core components and mechanics for the actual game.
  • terminalApp - Contains the terminal implementation (used for implementation purposes, but also for testing)
  • fxApp - Contains the JavaFX implementation (because why not?)
  • android - Contains the refactored android implementation

Engine

The projects core is the 'engine'-submodule. It consists of various interfaces and default implementations. The engine itself isn't runnable (well the tests are) instead there are different implementations provided.

Model:

  • Card - A pojo which contains a name and four values (top, right, bottom, left).
  • Deck - Model which contains five cards.
  • Player - Simple POJO which contains a name.
  • Battlefield - Contains a two-dimensional array of cards and a "GameFinish"-flag.

Controller:

  • BattlefieldController - Contains the actual game loop.
  • PlayerController - Contains the Player-Entity and the MoveDelegate.

Persistence:

  • CardParser - Enables the parsing of cards.
    • LocalJsonParser - Parses JSON-files from the hard-drive.

View:

  • No view, these are implemented in the corresponding submodules (terminalApp, fxApp, android).

Interfaces / Implementations:

  • CardChooser - Callbacks in order to choose cards before the actual game happens.
    • PreselectedCardChooser - Simply returns a list with five test cards.
    • TerminalCardChooser - Lets a user select five cards via terminal-input.
  • BattlefieldDelegate - Callbacks for events during the game.
    • DefaultBattlefieldDelegate - Dummy implementation (for testing purposes) - doesnt actually do anything
    • The other subprojects make use of this.
  • MoveDelegate - Callbacks for (engine-events) in order to provide a runtime-independent player-turn. This is needed for telling the engine which card a player sets on the battlefield.
    • RandomMoveDelegate - Mimics the turn of a player by randomly setting cards on the battlefield.
    • TerminalMoveDelegate - Allows a user to input card-, x- and y- information in order to set a card.

Screenshots

Screenshots - Terminal

(outdated) Screenshots - Android

Screenshots - JavaFX

  • Coming soon...

Development

How to build & deploy

  • Clone this repository: git clone https://github.com/benjaminfoo/OpenTriad.git
  • Open IntelliJ IDEA, Select "Open Project" and within the FileDialog, choose the build.gradle file at the project-root - OR - cd into the project and execute "gradle build".
  • Install project on emulator or mobile device.
  • Thats it!

How to add custom cards

  1. Add an entry to the file '/opentriad/engine/src/main/resources/cards.json' like
   {
      "name": "MyCustomCard",
       "topPower": "5",
       "leftPower": "3",
       "rightPower": "1",
       "bottomPower": "1"
    }
  1. Within '/OpenTriad/app/src/main/assets/cards/', create an image (jpg!) if your custom card. The name must be the same as you've used in the json file (e.g. for this card, an image called "MyCustomCard.jpg" has to be saved.)
  2. Have fun playing with your custom card!

Used Software / Libraries

  • Java
  • Gradle
  • Gson
  • JUnit

Note

Final Fantasy, Triple Triad, and all subject material are property of Square-Enix. I am not the owner / maker / author of the provided images / names or trademarks used within this project.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].