@@ -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+
4353function 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