drewhannay / chess

A Java application for defining and playing chess variants
http://chesscrafter.com
36 stars 45 forks source link

Chess Crafter Build Status

A Java application which allows users to design variants on chess, specifying new kinds of pieces and how they move, the board layout, the initial positions of pieces, how the game is won, and special rules. Users can play either as two humans at one computer, two humans at different computers through a network connection, or one human versus the computer. The AI for the "computer" player is be defined by plug-ins that users can write.


Note

All new development is happening on the rewrite branch, which is focused on separating the logic code from the UI and adding unit tests. Please do not submit pull requests to the master branch.


How to Contribute

Of course, there may be alternate ways to do many of these steps, but these are the ones we will help you with if you get stuck

Getting the Code

Building the Code

Chess Crafter uses the Gradle build system to build the project. Gradle lets us use the same build script in both development builds and release builds. To build the code, just run gradlew build from the root directory of the repository and this will run all the tests and produce a build directory for each module

Setting up an IDE

IntelliJ IDEA (Recommended)

IntelliJ provides Gradle project support out of the box, which is why it's our recommended IDE. To get set up:

Eclipse

Eclipse doesn't support Gradle by default, so we need to do a little extra work to get things ready.

The Issue System

This project uses the github Issues system to track all work being done on the app. To get started, visit the Issues Tab and browse the list of things that need to be done. Find one that looks interesting and isn't yet being worked on and claim it for yourself by leaving a comment saying you're working on it. If you find a bug in the app or have a feature or enhancement idea, add an issue for it. Every single commit that gets added to the project should have an associated issue number (as specified below...)

Making and Committing Your Changes

Note: If you aren't familiar with Git, please read this tutorial.

Before editing any code, you should make a new branch for your changes (this really helps with managing pull requests and merges).

When you are ready to commit, go back to SmartGit. Your changed files should appear in the the main section of the window. Select each of the files you want to commit and press the "Stage" button located directly above the list of files. Next, click "Commit" (next to the Stage button). You will now be required to enter a commit message. Each commit should be associated with an Issue number from our Issues list. Your commit messages should be in this form (where "N" is the appropriate issue number):

Issue #N Short sentence describing what was changed

Any other description required should go in paragraph form below the initial message with a new line separating the two

This formatting is very important because with it, github will conveniently link your commit message to the related issue number.

Updating Your Fork

Frequently you will want to update your forked copy of the repository with changes from the main repo. There's a few steps required for this:

Getting Your Changes Merged with the Main Repository

Once you've added a new feature or fixed a bug, you'll need to get your changes merged back into the main repository.

Now what?

For more information on the project, visit our Project Wiki or contact one of the administrators or other contributors and we'll be more than happy to help you get started!