Giter Club home page Giter Club logo

peterhughes / sharpchess Goto Github PK

View Code? Open in Web Editor NEW
132.0 132.0 87.0 910 KB

SharpChess is a free, open-source computer application that enables you to play chess against the computer. SharpChess is also a chess engine that competes in computer vs. computer chess tournaments. The main goal of this project is to improve SharpChess's chess playing strength. Find out more about chess programming at SharpChess.com or the excellent: http://chessprogramming.wikispaces.com/

Home Page: SharpChess.com

License: GNU General Public License v3.0

C# 90.09% HTML 9.91%

sharpchess's People

Contributors

peterhughes avatar zass30 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sharpchess's Issues

abandonware ?

Has not been updated in 4 years, the official site at http://SharpChess.com has a link to filedropper.com which always gets redirected to filedroppers homepage.
where to get the binaries in 2018/2019?

Use Path.Combine when baking FullPath yourself

This will make SharpChess compatible with Mono (so it becomes cross-platform).

In project SharpChess in file frmMain.cs line 2946 (in method frmMain_Load) there is a line where you combine absolute path to Documents folder with save file name ('BackupGame.sharpchess'). The line looks like this:

Game.BackupGamePath =
Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\BackupGame.sharpchess";

Build from sources is OK.

But when running in Ubuntu Linux with Mono 2.10.6 this line produces completely wrong path due to backslash symbol '' and app crashes with unhandled exception.

I suggest you to replace this line with

Game.BackupGamePath = System.IO.Path.Combine( Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "BackupGame.sharpchess");

Then SharpChess works well in Ubuntu Linux also.

Permanent Brain

This function adds a lot of power and energy and memory saving to the engine, stockfish and hiarcs also has it, however I think they can be improved, I am working on it currently but debugging eats my time...

Game raise exception in this case

