Files
mini-test-projects-2-release/module-c/module-c-en.md
2026-04-13 16:33:25 +09:00

5.1 KiB

🎮 Test Project: Module C - CyberTyper 2026

1. Project Overview

The objective of this task is to develop a high-performance arcade game based on English typing. Competitors must analyze the provided words_data.json file to design a Database (MySQL) and complete a dynamic front-end engine that tracks real-time coordinates to destroy words by integrating it with an API.

2. Technical Definitions

  • VFX (Visual Effects): Visual special effects within the game. This refers to effects such as letters breaking into fragments upon bullet collision.
  • WPM (Words Per Minute): An index of typing speed. (Calculation: Total words typed / Play time in minutes)
  • HP (Health Point): The player's vitality (starting at 100%). It decreases when words are missed, and the game ends when it reaches 0%.

3. Step 1: Backend API and Database Design (Server-side)

All API endpoints must use the /module_c/api/ path, and data persistence must be guaranteed.

A. Database Configuration (Mandatory)

  • Word Table: You must create a table that stores the word text, difficulty level, and unique points based on the contents of the provided words_data.json.
  • Ranking Table: You must design a table to store player names, final scores, and max combos. This data must be maintained even after a server restart.

B. API Logic Requirements

  • Word Supply API (GET /module_c/api/words?level=n):
    1. Randomly extract words corresponding to the requested difficulty (level).
    2. Duplicate Prevention: Words already appearing on the current game screen must not be duplicated in the API call.
  • Ranking API: Records must be stored in the DB via POST requests, and the Global TOP 5 records must be returned in descending order of score upon GET requests.

4. Step 2: Game Engine and Scoring Logic (Front-end Development)

A. Difficulty Settings (Spawn Interval & Fall Speed)

Words are generated at random horizontal positions at the top of the screen (y=0) and move downwards.

Difficulty (Level) Spawn Interval Fall Speed Multiplier (Multiplier)
Level 1 Every 2.0s Slow (50px/sec) 1.0
Level 2 Every 1.5s Normal (80px/sec) 1.5
Level 3 Every 1.0s Fast (120px/sec) 2.0

B. Detailed Scoring Formula (FinalScore)

FinalScore = BasePoints + (CurrentCombo \times LevelMultiplier)
  • $BasePoints$: The unique points assigned to the matched word in the DB.
  • $CurrentCombo$: The number of consecutive successes. (Increments by 1 on success; resets to 0 immediately if a word hits the bottom).
  • Display: The calculated score must be displayed as a real-time cumulative value in the Score area of the game screen.

C. HP System and Recovery

  • Deduction: HP decreases by 10% whenever a word hits the bottom line.
  • Recovery: Every time a 20 Combo is achieved, 5% of the currently lost HP is restored as a bonus.

5. Step 3: UI/UX and Scene Specifications (Design Implementation)

A. 3-Scene SPA (Single Page Application) Structure

  • This task must be developed as an SPA structure where screens transition without a full page refresh using JavaScript.
  • Scene 1 (Start): Player name entry and difficulty selection.
  • Scene 2 (Play): The actual game progression screen.
  • Scene 3 (Result): Final score summary and Global TOP 5 ranking display.

B. Start Scene Requirements

  • Input Elements: Game title (CyberTyper 2026), Player Name input field (Required), Difficulty Selection (Level 1, 2, 3) via radio buttons or a select box.
  • Start Button: Becomes active only when all information is entered; clicking it enters the game screen.

C. Game Screen Mandatory Components (Marking Items)

  • Score: Real-time cumulative scoreboard.
  • Combo: Current consecutive success count.
  • WPM: Real-time calculated words per minute.
  • HP Gauge: A visually changing health bar.
  • Input Field: Text area for the player to type English words.
  • Falling Words: Words falling from random top positions.

D. Projectile and Fever Effects

  • Bullet and Collision: Upon pressing Enter, a bullet is fired from the bottom toward the real-time coordinates of the target word. When a collision occurs, a letter-fragment VFX is generated and the word is destroyed.
  • Fever Mode: Achieving a 20 Combo reduces the fall speed by 50% for 5 seconds and activates a neon background effect.

E. Ranking Scene (Result Scene)

  • Displays the Global TOP 5 leaderboard retrieved from the database.
  • [New Game] Button: Clicking this resets all settings and returns to the Name Input screen.

6. Marking Scheme Summary (Total 25.00)

Category Detailed Criteria Marks
Design (7.0) Dynamic projectile/particle effects, visibility of essential UI (HP, Score), and VFX completion. 7.0
Front-end (11.0) Difficulty-specific logic (Interval/Speed), duplicate-free word management, and bullet coordinate calculation. 11.0
Back-end (7.0) DB table design and data persistence, Global TOP 5 Ranking API design. 7.0