Skip to content

Commit eca0971

Browse files
committed
fix: resolve project initialization issues
1 parent 7303e3c commit eca0971

2 files changed

Lines changed: 17 additions & 96 deletions

File tree

web-app/js/main.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1282,7 +1282,7 @@ document.addEventListener("DOMContentLoaded", function () {
12821282
if (typeof initializeProject === "function") {
12831283
initializeProject(name);
12841284
}
1285-
setupModalInfoButton(name);
1285+
// setupModalInfoButton(name);
12861286

12871287
// Inject info button - FIXED for Tic Tac Toe and all projects
12881288
var projectContent = modalBody.querySelector(".project-content");

web-app/js/projects.js

Lines changed: 16 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -40,41 +40,22 @@ function getProjectHTML(projectName) {
4040
return projects[projectName] || '<h2>Project Coming Soon!</h2>';
4141
}
4242

43+
function toPascalCase(str) {
44+
if (str === "2048-game") return "2048Game";
45+
if (str === "nqueens") return "NQueens";
46+
47+
return str
48+
.split("-")
49+
.map(word => word.charAt(0).toUpperCase() + word.slice(1))
50+
.join("");
51+
}
52+
4353
function initializeProject(projectName) {
44-
const initializers = {
45-
'rock-paper-scissor': initRockPaperScissor,
46-
'dice-rolling': initDiceRolling,
47-
'coin-flip': initCoinFlip,
48-
'number-guessing': initNumberGuessing,
49-
'hangman': initHangman,
50-
'flames': initFlames,
51-
'fibonacci': initFibonacci,
52-
'progression-recognizer': initProgressionRecognizer,
53-
'pascal-triangle': initPascalTriangle,
54-
'armstrong': initArmstrong,
55-
'calculator': initCalculator,
56-
'collatz': initCollatz,
57-
'prime-analyzer': initPrimeAnalyzer,
58-
'projectile-motion': initProjectileMotion,
59-
'coordinate-polar-transform': initCoordinatePolarTransform,
60-
'complete-calculus-engine': initCompleteCalculusEngine,
61-
'morse-code': initMorseCode,
62-
'tower-of-hanoi': initTowerOfHanoi,
63-
'nqueens' : initNQueens,
64-
'matrix-calculator': initMatrixCalculator,
65-
'sudoku-game': initSudokuGame,
66-
'unit-converter': initUnitConverter,
67-
'resume-analyzer': initResumeAnalyzer,
68-
'reverse-hangman': initReverseHangman,
69-
'budget-tracker': initBudgetTracker,
70-
'fourier-series': initFourierSeries,
71-
'merge-sort': initMergeSort,
72-
'pathfinding-visualizer': initPathfindingVisualizer,
73-
'tsp-visualizer': initTspVisualizer
74-
};
75-
76-
if (initializers[projectName]) {
77-
initializers[projectName]();
54+
const fnName = "init" + toPascalCase(projectName);
55+
const init = window[fnName];
56+
57+
if (typeof init === "function") {
58+
init();
7859
}
7960
}
8061

@@ -3014,64 +2995,4 @@ function initDerivativeCalculator() {
30142995
const value = evaluate(nth, data.x);
30152996
output.textContent = `f(x) = ${polynomialToString(data.coeffs)}\n\nDerivative used: ${polynomialToString(nth)}\nValue at x = ${formatNumber(data.x)} is ${formatNumber(value)}`;
30162997
});
3017-
}
3018-
function initializeProject(projectName) {
3019-
const initializers = {
3020-
"tic-tac-toe": "initTicTacToe",
3021-
"chess": "initChess",
3022-
"rock-paper-scissor": "initRockPaperScissor",
3023-
"dice-rolling": "initDiceRolling",
3024-
"coin-flip": "initCoinFlip",
3025-
"blackjack-21": "initBlackjack",
3026-
"number-guessing": "initNumberGuessing",
3027-
hangman: "initHangman",
3028-
"word-scramble": "initWordScramble",
3029-
flames: "initFlames",
3030-
"dots-boxes": "initDotsBoxes",
3031-
"emoji-memory": "initEmojiMemoryGame",
3032-
fibonacci: "initFibonacci",
3033-
"binary-search": "initBinarySearch",
3034-
"sorting-visualizer": "initSortingVisualizer",
3035-
"quick-sort": "initQuickSort",
3036-
"merge-sort": "initMergeSort",
3037-
"progression-recognizer": "initProgressionRecognizer",
3038-
"pascal-triangle": "initPascalTriangle",
3039-
armstrong: "initArmstrong",
3040-
calculator: "initCalculator",
3041-
collatz: "initCollatz",
3042-
"prime-analyzer": "initPrimeAnalyzer",
3043-
"projectile-motion": "initProjectileMotion",
3044-
"coordinate-polar-transform": "initCoordinatePolarTransform",
3045-
"complete-calculus-engine": "initCompleteCalculusEngine",
3046-
"morse-code": "initMorseCode",
3047-
"tower-of-hanoi": "initTowerOfHanoi",
3048-
"number-converter": "initNumberConverter",
3049-
"typing-speed-tester": "initTypingSpeedTester",
3050-
"snake-game": "initSnakeGame",
3051-
"password-forge": "initPasswordForge",
3052-
"spot-the-difference": "initSpotTheDifference",
3053-
"whack-a-mole": "initWhackaMole",
3054-
"flappy-game": "initFlappyGame",
3055-
"productive-pet": "initProductivePet",
3056-
"simon-says": "initSimonSays",
3057-
"2048-game": "init2048Game",
3058-
"color-palette": "initColorPalette",
3059-
"math-quiz": "initMathQuiz",
3060-
"resume-analyzer": "initAIResumeAnalyzer",
3061-
"caesar-cipher": "initCaesarCipher",
3062-
"sudoku-game": "initSudokuGame",
3063-
"resume-analyzer": "initResumeAnalyzer",
3064-
"caesar-cipher": "initCaesarCipher",
3065-
"war-card-game": "initWarCardGame",
3066-
"number-sliding-puzzle": "initNumberSlidingPuzzle",
3067-
"budget-tracker": "initBudgetTracker",
3068-
"fourier-series": "initFourierSeries",
3069-
"pathfinding-visualizer": "initPathfindingVisualizer",
3070-
"tsp-visualizer": "initTspVisualizer"
3071-
};
3072-
3073-
const initializerName = initializers[projectName];
3074-
if (initializerName && typeof window[initializerName] === "function") {
3075-
window[initializerName]();
3076-
}
3077-
}
2998+
}

0 commit comments

Comments
 (0)