RonSijm / ButtFish

Effortlessly transmitting Morse Code of chess moves to your butthole 💝
1.43k stars 29 forks source link

Add support for more modes and information encoding. #19

Closed eirikove closed 2 years ago

eirikove commented 2 years ago

Beginner support I'm not very good at chess, so I would like the letter code for the chess piece that should be moved in addition to the start and end position. QD1 => RD5 (Queen on D1 takes Rook on D5)

More modes I play a lot of blitz chess which requires transmitting the information with shorter delays between signals. a: . - => a: .- Note: This mode also saves battery life which is good for the environment.

Different encoding A lot of users don't understand morse code so I would like support for a different encoding, for example each signal representing a count towards a letter's position in the alphabet:

Morse       Count     Blitz
a: . -      a: -      a: -
b: . -      b: - -    b: --
c: - . - .  c: - - -  c: ---
... and so on

To please the grammar gods, it might be wise to include upper and lowercase support too. Capital letters in the string can be represented with a . before the character.

q = - - - - - - - - - - - - - - - - - becomes Q = .----------------- (for blitz) Note: This is only usable with the count configuration.

Digits can be represented with dot signals: QD1 => QD5 on blitz becomes .----------------- .---- . (double timeout) .----------------- .---- .....

Accessibility It could also be useful to provide full context for people with learning disabilities, as letter codes can become confusing. I would suggest adding support for transmitting the full name of the piece, and the phonetic name of the square. At that point you might as well add "on" and "to". {piece} on {phoneticName}{digit} to {piece} on {phoneticName}{digit}

Internationalization We all know the Brits don't like following commands unless politely asked to, thinking it was their idea, or that it comes with some sort of banter. Adding support for making the commands more social would make this product much more attractive for them.

"Moving the {piece1} on {phoneticName1}{digit1} to {piece2} on {phoneticName2}{digit2} seems like a good idea what do you think mate" "Would you please be so kind as to move {piece1} on {phoneticName1}{digit1} to {piece2} on {phoneticName2}{digit2}" "We will have a proper good laugh if you now take the {piece2} on {phoneticName2}{digit2} using your {piece1} on {phoneticName1}{digit1} and then we will have tea and biscuits after"

I've created a simple JSFiddle to illustrate the running of this code. https://jsfiddle.net/80z965nt/1/

I have a lot of British chess-playing beginner-level friends with learning disabilities so please implement this as quickly as possible.

RonSijm commented 2 years ago

I'm not very good at chess,

people with learning disabilities,

the Brits

Sir, with all due respect - but every paragraph is more redundant than the previous one...

I don't think you understand the purpose of this project... This is build for the elite of the elite, the top 0.1% of the chess world... the top #39 in the World...

shorter delays between signals.

You can change the timing here: https://github.com/RonSijm/ButtFish/blob/main/RonSijm.ButtFish/Encoders/MorseConfig.cs. 400ms per time unit seems to work pretty well. I've tried shorter delays, and hit rate limits of devices, not allowing me to send signals that fast

Different encoding

There are different encodings. See the readme. This is a simplified one: https://github.com/RonSijm/ButtFish/blob/main/RonSijm.ButtFish/Encoders/SimplifiedPulseEncoder.cs

please implement this as quickly as possible.

I don't work on demand or "as quickly as possible" unless you send at least 1 eth to my wallet, or equal amount of my paypal