Java Apps

Why Java???

Let’s face it, Java is a quite old programming language and many people think that it is on a tailspin. Nobody wants to install additional software just to run your software. But why is Java (right next to Xamarin) the most used programming language for Android apps? Ok, let’s drop the matter. In my opinion, Java is a very good language for programs of any kind. That’s why this is the spot where you can find all of my Java apps.

Prerequisites

Everything you need is a Mac, Linux or Windows with Java installed. Click here to check if Java is installed correctly on your machine. If not, you can download it here. That’s it, you are now ready to go.

Download

All of the projects mentioned below have all one starting point: The “FOK Launcher”. Click here to download the latest version.

Hangman Solver

You surely know the popular game hangman, right? Next time, you play hangman together with a friend and you have no clue what to guess next, launch hangman solver to help you out.

Hangman solver turns the tables: It’s not the computer who lets you guess a word but you who lets the computer guess your word.

I want that!

Great, let’s go:

  1. Download the FOK Launcher.
  2. Open the launcher and launch “Hangman Solver”
  3. Choose the language you’re playing in
  4. Enter the progress you already made, e. g. “H__gm_n S_lv_r”
  5. Use an underscore ( _ ) for each letter that is yet to be guessed.
  6. Hit Enter
  7. Hangman solver will give you a hint for what to guess next.
  8. Three possibilities:
    1. Hangman solvers guess was right? Great! Don’t forget to update the game progress. If your prior game progress was “H__gm_n S_lv_r” and hangman solver guessed the letter “a”, the new game progress would be “Ha__man S_lv_r”. Next, hit Enter again to get the next guess.
    2. The guess was wrong? No problem. Just hit Enter once more. Hangman solver will automatically recognize the guess as wrong and give you his next guess.
    3. Oops, I made a mistake and entered the wrong game progress! No problem. Take your time and enter the correct game progress and hit Enter again, hangman solver will find its way.

In case hangman solver is unable to guess the correct word, it will ask you to tell him the word you were looking for. He does that because he is eager to learn new words (using an online database).

Man, that user interface is waaay toooo complicated, I don’t get it!

Yeah, I know. Hangman solvers current GUI is a “proof of concept”-GUI meaning that its purpose is to show off the algorithm. I am already working on a GUI which is more intuitive but university is more important 🙂

I’m a mathematician, I want to know how it works

We have a very detailed explanation on how the algorithm works in our GitHub Repository.

Tic Tac Toe

This project is the result of a sudden “learning addiction”. I suddenly wanted to know, how AI works and Tic Tac Toe is the best game to learn about AI. You can find Tic Tac Toe in the FOK Launcher mentioned above.

This project did not aim for a beautiful GUI or a perfect user experience, its only purpose was to learn how the so-called MiniMax-algorithm works. In theory, the AI should play a perfect strategy meaning that it will never loose (only win or play ties), but only in theory. Somewhere, deep in the source code, an error is hiding from me which allows human opponents to win in some cases.

This project is now dead and there are no plans for any updates but anybody who wants to play is very welcome 🙂

FOK-Commons

This project targets developers (not end-users). It provides useful features for java developers, e. g.:

  • Self-Update (allows an app to update itself)
  • A simple way to save user preferences or settings
  • A lightweight wrapper for java.util.logging to simplify its usage
  • Tools to do stupid things with version numbers
  • A simple dialog window to inform a user about a new update for the app
  • and many more [WIP] 🙂

More info about it is available in the projects GitHub repository (see below)

GitHub Repositories & License

(Almost) all projects mentioned on this page are open source and published under the Apache License v2.0. That means that you can see all of the source code on GitHub (see the list below), you can even download, modify and use the source code in any way you want (=commercial and private use) for free as long as you mention the licensor (=Frederik Kammel).*

Here is a list of all of our public GitHub repositories:

* This is only a summary of the Apache License v2.0. The only legally binding license text is the english version of the Apache License v2.0.