Welcome to the Third World War

Published: Nov 15, 2023 by Women in STEM

Project Overview

This project aims to develop a sophisticated card game against a computer opponent, incorporating a unique twist on the classic game of War. Players will rearrange three cards instead of one, adding complexity and strategic depth. The project will serve as a platform to deepen understanding of Java programming, front-end development, and algorithmic analysis, focusing on Fibonacci sequences and sorting algorithms.

Objectives

  1. Enhance Java Skills: Gain a deeper understanding of abstract classes, inheritance, and various coding styles.
  2. Algorithm Development: Create and analyze multiple algorithms for the card game and standard problems (Fibonacci sequence, sorting).
  3. Efficiency Analysis: Study the efficiency of these algorithms using analytical measurements.
  4. Frontend Development: Develop a frontend to visualize and present algorithmic processes and conclusions.
  5. Innovative Game Design: Implement a unique twist in the card game to enhance player engagement.

Project Phases

  1. Innovation Phase: Conceptualize the card game rules and algorithmic challenges.
  2. Feature Development Phase: Develop the game’s core features and algorithmic solutions.
  3. Integration Phase: Integrate the algorithms with the game and frontend.
  4. Finalization Phase: Finalize the project with comprehensive analysis and polished frontend presentation.

Specific Goals

A. Fibonacci Analysis

  • Develop two additional methods to solve the nth result in the Fibonacci Sequence.
  • Build a frontend output to display results and analysis.

B. Sorting Algorithm Analysis and Inheritance

  • Utilize an abstract class to evaluate the complexity and performance of several sorting algorithms (bubble, insertion, selection, and merge).
  • Implement a parent class to track iterations, comparisons, merges/swaps, and timing.
  • Analyze the Big O complexity, considering operations, time, and space.
  • Conduct extensive testing (at least 12 runs with 5000 random elements each, excluding high and low outliers) to average results.
  • Determine the most efficient sorting algorithm based on comparisons, swaps, complexity, and total time.

IMG_2939

Frontend Development

  • Develop a console output for initial visualization.
  • Design and implement a sophisticated frontend to display game mechanics and algorithmic analysis.
  • Ensure the frontend can effectively present data through an API.

Mockup and Design

  • Create detailed mockups for the game interface and algorithmic visualization before coding.
  • Design the frontend to be intuitive and visually engaging, enhancing the educational aspect.

Screenshot 2023-11-15 at 12 20 48 PM

Deliverables

  1. Card Game Application: A Java-based card game with an innovative twist against a computer opponent.
  2. Algorithm Analysis Tools: Tools to analyze and compare Fibonacci and sorting algorithms.
  3. Frontend Interface: An interactive interface to visualize game mechanics and algorithmic efficiency.
  4. Project Report: A comprehensive report detailing the development process, algorithm analysis, and conclusions.

Timeline

  • Weeks 1-2: Conceptualization and planning, beginning of the innovation phase.
  • Weeks 3-5: Development of the card game and basic algorithms (feature development phase).
  • Weeks 6-8: Integration of algorithms with the game and initial frontend development (integration phase).
  • Weeks 9-10: Finalization of the project, including extensive testing and frontend refinement (finalization phase).

Conclusion

This project will not only result in an engaging and educational card game but also provide deep insights into algorithmic efficiency and Java programming techniques. The combination of practical application and theoretical analysis will offer a comprehensive learning experience.

blog

Share