JAP Simulation Suite is a Java-based educational system developed for the CST8221 - Java Application Programming course at Algonquin College (Fall 2023). This suite includes three progressively complex computational models: Cellular Automata, Game of Life, and Turing Machine. The system was built using both Swing and JavaFX, and demonstrates a wide range of programming techniques including GUI construction, MVC architecture, and client-server communication.
A simulation based on elementary cellular automata rules with full internationalization support from the initial interface and all messages including About dialogs. The model starts with a single active cell and evolves based on user-defined binary rules (e.g., Rule 90 or Rule 30).
GUI: Implemented in Java Swing.
Features:
- Language selection (internationalization)
- Custom rule input (binary string)
- Visualization of CA generations
- Initial matrix and rule evolution display
A visual and interactive implementation of Conway's Game of Life, with multilingual support throughout all configuration menus and game instructions. It supports rule customization and multicolor visualization based on the number of living neighbors.
GUI: Implemented in JavaFX.
Architecture: Full MVC pattern.
Features:
- Manual and random grid initialization
- Binary rule configuration (18-bit string)
- Color mapping based on neighbors
- Real-time simulation with Start/Stop controls
A simulation of a universal Turing Machine, supporting multilingual client and server interfaces including protocol feedback and user instructions. using a Client-Server architecture. The server maintains configuration and client state, while clients send and receive Turing Machine definitions and execute them.
GUI: JavaFX
Networking: Java Sockets (multithreaded server)
Features:
- Multi-client support
- Server-side game state management
- Protocol-based communication
- Real-time interaction with machine tape and states
JAP_Simulation/
│
├── src/ # Source code organized by module
│ ├── ca/ # Cellular Automata
│ ├── gl/ # Game of Life
│ ├── tm/ # Turing Machine (client/server)
│ ├── support/ # Utility and shared classes
│ └── cs/ # Main launcher and model coordinator
│
├── resources/ # Images, i18n property files
├── doc/ # Javadoc and other documentation
├── bin/ # Ignored compiled output
├── JAP.bat # Build and run automation script (Windows)
└── .gitignore # Git ignore rules
- Java 8 or higher
- JavaFX SDK
- Eclipse IDE or compatible
- (Optional) Maven/Gradle for dependency management
Run the JAP.bat
file to:
- Compile all Java source files to
/bin
- Generate a JAR file (
JAP.jar
) - Create project documentation (
Javadoc
) - Launch the application using JavaFX
Before running:
- Ensure JavaFX SDK is installed
- Set the correct path in
JAP.bat
underSET JAVAFXDIR=...
./JAP.bat
You can compile and run the program via your IDE or manually:
java --module-path "path_to_your_javafx_sdk" --add-modules javafx.controls,javafx.fxml -jar JAP.jar
Commit: a12-cellular-automata
Date: Oct 1, 2023
Swing-based implementation of a one-dimensional automaton with rule configuration and internationalization.
Commit: a22-game-of-life-mvc
Date: Nov 12, 2023
Full-featured Game of Life using JavaFX and MVC. Allows manual/random board creation, color coding, and 18-bit rule input.
Commit: a32-turing-machine-network
Date: Dec 3, 2023
Client-server architecture using multithreaded sockets and JavaFX for visualization. Server manages player/game states.
- Marcos Antonio Astudillo Carrasco – Lead Developer
- David Burchat – Co-Developer
This project is for academic and educational purposes only. No specific open-source license applies.
Email: m.astudillo1986@gmail.com