!Game FEN="" TurnNo="119" WhitePlayer="Human" BlackPlayer="Computer" BoardOrientation="White" Version="2.6.9.0" DifficultyLevel="10" ClockMoves="120" ClockSeconds="1800" MaximumSearchDepth="0" Pondering="0" UseRandomOpeningMoves="1"+
!Move MoveNo="1" Name="Standard" From="e2" To="e4" SecondsElapsed="0" /+
!Move MoveNo="1" Name="Standard" From="g7" To="g6" SecondsElapsed="0" /+
!Move MoveNo="2" Name="Standard" From="d2" To="d4" SecondsElapsed="2" /+
!Move MoveNo="2" Name="Standard" From="f8" To="g7" SecondsElapsed="0" /+
!Move MoveNo="3" Name="Standard" From="g1" To="f3" SecondsElapsed="30" /+
!Move MoveNo="3" Name="Standard" From="d7" To="d6" SecondsElapsed="0" /+
!Move MoveNo="4" Name="Standard" From="f1" To="b5" SecondsElapsed="48" /+
!Move MoveNo="4" Name="Standard" From="c7" To="c6" SecondsElapsed="10" /+
!Move MoveNo="5" Name="Standard" From="b5" To="a4" SecondsElapsed="63" /+
!Move MoveNo="5" Name="Standard" From="g8" To="f6" SecondsElapsed="33" /+
!Move MoveNo="6" Name="Standard" From="e4" To="e5" SecondsElapsed="123" /+
!Move MoveNo="6" Name="Standard" From="d6" To="e5" SecondsElapsed="41" /+
!Move MoveNo="7" Name="Standard" From="f3" To="e5" SecondsElapsed="126" /+
!Move MoveNo="7" Name="Standard" From="b8" To="d7" SecondsElapsed="47" /+
!Move MoveNo="8" Name="Standard" From="e5" To="d7" SecondsElapsed="131" /+
!Move MoveNo="8" Name="Standard" From="f6" To="d7" SecondsElapsed="53" /+
!Move MoveNo="9" Name="Standard" From="c2" To="c3" SecondsElapsed="135" /+
!Move MoveNo="9" Name="CastleKingSide" From="e8" To="g8" SecondsElapsed="66" /+
!Move MoveNo="10" Name="CastleKingSide" From="e1" To="g1" SecondsElapsed="135" /+
!Move MoveNo="10" Name="Standard" From="e7" To="e5" SecondsElapsed="78" /+
!Move MoveNo="11" Name="Standard" From="c1" To="e3" SecondsElapsed="149" /+
!Move MoveNo="11" Name="Standard" From="e5" To="d4" SecondsElapsed="89" /+
!Move MoveNo="12" Name="Standard" From="e3" To="d4" SecondsElapsed="152" /+
!Move MoveNo="12" Name="Standard" From="g7" To="d4" SecondsElapsed="99" /+
!Move MoveNo="13" Name="Standard" From="d1" To="d4" SecondsElapsed="155" /+
!Move MoveNo="13" Name="Standard" From="d7" To="b6" SecondsElapsed="116" /+
!Move MoveNo="14" Name="Standard" From="d4" To="d8" SecondsElapsed="187" /+
!Move MoveNo="14" Name="Standard" From="f8" To="d8" SecondsElapsed="122" /+
!Move MoveNo="15" Name="Standard" From="a4" To="b3" SecondsElapsed="192" /+
!Move MoveNo="15" Name="Standard" From="c8" To="f5" SecondsElapsed="131" /+
!Move MoveNo="16" Name="Standard" From="b1" To="a3" SecondsElapsed="197" /+
!Move MoveNo="16" Name="Standard" From="d8" To="d2" SecondsElapsed="140" /+
!Move MoveNo="17" Name="Standard" From="a3" To="c4" SecondsElapsed="232" /+
!Move MoveNo="17" Name="Standard" From="b6" To="c4" SecondsElapsed="147" /+
!Move MoveNo="18" Name="Standard" From="b3" To="c4" SecondsElapsed="235" /+
!Move MoveNo="18" Name="Standard" From="b7" To="b5" SecondsElapsed="166" /+
!Move MoveNo="19" Name="Standard" From="c4" To="b3" SecondsElapsed="240" /+
!Move MoveNo="19" Name="Standard" From="a7" To="a5" SecondsElapsed="181" /+
!Move MoveNo="20" Name="Standard" From="a2" To="a4" SecondsElapsed="240" /+
!Move MoveNo="20" Name="Standard" From="d2" To="b2" SecondsElapsed="195" /+
!Move MoveNo="21" Name="Standard" From="b3" To="d1" SecondsElapsed="257" /+
!Move MoveNo="21" Name="Standard" From="f5" To="e4" SecondsElapsed="212" /+
!Move MoveNo="22" Name="Standard" From="a4" To="b5" SecondsElapsed="266" /+
!Move MoveNo="22" Name="Standard" From="c6" To="b5" SecondsElapsed="226" /+
!Move MoveNo="23" Name="Standard" From="f1" To="e1" SecondsElapsed="275" /+
!Move MoveNo="23" Name="Standard" From="f7" To="f5" SecondsElapsed="242" /+
!Move MoveNo="24" Name="Standard" From="f2" To="f3" SecondsElapsed="280" /+
!Move MoveNo="24" Name="Standard" From="e4" To="c6" SecondsElapsed="261" /+
!Move MoveNo="25" Name="Standard" From="e1" To="e2" SecondsElapsed="294" /+
!Move MoveNo="25" Name="Standard" From="b2" To="e2" SecondsElapsed="267" /+
!Move MoveNo="26" Name="Standard" From="d1" To="e2" SecondsElapsed="296" /+
!Move MoveNo="26" Name="Standard" From="a5" To="a4" SecondsElapsed="272" /+
!Move MoveNo="27" Name="Standard" From="a1" To="a3" SecondsElapsed="296" /+
!Move MoveNo="27" Name="Standard" From="g6" To="g5" SecondsElapsed="292" /+
!Move MoveNo="28" Name="Standard" From="h2" To="h3" SecondsElapsed="319" /+
!Move MoveNo="28" Name="Standard" From="f5" To="f4" SecondsElapsed="306" /+
!Move MoveNo="29" Name="Standard" From="g1" To="f1" SecondsElapsed="322" /+
!Move MoveNo="29" Name="Standard" From="g8" To="g7" SecondsElapsed="315" /+
!Move MoveNo="30" Name="Standard" From="f1" To="e1" SecondsElapsed="325" /+
!Move MoveNo="30" Name="Standard" From="h7" To="h5" SecondsElapsed="323" /+
!Move MoveNo="31" Name="Standard" From="e1" To="d2" SecondsElapsed="332" /+
!Move MoveNo="31" Name="Standard" From="a8" To="d8" SecondsElapsed="335" /+
!Move MoveNo="32" Name="Standard" From="d2" To="e1" SecondsElapsed="332" /+
!Move MoveNo="32" Name="Standard" From="h5" To="h4" SecondsElapsed="351" /+
!Move MoveNo="33" Name="Standard" From="a3" To="a1" SecondsElapsed="347" /+
!Move MoveNo="33" Name="Standard" From="d8" To="a8" SecondsElapsed="366" /+
!Move MoveNo="34" Name="Standard" From="e1" To="d2" SecondsElapsed="359" /+
!Move MoveNo="34" Name="Standard" From="a4" To="a3" SecondsElapsed="382" /+
!Move MoveNo="35" Name="Standard" From="d2" To="c2" SecondsElapsed="363" /+
!Move MoveNo="35" Name="Standard" From="a8" To="a4" SecondsElapsed="397" /+
!Move MoveNo="36" Name="Standard" From="c2" To="b3" SecondsElapsed="363" /+
!Move MoveNo="36" Name="Standard" From="c6" To="d5" SecondsElapsed="409" /+
!Move MoveNo="37" Name="Standard" From="c3" To="c4" SecondsElapsed="365" /+
!Move MoveNo="37" Name="Standard" From="d5" To="c4" SecondsElapsed="416" /+
!Move MoveNo="38" Name="Standard" From="e2" To="c4" SecondsElapsed="367" /+
!Move MoveNo="38" Name="Standard" From="a4" To="c4" SecondsElapsed="436" /+
!Move MoveNo="39" Name="Standard" From="a1" To="a3" SecondsElapsed="370" /+
!Move MoveNo="39" Name="Standard" From="g7" To="f7" SecondsElapsed="451" /+
!Move MoveNo="40" Name="Standard" From="a3" To="a6" SecondsElapsed="387" /+
!Move MoveNo="40" Name="Standard" From="c4" To="d4" SecondsElapsed="461" /+
!Move MoveNo="41" Name="Standard" From="b3" To="c2" SecondsElapsed="395" /+
!Move MoveNo="41" Name="Standard" From="b5" To="b4" SecondsElapsed="471" /+
!Move MoveNo="42" Name="Standard" From="a6" To="a4" SecondsElapsed="400" /+
!Move MoveNo="42" Name="Standard" From="d4" To="c4" SecondsElapsed="482" /+
!Move MoveNo="43" Name="Standard" From="c2" To="d3" SecondsElapsed="400" /+
!Move MoveNo="43" Name="Standard" From="c4" To="c3" SecondsElapsed="489" /+
!Move MoveNo="44" Name="Standard" From="d3" To="d4" SecondsElapsed="405" /+
!Move MoveNo="44" Name="Standard" From="c3" To="c2" SecondsElapsed="499" /+
!Move MoveNo="45" Name="Standard" From="a4" To="b4" SecondsElapsed="418" /+
!Move MoveNo="45" Name="Standard" From="c2" To="g2" SecondsElapsed="512" /+
!Move MoveNo="46" Name="Standard" From="d4" To="e5" SecondsElapsed="420" /+
!Move MoveNo="46" Name="Standard" From="g2" To="d2" SecondsElapsed="518" /+
!Move MoveNo="47" Name="Standard" From="b4" To="b7" SecondsElapsed="427" /+
!Move MoveNo="47" Name="Standard" From="f7" To="g6" SecondsElapsed="531" /+
!Move MoveNo="48" Name="Standard" From="b7" To="b6" SecondsElapsed="435" /+
!Move MoveNo="48" Name="Standard" From="g6" To="f7" SecondsElapsed="542" /+
!Move MoveNo="49" Name="Standard" From="e5" To="f5" SecondsElapsed="438" /+
!Move MoveNo="49" Name="Standard" From="d2" To="d5" SecondsElapsed="577" /+
!Move MoveNo="50" Name="Standard" From="f5" To="g4" SecondsElapsed="440" /+
!Move MoveNo="50" Name="Standard" From="d5" To="e5" SecondsElapsed="584" /+
!Move MoveNo="51" Name="Standard" From="b6" To="h6" SecondsElapsed="451" /+
!Move MoveNo="51" Name="Standard" From="f7" To="g7" SecondsElapsed="591" /+
!Move MoveNo="52" Name="Standard" From="h6" To="h5" SecondsElapsed="454" /+
!Move MoveNo="52" Name="Standard" From="g7" To="g6" SecondsElapsed="597" /+
!Move MoveNo="53" Name="Standard" From="h5" To="h8" SecondsElapsed="457" /+
!Move MoveNo="53" Name="Standard" From="e5" To="b5" SecondsElapsed="608" /+
!Move MoveNo="54" Name="Standard" From="h8" To="g8" SecondsElapsed="464" /+
!Move MoveNo="54" Name="Standard" From="g6" To="h6" SecondsElapsed="614" /+
!Move MoveNo="55" Name="Standard" From="g8" To="f8" SecondsElapsed="475" /+
!Move MoveNo="55" Name="Standard" From="h6" To="g6" SecondsElapsed="630" /+
!Move MoveNo="56" Name="Standard" From="f8" To="g8" SecondsElapsed="484" /+
!Move MoveNo="56" Name="Standard" From="g6" To="h6" SecondsElapsed="636" /+
!Move MoveNo="57" Name="Standard" From="g8" To="f8" SecondsElapsed="491" /+
!Move MoveNo="57" Name="Standard" From="h6" To="g7" SecondsElapsed="644" /+
!Move MoveNo="58" Name="Standard" From="f8" To="f5" SecondsElapsed="495" /+
!Move MoveNo="58" Name="Standard" From="b5" To="f5" SecondsElapsed="650" /+
!Move MoveNo="59" Name="Standard" From="g4" To="f5" SecondsElapsed="505" /+
!Move MoveNo="59" Name="Standard" From="g7" To="h6" SecondsElapsed="662" /+
!Move MoveNo="60" Name="Standard" From="f5" To="g4" SecondsElapsed="506" /+
!/Game+

