Giter Site home page Giter Site logo

hyper-dragon / dgtangel Goto Github PK

View Code? Open in Web Editor NEW
5.0 2.0 0.0 405.38 MB

'The Ultimate Focus Mode'. Play online with your DGT Board, mismatch detection, voice alerts (for moves and time remaining) and a 'virtual' clock.

License: GNU General Public License v3.0

HTML 20.28% C# 52.00% CSS 0.98% JavaScript 8.78% PowerShell 0.33% ShaderLab 15.01% HLSL 2.61%
chess dgt chessdotcom eboard e-board

dgtangel's Introduction

DgtAngel

Website monip.org Cherub Build CodeQL JS

Play online with your DGT Board, mismatch detection, voice alerts (for moves and time remaining) and a 'virtual' clock. This project IS NOT affiliated with either DGT or Chess.com in any way.

It is designed to be be a passive addition to the play experience and does not directly interact with any web sites directly to work. Think of it as nothing more than a casual observer. An observer that will let you know if your board is out of sync with the screen and how much time you have left.

Usage and Installation

For the avoidance of duplication go check out the github pages site.

Dependencies

  • DGT Live Chess Software v2.2.5 Download
  • Chess.com in page html (live board) as of Sep 2021

Contributing

PRs Welcome Open in Visual Studio Code

Pull requests are welcome. If you want to make any significant changes then please open an issue first so that they can be discussed.

This project consits of two distinct components with their own separate development guides.

  • sourceExt is the Chrome Extension (Javascript)
  • source is the Cherub Client (.Net Core)

License

GPLv3 license

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

Support and Feedback

Got a problem or even a great idea...

  • File a bug report here.
  • Make a feature request here.

Donate

This software was written by me, initially for me. I decided to put in the extra work required to make it available to you. If you use it regularly then please consider supporting the project with a donation. No pressure. The links are on the side.


image

dgtangel's People

Contributors

dependabot[bot] avatar hyper-dragon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

dgtangel's Issues

Wording for Position mismatch if no move replayed

The software says "Position mismatch" if one replays the opponent's move incorrectly or does not replay the opponent's move within the specified delay.

For the second case, that is a bit disturbing. That is because the message is like an error message. But sometimes, one is just too slow to replay the move within the delay.

A message like "Move not replayed" is more user-friendly when one did not replay any move within the specified delay.

One might also repeat the played move, like "Bishop c5 not replayed".

Add a 'Broadcast' mode to the virtual clock

Is your feature request related to a problem? Please describe.
Just a nice to have

Describe the solution you'd like
A 'Virtual Clock' that does not display the CDC board

Describe alternatives you've considered
Set a tournament in Live Chess

Additional context
none

Persist settings between runs

Is your feature request related to a problem? Please describe.

Remember settings on close - it's tediuos to keep changing them on every start

Publish error in VS 17.2.0 Preview 4.0

Publish Error

VS

Publish has encountered an error.
Publish has encountered an error. We were unable to determine the cause of the error. Check the output log for more details. 

Log File

21/04/2022 19:03:40
System.AggregateException: One or more errors occurred. ---> Microsoft.WebTools.Shared.Exceptions.WebToolsException: Publish has encountered an error. We were unable to determine the cause of the error. Check the output log for more details. 
   --- End of inner exception stack trace ---
