I've been lurking around this forum for a little while, and thought I would sign up and introduce myself.
My name is Peter Hughes. I'm a software developer, currently working in healthcare.
I got into chess programming around 2003, and wrote my program SharpChess2, as an open source project. It's a Winboard-compatible engine, but also has it's own native GUI. It's wholly written from scratch in C#, which is the language I enjoy using.
Having taken a break (for a few years!), I got back into chess development over Christmas, and managed to increase SharpChess's ELO by 100 points or so, up to around 1700. SharpChess has always been somewhat nobbled speed-wise, averaging around 30K NPS, but I still enjoy applying techniques to improve it where possible.
Kind regards
Peter Hughes
Greetings
Moderators: hgm, Rebel, chrisw
-
- Posts: 1342
- Joined: Wed Mar 08, 2006 9:41 pm
- Location: Morgantown, WV, USA
Re: Greetings
Welcome back to the scene will check your engine out.
-
- Posts: 268
- Joined: Sun Apr 24, 2011 12:33 am
Re: Greetings
Welcome Peter Hughes!!
Good work!!
I also was thinking in make a chess engine in C# but I see it too complicated when I just see the hashtable
I'm testing the engine right now
Good work!!
I also was thinking in make a chess engine in C# but I see it too complicated when I just see the hashtable
I'm testing the engine right now
-
- Posts: 3232
- Joined: Mon May 31, 2010 1:29 pm
- Full name: lucasart
Re: Greetings
Any chance for a Linux compile ? I hear there is a good C# compiler for Linux. If your code is portable and doesn't depend on Microsoft dot net stuff, it should be feasable. I'll gladly test it if there was a Linux compile.PeterHughes wrote:I've been lurking around this forum for a little while, and thought I would sign up and introduce myself.
My name is Peter Hughes. I'm a software developer, currently working in healthcare.
I got into chess programming around 2003, and wrote my program SharpChess2, as an open source project. It's a Winboard-compatible engine, but also has it's own native GUI. It's wholly written from scratch in C#, which is the language I enjoy using.
Having taken a break (for a few years!), I got back into chess development over Christmas, and managed to increase SharpChess's ELO by 100 points or so, up to around 1700. SharpChess has always been somewhat nobbled speed-wise, averaging around 30K NPS, but I still enjoy applying techniques to improve it where possible.
Kind regards
Peter Hughes
Re: Greetings
There's a version of SharpChess that runs on Linux, using Mono. You can see picture of SharpChess at the Mono website: SharpChess on Mono.lucasart wrote:Any chance for a Linux compile ? I hear there is a good C# compiler for Linux. If your code is portable and doesn't depend on Microsoft dot net stuff, it should be feasable. I'll gladly test it if there was a Linux compile.
Mono is basically an implementation of the DotNet framework, which enables applications written in C#, and other DotNET languages, to run on Linux, iOS, and Android. I haven't tried it myself, but it could be that the latest SharpChess will run out-of-the-box on the latest Mono.
Re: Greetings
A feature that I've recently added to SharpChess, which may interest some of you, is the Move Analysis Window.
Basically, in an attempt to make things easier for myself, from both understanding and debugging point-of-view, I created a Move Analysis window in the SharpChess GUI, which you can see below. It's probably easier to read on the URL below, which also has direct links to http://chessprogramming.wikispaces.com/.
http://sharpchess.com/?page=50%20Develo ... 20Analysis
It has been most useful to be able to actually see the move ordering assignments, as well as the extension and reduction points. Also it gives a good idea as what's happening (or not) with the branching factor.
# *PV* - Principal Variation (PV) Node score inside the Alpha-Beta window.(Type 1)
# (CUT) - Cut (fail-high) Node fail-high node where a child node cause a beta-cutoff. (Type 2)
# (ALL) - All (fail-low) Node fail-low node in which no move's score exceeded alpha. (Type 3)
# (Q:CUT) - Beta cutoff in Quiescence.
# (Q:PAT-CUT) - Stand-pat beta cutoff in Quiescence.
# -PVS-WIN- - Principal Variation Search successful using zero window.
# -F- Principal Variation Search failed. Perform re-search using full window.
# E-1REP - One Reply Extension
# E-CHK - Check Evation Extension
# E-RECAP - Recapture Extension
# E-PAWN7 - Passed Pawn Extension
# R-FUT3 - Futility Pruning where Depth=2 and LazyEval + Margin = Knight.
# R-FUT5 - Extended Futility Pruning where Depth=3 and LazyEval + Margin = Rook.
# R-FUT9 - Deep Futility Pruning where Depth=4 and LazyEval + Margin = Queen.
# O-HASH - Best move from Transposition table.
# O-PROM - A pawn promotion.
# O-SEE - Move order value of winning (or losing) capture using Static Exchange Evaluation (SEE).
# O-MVV - Where SEE is even, move order value of MVV-LVA (Most Valuable Victim - Least Valuable Aggressor).
# O-KILL(A|B) - Killer Move from slot A or B.
# O-HIST - Move order value from History Heuristic.
# O-SV - Move order value from Piece-Square Value tables.
Basically, in an attempt to make things easier for myself, from both understanding and debugging point-of-view, I created a Move Analysis window in the SharpChess GUI, which you can see below. It's probably easier to read on the URL below, which also has direct links to http://chessprogramming.wikispaces.com/.
http://sharpchess.com/?page=50%20Develo ... 20Analysis
It has been most useful to be able to actually see the move ordering assignments, as well as the extension and reduction points. Also it gives a good idea as what's happening (or not) with the branching factor.
# *PV* - Principal Variation (PV) Node score inside the Alpha-Beta window.(Type 1)
# (CUT) - Cut (fail-high) Node fail-high node where a child node cause a beta-cutoff. (Type 2)
# (ALL) - All (fail-low) Node fail-low node in which no move's score exceeded alpha. (Type 3)
# (Q:CUT) - Beta cutoff in Quiescence.
# (Q:PAT-CUT) - Stand-pat beta cutoff in Quiescence.
# -PVS-WIN- - Principal Variation Search successful using zero window.
# -F- Principal Variation Search failed. Perform re-search using full window.
# E-1REP - One Reply Extension
# E-CHK - Check Evation Extension
# E-RECAP - Recapture Extension
# E-PAWN7 - Passed Pawn Extension
# R-FUT3 - Futility Pruning where Depth=2 and LazyEval + Margin = Knight.
# R-FUT5 - Extended Futility Pruning where Depth=3 and LazyEval + Margin = Rook.
# R-FUT9 - Deep Futility Pruning where Depth=4 and LazyEval + Margin = Queen.
# O-HASH - Best move from Transposition table.
# O-PROM - A pawn promotion.
# O-SEE - Move order value of winning (or losing) capture using Static Exchange Evaluation (SEE).
# O-MVV - Where SEE is even, move order value of MVV-LVA (Most Valuable Victim - Least Valuable Aggressor).
# O-KILL(A|B) - Killer Move from slot A or B.
# O-HIST - Move order value from History Heuristic.
# O-SV - Move order value from Piece-Square Value tables.