Game should stop after getting in final state

Currently after getting stalemate by repetition (and result 1/2-1/2) it is possible to press 'Think' button. Then computer player will make next move and the game continues.

I feel this is very wrong behaviour: the game should fully stop after getting in final states such as checkmate and stalemate.

Make ComputerPlayer think (and move) automatically

Currently I observe very strange issue: computer player will never move until I press Ctrl-T (item 'Think' from main menu).

It looks like this behaviour is by design, but it is too boring to press neccessary button every computer's ply.

Copy - paste bug in SharpChess Brain

Hi,

I am about to embark on an attempt to implement a chess engine written in c#. Researching if there are existing reusable WinBoard protocol implementations I came across the SharpChess codebase here on GitHub.

As I peeked into the code I found an apparent copy – paste bug around line 308 of Brain.cs.

The code reads:

            if (this.MyPlayer.CanClaimInsufficientMaterialDraw)
            {
                WinBoard.SendDrawByFiftyMoveRule();
                return;
            }

But should read:

            if (this.MyPlayer.CanClaimInsufficientMaterialDraw)
            {
                WinBoard.SendDrawByInsufficientMaterial();
                return;
            }

I can’t be arsed to fork the code and create a pull request, so I'm posting like this instead.

This is no showstopper as the draw will be claimed regardless. But the reason fo the claim might look strange to a human reader.

Regards!

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.