---> (Inner Exception #0) Microsoft.WebTools.Shared.Exceptions.WebToolsException: Publish has encountered an error. We were unable to determine the cause of the error. Check the output log for more details. <---

Microsoft.WebTools.Shared.Exceptions.WebToolsException: Publish has encountered an error. We were unable to determine the cause of the error. Check the output log for more details. 

Wording for Position mismatch when not replayed

The software says " Position mismatch " if one replays the opponent's move incorrectly or does not replay the opponent's move within the specified delay.

For the second case, that is a bit disturbing, as, for some positions, one might want to wait to replay the move intentionally.

A message like " Move not replayed " is more user-friendly when one did not replay any move within the specified delay.

One might also repeat the played move, like "Bishop c5 not replayed".

Closed because duplicate of #75 (could not set to duplicate)

UnspecifiedError calling waveOutOpen

Describe the bug
"Fatal error partway through a game. The voice announcements for time and Mismatch detection still worked but no more move announcements were made"

To Reproduce
Randomly occurred

Expected behavior
Audio plays

Screenshots
VL8u7eM

Desktop (please complete the following information):

  • Version 0.3.1

Additional context
Raised by BaronVonChickenpants

Play Board Support

Is your feature request related to a problem? Please describe.
The Live board is to be discontinued

Describe the solution you'd like
Support for the 'play' board

Describe alternatives you've considered
No alternatives at this time

Additional context
n/a

Immediate Position mismatch message

If one does not replay the opponent's move within the specified delay, or one replays a wrong move, the software says, "Position mismatch".

Example: One plays e4 on the board, the opponent replies with d5, but one replays e5 on the board instead. After the delay, the software says there is a position mismatch.

But if after the first move replay there is a position mismatch, it would be much better if the software immediately signals the position mismatch.

For further wrong replays, one must not repeat the message. It is fine (as is already the case) to only speak a message when the position is correct again.

Change the default time for the matcher delay

Is your feature request related to a problem? Please describe.
The matcher is a bit fast at 4 seconds.

Describe the solution you'd like
Change the default to 5 or 6

Describe alternatives you've considered
Allow saving of settings

Beep mode is suppressing both black and white

Describe the bug
Beep mode is supressing both black and white

To Reproduce
Steps to reproduce the behavior:

  1. Tyrn on beep mode
  2. Play a game

Expected behavior
The other players moves should still be voiced

Stop the virtual clock showing the mismatched boards so quickly

Is your feature request related to a problem? Please describe.
Stop the virtual clock showing the mismatched boards so quickly

Describe the solution you'd like
A single page clock

Describe alternatives you've considered
None

Additional context
Requested by user

Own move not announced if opponent premoves

Usually, when I make a move on the DGT board, like Bc4, the software announces the move, "Bishop c4". That is indeed also helpful to check if my move was registered.

But if my opponent already premoved, that is not the case.

Example: I play e4, and the software announces e4. The opponent replies with e5, and the software announces e5. The opponent now premoves Nf6. I play Bc4, but the software does not announce Bc4. The next move it announces is Nf6.

Play sound to confirm correct move reply on board

As an idea, one could also play a slightly different quick sound to confirm the correct opponent move replay. The Acid Ape Chess software provides both sounds, which I like.

See issue Own move not announced if opponent premoves #77

Mismatch Detection message is very fast

I've found that the mismatch detection voice message is very fast to be played. If I don't make the opponents move almost immediately on the board then the mismatch detection / mismatch resolved messages get played.

Perhaps this could be tweakable via a setting, or have a longer grace period for the message to trigger.

Perhaps if the move isn't made at all it should repeat the opponent move announcement at a certain frequency, and save the mismatch detection message for when you've played the wrong opponents move

Didnt announce the move giving checkmate

I just played a game, my opponent gave checkmate but the mate giving move wasn't announced. I was sat waiting for my opponents move when the game had actually finished. It wasnt until I glanced over at my PC screen that I realised the game was done

Expanding your work for Offline-Play to create a versatile and configurable UCI-Engine for multi-platform (APP and OS) support

Is your feature request related to a problem? Please describe.
It would be great to expand this work to also work together with Offline-Chess GUIs. Lichess is great but online only and there are a number of GUIs out there that would benefit from a connected eBoard as GUI device, but are not supported i.e. due to the lack of DGT drivers like on Mac OS - currently it is not possible to use GUIs like Hiarcs Chess Explorer on Mac OS with the DGT-LiveChess framework, which is the only one currently supported on Mac OS.

Describe the solution you'd like
Implementation-wise I am thinking to create a versatile UCI Chess Engine that could be compiled for any OS which then could interact as a wrapper between the natively installed GUI such as Hiarcs, Arena etc. and allows to pass-through the I/O to a real chess engine of user's choice so that this would allow someone to play with any GUI and engine while using the DGT-board as input and the virtual board by the GUI and/or sound as output.

Describe alternatives you've considered
Picochess has some support for Linux, put I am not able to get this to run on a Mac.

Additional context
Add any other context or screenshots about the feature request here.

Restore 'Last Move' on the virtual clock

Is your feature request related to a problem? Please describe.
The last move used to be displayed on the virtual clock

Describe the solution you'd like
Restore it!

Describe alternatives you've considered
None

Additional context
None

Angel stops sending updates when monitor powers off

Describe the bug
The other seems to happen when my monitor enters power-saving mode. Even though the boards DO match and DGT LiveChess and Cherub move announcement continue, Cherub Client keeps announcing "mismatch detected." Looking at the boards tab, the chess.com board is not being read correctly (seems to stuck at the position when the screen turned off) for the purposes of mismatch detection. Ideally this could be fixed although I realize I could probably just change my power settings so that the screen stays on for >1 hr.

To Reproduce
Allow the monitor to go to sleep

Expected behavior
Cherub to continue working

Ghost moves/sync issues on CDC when playing

Describe the bug
Ghosts moves generated while playing on CDC.

To Reproduce
Steps to reproduce the behavior:

  1. Play a game with a board exhibiting this behaviour

Expected behavior
No ghost moves.

Screenshots
pending

Additional context
This problem is probably routed in the fact that the stableboard timeout can't be set in Live Chess

Add a second voice for move announcements

Is your feature request related to a problem? Please describe.
Default voice not always clear

Describe the solution you'd like
A new voice set

Describe alternatives you've considered
n/a

Additional context
Requested by 2 separate users

Build Error

Describe the bug
Severity Code Description Project File Line Suppression State
Error MSB3270 There was a mismatch between the processor architecture of the project being built "MSIL" and the processor architecture of the reference "D:\VsProjects-HD\DgtAngel\source\DgtCherub\bin\Debug\net6.0-windows7.0\DgtCherub.dll", "x86". This mismatch may cause runtime failures. Please consider changing the targeted processor architecture of your project through the Configuration Manager so as to align the processor architectures between your project and references, or take a dependency on references with a processor architecture that matches the targeted processor architecture of your project. DgtCherubPackaging C:\Program Files\Microsoft Visual Studio\2022\Preview\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets 2298

To Reproduce
Steps to reproduce the behavior:
Build the solution

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Additional context
Updating to 6 from 6 preview

Tidy up web front end

Change List

  • Fix text
  • Switch to new graphics
  • Restrict to single clock (for now)
  • Add clock link on the QR Code Panel
  • Update favicon

Version 0.4 Pre-Release

Checklist

[ ] Update version number in source
[ ] Update site docs
[ ] Add sourceWH readme
[ ] Create WH gif
[ ] Investigate updating the store packaging?

Must Chrome be in the foreground?

If I start the game using Chrome but then put the Chrome window in the background, the Cherub client gets out of sync.

Example:
I play d4 on the DGT board and put Chrome in the background. Now, the opponent replies with d5. I replay d5 on the board and the move is sent to chess.com as I understand, but now the Cherub client tells me, "Position mismatch". Somehow now the Cherub client does not see the current position on chess.com. Must the Chrome window stay in the foreground, so the Cherub client sees the chess.com game?

Chrome window not active 4

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.