diff --git a/src/App.js b/src/App.js index f914e81..0eaa0ac 100644 --- a/src/App.js +++ b/src/App.js @@ -43,7 +43,7 @@ function App() { {gameMode === 'practice' && <> {keyType === "straight" ? - : } + : }


@@ -53,8 +53,8 @@ function App() { {gameMode === 'challenge' && <> {keyType === "straight" ? - : } - } + : } + } diff --git a/src/app-modes/ChallengeMode.js b/src/app-modes/ChallengeMode.js index b37a29e..54988d5 100644 --- a/src/app-modes/ChallengeMode.js +++ b/src/app-modes/ChallengeMode.js @@ -2,66 +2,73 @@ import React, {useContext} from 'react'; import '../css/App.css'; import morseCode from '../data/morse-reverse.json' import ChallengeWord from '../components/ChallengeWord' -// import MorseBufferDisplay from '../components/MorseBufferDisplay' -// import ChallengeDisplay from '../components/ChallengeDisplay'; import ChallengeBufferDisplay from '../components/ChallengeBufferDisplay'; import { MorseBufferContext } from '../contexts/morseBufferContext'; -function ChallengeMode() { + +export default React.memo(function ChallengeMode() { + console.log("ChallengeMode loaded"); - - let word = "morse" - const {morseCharBuffer, setMorseCharBuffer} = useContext(MorseBufferContext) - - + let wordList = ['morse', 'code', 'hello', 'gene'] + let word = wordList.shift() let challengeLetters = word.split('') - let morseLetters = morseCharBuffer.split('_').filter(l => l !== '') - let correctIndexes = [] - let incorrectIndex = null + const {morseCharBuffer} = useContext(MorseBufferContext) + let morseArray = morseCharBuffer.split('_').filter(l => l !== '') - morseLetters.forEach((morseLetter, index) => { - let morseAlpha = morseCode[morseLetter] - let challengeLetter = challengeLetters[index].toLowerCase() + let correctCharIndexes = [] // Indexes of correct letters in Challenge Word + let incorrectCharIndex = null + let incorrectMorseIndexes = [] // Indexes of incorrect morse characters in morse character buffer - console.log('morseAlpha', morseAlpha); - console.log('morseLetter', morseLetter); - console.log('challengeLetter', challengeLetter); + // Iterate through the morse character buffer and compare with each letter of challenge word + morseArray.forEach((item, index) => { - if (morseAlpha === challengeLetter) { - correctIndexes.push(index) - // console.log('MATCH', correctIndexes); + let offset = incorrectMorseIndexes.length || 0 + + let morseLetter = morseCode[morseArray[index+offset]] + let challengeLetter = challengeLetters[index-offset] + if (morseLetter === challengeLetter) { + correctCharIndexes.push(index-offset) + incorrectCharIndex = null } else { - if (morseCharBuffer.slice(-1) === "_") { - incorrectIndex = index - // console.log('MISMATCH:', incorrectIndex, 'should be', challengeLetter, 'instead of', morseAlpha, '>', morseLetter); - // props.setMorseCharBuffer(morseLetters.slice(0,-1).join('_') + '_') - } + incorrectCharIndex = index-offset + incorrectMorseIndexes.push(index+offset) } - }) - - let spannedWord = challengeLetters.map((letter,index) => { - // console.log('correctIndexes',correctIndexes); - // console.log('index',index); - let className = 'cLetter' - className += (correctIndexes.includes(index)) ? ' correct' : '' - className += (incorrectIndex === index) ? ' morseError' : '' - return ( - {letter} - ) + + // let offset = incorrectMorseIndexes.length + + // if (morseArray[index + offset]) { // If value exists at index + + // let morseAlpha = morseCode[morseArray[index + offset]] + // let adjustedIndex = index - offset + + // if (challengeLetters[adjustedIndex]) { // If value exists at index + + // let challengeLetter = challengeLetters[adjustedIndex].toLowerCase() + + // if (morseCharBuffer.slice(-1) === "_") { // Signifies buffer has complete characters (i.e. no partial characters) + + // if (morseAlpha === challengeLetter) { + // correctCharIndexes.push(adjustedIndex) + // incorrectCharIndex = null + // } else { + // incorrectMorseIndexes.push(index) + // incorrectCharIndex = adjustedIndex + // } + // } + // } + // else { word = wordList.shift() } + // } }) return ( <> - - - + + + {/* */} ); - -} - -export default React.memo(ChallengeMode); +}); diff --git a/src/components/ChallengeBufferDisplay.js b/src/components/ChallengeBufferDisplay.js index bd852e8..ba12a86 100644 --- a/src/components/ChallengeBufferDisplay.js +++ b/src/components/ChallengeBufferDisplay.js @@ -22,37 +22,38 @@ function ChallengeBufferDisplay(props) { // } // const {morseCharBuffer, setMorseCharBuffer} = useContext(MorseBufferContext) - const morseLetters = props.morseLetters - console.log('morseLetters', morseLetters); - const setMorseCharBuffer = props.setMorseCharBuffer + const morseArray = props.morseArray + let incorrectMorseIndexes = props.incorrectMorseIndexes + console.log('morseArray', morseArray); + let ditDahs = [] - let alphanumeric = '' - let incorrectIndex = props.incorrectIndex + let alphanumeric = [] - for (let i in morseLetters) { - let morseChar = morseLetters[i] - alphanumeric += morseCode[morseChar] - - let cn = '' - console.log('incorrectIndex', incorrectIndex); - console.log('i', i); + for (let i in morseArray) { + let morseChar = morseArray[i] - cn = (incorrectIndex === Number(i)) ? 'morseError' : '' - ditDahs.push({morseChar}) + // Alphanumeric + let alphaClass = (incorrectMorseIndexes.includes(Number(i))) ? 'strike' : '' + alphanumeric.push({morseCode[morseChar].toUpperCase()}) + + // DitDahs + console.log('>>> incorrectMorseIndexes', incorrectMorseIndexes); + let ditDahClass = (incorrectMorseIndexes.includes(Number(i))) ? 'morseError' : '' + ditDahs.push({morseChar}) ditDahs.push( ) } - if (incorrectIndex) { - setTimeout(() => { - setMorseCharBuffer(prev => prev.slice(0,-1)) - }, 3000) - } + // if (incorrectIndex) { + // setTimeout(() => { + // setMorseCharBuffer(prev => prev.slice(0,prev.length-2)) + // }, 500) + // } return (
- {alphanumeric.toUpperCase()} + {alphanumeric}
diff --git a/src/components/ChallengeWord.js b/src/components/ChallengeWord.js index 5c5f944..d4d9e07 100644 --- a/src/components/ChallengeWord.js +++ b/src/components/ChallengeWord.js @@ -1,7 +1,29 @@ import React from "react" export default React.memo(function ChallengeWord(props) { + + const word = props.word + const correctCharIndexes = props.correctCharIndexes + const incorrectCharIndex = props.incorrectCharIndex + + let challengeLetters = word.split('') + + let spannedWord = challengeLetters.map((letter,index) => { + + let className = 'cLetter' + + if (incorrectCharIndex === index) { + className = 'cLetter morseError' + } else if (correctCharIndexes.includes(index)) { + className = 'cLetter correct' + } + + return ( + {letter} + ) + }) + return ( -
{props.word}
+
{spannedWord}
) }) \ No newline at end of file diff --git a/src/css/App.css b/src/css/App.css index 4ce18a8..0081469 100644 --- a/src/css/App.css +++ b/src/css/App.css @@ -125,11 +125,11 @@ html, body { } .paddle#left { - border-radius: 50px 0 0 50px; + border-radius: 20% 0 0 20%; } .paddle#right { - border-radius: 0 50px 50px 0; + border-radius: 0 20% 20% 0; } .paddle.showPaddles { @@ -177,6 +177,10 @@ html, body { margin: 1px; } +.strike { + text-decoration: line-through; +} + #morseBufferDisplay, #challengeBufferDisplay { display: -webkit-box; display: -ms-flexbox; diff --git a/src/css/App.css.map b/src/css/App.css.map index 8d9388f..5620025 100644 --- a/src/css/App.css.map +++ b/src/css/App.css.map @@ -1,6 +1,6 @@ { "version": 3, - "mappings": "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", + "mappings": "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", "sources": [ "../scss/App.scss" ], diff --git a/src/hooks/useElectronicKey.js b/src/hooks/useElectronicKey.js index a46b0ab..0e0c5e0 100644 --- a/src/hooks/useElectronicKey.js +++ b/src/hooks/useElectronicKey.js @@ -11,7 +11,7 @@ function useElectronicKey(gameMode) { const timingUnit = config.timingUnit let ratio = .2 - const ditMaxTime = 85 // ditMaxTime * 0.365 to get ms, e.g. 85 * 0.365 ~= 31ms + const ditMaxTime = 70 // ditMaxTime * 0.365 to get ms, e.g. 85 * 0.365 ~= 31ms const letterGapMinTime = ditMaxTime*ratio*3 //config.practiceSpeed.normal*3 const wordGapMaxTime = ditMaxTime*ratio*7 // config.practiceSpeed.normal*7 diff --git a/src/hooks/useStraightKey.js b/src/hooks/useStraightKey.js index d49b8c8..26fd27f 100644 --- a/src/hooks/useStraightKey.js +++ b/src/hooks/useStraightKey.js @@ -44,6 +44,7 @@ function useStraightKey(gameMode) { function handleInputStart(event) { event.preventDefault() + console.log("down", event.keyCode); if (isRunning) { return @@ -90,17 +91,18 @@ function useStraightKey(gameMode) { function handleInputEnd(event) { event.preventDefault() + console.log("up", event.keyCode); if (isRunning) { - isRunning = false if ((event.keyCode !== 32 && event.target.id !== "morseButton" && event.target.id !== "left" && event.target.id !== "right") || - (event.repeat)) { + (event.repeat)) { return } - + isRunning = false + // console.log('charTime:', charTime); if (charTime <= ditMaxTime) { setMorseCharBuffer(prev => prev + '.') diff --git a/src/scss/App.scss b/src/scss/App.scss index 82161b7..4113eaa 100644 --- a/src/scss/App.scss +++ b/src/scss/App.scss @@ -92,10 +92,10 @@ html, body { transition: all 500ms ease-in-out; } .paddle#left { - border-radius: 50px 0 0 50px; + border-radius: 20% 0 0 20%; } .paddle#right { - border-radius: 0 50px 50px 0; + border-radius: 0 20% 20% 0; } .paddle.showPaddles { width: 250px; @@ -130,6 +130,11 @@ html, body { margin: 1px; } } + +.strike { + text-decoration: line-through; +} + #morseBufferDisplay, #challengeBufferDisplay { display: flex; justify-content: center;