Greetings

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

PeterHughes

Greetings

Post by PeterHughes »

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
User avatar
jshriver
Posts: 1342
Joined: Wed Mar 08, 2006 9:41 pm
Location: Morgantown, WV, USA

Re: Greetings

Post by jshriver »

Welcome back to the scene :) will check your engine out.
tttony
Posts: 268
Joined: Sun Apr 24, 2011 12:33 am

Re: Greetings

Post by tttony »

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 :D

I'm testing the engine right now
User avatar
lucasart
Posts: 3232
Joined: Mon May 31, 2010 1:29 pm
Full name: lucasart

Re: Greetings

Post by lucasart »

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
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

Re: Greetings

Post by PeterHughes »

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.
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.

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.
PeterHughes

Re: Greetings

Post by PeterHughes »

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.

Image

# *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.