mirror of
https://github.com/monkeytypegame/monkeytype.git
synced 2026-01-12 02:14:34 +08:00
feat: create new sPoNgEcAsE and modify raNDOmcASe to be random (@Justiniscoding) (#7295)
### Description The old rAnDoMcAsE mode was not actually random and more accurately reflected [sponge case](https://en.wikipedia.org/wiki/Alternating_caps). I modified the old rAnDoMcAsE mode and turned it into raNDOmcASe, where it calls `Math.random()` for every letter and bases the capitalization of of it. The old code from rAnDoMcAsE was moved to a separate sPoNgEcAsE funbox mode. ### Changes - `rAnDoMcAsE` becomes `raNDOmcASe` and has a 50% chance to capitalize every letter. - `sPoNgEcAsE` is added as a funbox mode and contains the old functionality of `rAnDoMcAsE` - "i KINda LikE HoW inEFFICIeNt QwErtY Is." challenge is updated to use the updated `raNDOmcASe` mode as well as a new title that is in proper random case. ### Checks - [x] Adding/modifying Typescript code? - [ ] I have used `qs`, `qsa` or `qsr` instead of JQuery selectors. - [ ] Adding quotes? - [ ] Make sure to include translations for the quotes in the description (or another comment) so we can verify their content. - [ ] Adding a language? - Make sure to follow the [languages documentation](https://github.com/monkeytypegame/monkeytype/blob/master/docs/LANGUAGES.md) - [ ] Add language to `packages/schemas/src/languages.ts` - [ ] Add language to exactly one group in `frontend/src/ts/constants/languages.ts` - [ ] Add language json file to `frontend/static/languages` - [ ] Adding a theme? - Make sure to follow the [themes documentation](https://github.com/monkeytypegame/monkeytype/blob/master/docs/THEMES.md) - [ ] Add theme to `packages/schemas/src/themes.ts` - [ ] Add theme to `frontend/src/ts/constants/themes.ts` - [ ] Add theme css file to `frontend/static/themes` - [ ] Add some screenshots of the theme, especially with different test settings (colorful, flip colors) to your pull request - [ ] Adding a layout? - [ ] Make sure to follow the [layouts documentation](https://github.com/monkeytypegame/monkeytype/blob/master/docs/LAYOUTS.md) - [ ] Add layout to `packages/schemas/src/layouts.ts` - [ ] Add layout json file to `frontend/static/layouts` - [ ] Adding a font? - Make sure to follow the [themes documentation](https://github.com/monkeytypegame/monkeytype/blob/master/docs/FONTS.md) - [ ] Add font file to `frontend/static/webfonts` - [ ] Add font to `packages/schemas/src/fonts.ts` - [ ] Add font to `frontend/src/ts/constants/fonts.ts` - [ ] Check if any open issues are related to this PR; if so, be sure to tag them below. - [x] Make sure the PR title follows the Conventional Commits standard. (https://www.conventionalcommits.org for more info) - [x] Make sure to include your GitHub username prefixed with @ inside parentheses at the end of the PR title. <!-- label(optional scope): pull request title (@your_github_username) --> <!-- I know I know they seem boring but please do them, they help us and you will find out it also helps you.--> <!-- the issue(s) your PR resolves if any (delete if that is not the case) --> <!-- please also reference any issues and or PRs related to your pull request --> <!-- Also remove it if you are not following any issues. --> <!-- pro tip: you can mention an issue, PR, or discussion on GitHub by referencing its hash number e.g: [#1234](https://github.com/monkeytypegame/monkeytype/pull/1234) --> <!-- pro tip: you can press . (dot or period) in the code tab of any GitHub repo to get access to GitHub's VS Code web editor Enjoy! :) --> --------- Co-authored-by: Miodec <jack@monkeytype.com>
This commit is contained in:
parent
0c168af841
commit
4da82d0f2b
4 changed files with 37 additions and 14 deletions
|
|
@ -318,18 +318,32 @@ const list: Partial<Record<FunboxName, FunboxFunctions>> = {
|
|||
},
|
||||
rAnDoMcAsE: {
|
||||
alterText(word: string): string {
|
||||
let randomcaseword = word[0] as string;
|
||||
for (let i = 1; i < word.length; i++) {
|
||||
if (
|
||||
randomcaseword[i - 1] ===
|
||||
(randomcaseword[i - 1] as string).toUpperCase()
|
||||
) {
|
||||
randomcaseword += (word[i] as string).toLowerCase();
|
||||
let randomCaseWord = "";
|
||||
|
||||
for (let letter of word) {
|
||||
if (Math.random() < 0.5) {
|
||||
randomCaseWord += letter.toUpperCase();
|
||||
} else {
|
||||
randomcaseword += (word[i] as string).toUpperCase();
|
||||
randomCaseWord += letter.toLowerCase();
|
||||
}
|
||||
}
|
||||
return randomcaseword;
|
||||
|
||||
return randomCaseWord;
|
||||
},
|
||||
},
|
||||
sPoNgEcAsE: {
|
||||
alterText(word: string): string {
|
||||
let spongeCaseWord = "";
|
||||
|
||||
for (let i = 0; i < word.length; i++) {
|
||||
if (i % 2 === 0) {
|
||||
spongeCaseWord += word[i]?.toLowerCase();
|
||||
} else {
|
||||
spongeCaseWord += word[i]?.toUpperCase();
|
||||
}
|
||||
}
|
||||
|
||||
return spongeCaseWord;
|
||||
},
|
||||
},
|
||||
rot13: {
|
||||
|
|
|
|||
|
|
@ -613,11 +613,11 @@
|
|||
}
|
||||
},
|
||||
{
|
||||
"name": "iKiNdAlIkEhOwInEfFiCiEnTqWeRtYiS",
|
||||
"display": "I kInDa LiKe HoW iNeFfIcIeNt QwErTy Is",
|
||||
"name": "iKINdaLikEHoWinEFFICIeNtQwErtYIs.",
|
||||
"display": "i KINda LikE HoW inEFFICIeNt QwErtY Is.",
|
||||
"autoRole": true,
|
||||
"type": "funbox",
|
||||
"parameters": [["rAnDoMcAsE"], "time", 3600],
|
||||
"parameters": [["sPoNgEcAsE"], "time", 3600],
|
||||
"requirements": {
|
||||
"wpm": {
|
||||
"min": 100
|
||||
|
|
@ -626,7 +626,7 @@
|
|||
"min": 60
|
||||
},
|
||||
"funbox": {
|
||||
"exact": ["rAnDoMcAsE"]
|
||||
"exact": ["sPoNgEcAsE"]
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
|
|||
|
|
@ -114,13 +114,21 @@ const list: Record<FunboxName, FunboxMetadata> = {
|
|||
name: "arrows",
|
||||
},
|
||||
rAnDoMcAsE: {
|
||||
description: "I kInDa LiKe HoW iNeFfIcIeNt QwErTy Is.",
|
||||
description: "raNdomIze ThE CApitaLizatIon Of EveRY LeTtEr.",
|
||||
canGetPb: false,
|
||||
difficultyLevel: 2,
|
||||
properties: ["changesCapitalisation"],
|
||||
frontendFunctions: ["alterText"],
|
||||
name: "rAnDoMcAsE",
|
||||
},
|
||||
sPoNgEcAsE: {
|
||||
description: "I kInDa LiKe HoW iNeFfIcIeNt QwErTy Is.",
|
||||
canGetPb: false,
|
||||
difficultyLevel: 2,
|
||||
properties: ["changesCapitalisation"],
|
||||
frontendFunctions: ["alterText"],
|
||||
name: "sPoNgEcAsE",
|
||||
},
|
||||
capitals: {
|
||||
description: "Capitalize Every Word.",
|
||||
canGetPb: false,
|
||||
|
|
|
|||
|
|
@ -280,6 +280,7 @@ export const FunboxNameSchema = z.enum([
|
|||
"choo_choo",
|
||||
"arrows",
|
||||
"rAnDoMcAsE",
|
||||
"sPoNgEcAsE",
|
||||
"capitals",
|
||||
"layout_mirror",
|
||||
"layoutfluid",
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue