Skip to content

stymphalide/java_project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 

Repository files navigation

Eartrainer

This project is being created as a programming project in Informatics class with Ms Vazquez in January 2018.

Download and install.

Time Schedule

Project Goals

Code of Conduct

TODOS

  • Initialise Project
    • Gradle Command
    • Git init
    • Copy this readme
    • Add .gitignore
    • Add .gitattributes
    • Add already defined deps
    • Create predefined directory structure
    • Write first classes
    • Write first tests
  • Create the Project Dossier for MSI
    • Add a Project Description 1/4 page
    • Definition of the Problem
    • Analysis of the Requirements
    • Specifications
    • Draft (UML)
    • Copy Implementation
    • Results and Tests
    • Push to github
  • Finish the Project
    • Write a working interface
    • Write a working application
    • Add Salt and Pepper!!!
  • Create the Project Dossier for MSII
    • Write the TODO for this part.
  • Have a Beer where we celebrate the finished Project

The Idea

A game based on the game of set.

However, we do not want to create a clone of this game but rather convert it into something new. Our idea is to use this notion of a set and apply it to music. Instead of having a 3x3 grid where one has to find a set, we will use a simpler version of the game. In this version two 'cards' already lie on the table. By the rules of set, the third card is clearly determined.

In our version of the game the visual features of colour, number, symbol and shading are replaced by auditive features. These auditive features are:

  • Which interval is it (out of a predetermined list of three)?
  • Is the lower or the higher note played first or are they played simultaneously?
  • In which range is the interval (high, middle, low)?
  • By which instrument is the interval played (out of a predetermined list of three)?

Setup

Git and Github

Git is 'the' version management tool out there. It makes version management a breeze. Github makes distributed working easy. To get an overview over this tool checkout:

Note: Since Windows and Linux handles line endings differently there has to be some set up in a .gitattributes file. (Also because of gradle) Dealing with line endings

Gradle

A Build tool for our application. Takes the task of compiling the code and running tests away from us. Can also be used to create a .jar file. It also sets up a basic project, and most importantly can be used as a plugin in eclipse. This way we can make sure, that the setup of our application 'fits' for the IDE but can still be developed outside.

Testing

Front End

After the 'coding part' and the testing part we should decide on which libraries to use to accomplish out task. One thing that needs to be covered is the how to make the Graphical User Interface (Something that I consider highly overrated!!!). We are going to use Java's go-to tool, namely javafx. Why the fuck does anyone write such shit???

Further Libraries

Since we are going to produce sound in one way or another it is necessary to check out some midi/sound libraries for Java.

Java ships with some integrated libraries to accomplish these tasks:

  • javax.sound.sampled
  • javax.sound.midi

A higher level library could be jFugue:

Time Schedule

List of important dates.

Project Structure

The Project has the basic gradle structure. The source files i.e. the part that we write is in the ./src/ directory.

Tree

Make a tree of the project structure.

Installation

Prerequisites

You need to have gradle installed: Gradle Build Tool

Download

Download an exectuable .jar archive here

Or clone this repository

git clone https://github.com/stymphalide/eartrainer.git

cd eartrainer
gradle build
gradle run

Project Goals

  • Desktop-App: Eartrainer
  • Inspired by the game "Set", whereby the visual features are replaced by auditive ones.
  • There is a menu screen where the level can be chosen.
  • There is an in-game screen where the magic happens.
  • There is an after-game screen where the results are shown.

Additional Goals

  • Multiple levels
  • Add (compose) background music in the menu and after-game-screen.

Required Libraries

  • jFugue
  • javaFX
  • some random stuff
  • javax.sound.sampled

Task Sharing

Task Person
Level Design Both
Dependency Management Angelo
Tests Both
Interface Angelo
JavaFX Angelo
Gradle Build Angelo
jFugue Tobias
Music Theory Tobias
Music Composition Tobias

Code of Conduct

Based on the requirements in the Milestone I file.

  • Main-Class is commented as follows:

     // Date: 12.01.2018
     // Project Name: Eartrainer
     // Names: Angelo Birrer G4L and Tobias Seefeld G4L
     // Main Sources: TBD 
     // Code Sharing: TBD
    
  • Every Class has a /*classdoc*/ comment where the usage of the class is described.
  • After every import there is a // What is this for comment
  • Important variables (Probably instance variables of the class) are explained
  • Important Functions (Those that are used by the main function?) are explained
  • Larger code fragments such as (Nestings, loops constructors etc.)
  • Copy-pasted stackoverflow code has to be commented.
  • Larger code bits are stated on top of the class (I hope this will not happen too often.)
  • The code should be slim! (Refactoring is a crucial part of TDD!)

Sources

Everything we stumble upon doing research comes in this part.

License

To be determined

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published