Skip to content

Commit 1aee27d

Browse files
committed
Update ratings + minor fixes
1 parent e22872a commit 1aee27d

File tree

5 files changed

+18
-42
lines changed

5 files changed

+18
-42
lines changed

README.md

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,26 @@
11
# morlock
22

33
Morlock is a hobbyist chess engine in Go. It supports a few standard techniques and protocols and
4-
is currently mainly used to re-implement a few historical engines, TUROCHAMP (1948) and SARGON (1978).
5-
These historical engine re-implementations can be played on [lichess.org](lichess.org). They are
6-
available 24/7 at various search depths.
4+
is currently mainly used to re-implement the following historical chess engines:
75

8-
TUROCHAMP (1948) by Alan Turing and David Champernowne. It uses a full search with an unbounded
6+
### TUROCHAMP (1948) by Alan Turing and David Champernowne
7+
8+
Turochamp uses a full search with an unbounded
99
quiescence search of "considerable moves" using material ratio and position play heuristics:
1010

11-
* [turochamp-1ply](https://lichess.org/@/turochamp-1ply). Rating ~1400 (blitz/rapid).
12-
* [turochamp-2ply](https://lichess.org/@/turochamp-2ply). Rating ~1500 (blitz/rapid).
11+
* [turochamp-1ply](https://lichess.org/@/turochamp-1ply). Rating ~1300 (blitz/rapid).
12+
* [turochamp-2ply](https://lichess.org/@/turochamp-2ply). Rating ~1600 (blitz/rapid).
13+
14+
### SARGON (1978) by Dan and Kathe Spracklen
1315

14-
SARGON (1978) by Dan and Kathe Spracklen. It uses a full search with material exchange, king/queen pins
15-
and board control heuristics:
16+
Sargon uses a full search with material exchange, king/queen pins and board control heuristics:
1617

1718
* [sargon-1ply](https://lichess.org/@/sargon-1ply). Rating ~1300 (blitz/rapid).
1819
* [sargon-2ply](https://lichess.org/@/sargon-2ply). Rating ~1400 (blitz/rapid).
19-
* [sargon-3ply](https://lichess.org/@/sargon-3ply). Rating ~1500 (blitz/rapid).
20-
* [sargon-4ply](https://lichess.org/@/sargon-4ply). Rating ~1600 (blitz/rapid).
21-
22-
These engines each have quirks, blind spots and limitations, which is part of their charm. They play
23-
at low search depths to entertain rather than win.
20+
* [sargon-3ply](https://lichess.org/@/sargon-3ply). Rating ~1700 (blitz/rapid).
21+
* [sargon-4ply](https://lichess.org/@/sargon-4ply). Rating ~1800 (blitz/rapid).
2422

25-
Enjoy!
23+
Each engine can be played 24/7 for free on [lichess.org](https://lichess.org). They have quirks, blind spots and limitations,
24+
which is part of their charm -- and play at low search depths to entertain rather than win.
2625

27-
_June 2021_
26+
_September 2022_

pkg/board/bitboard.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ func init() {
135135
}
136136
}
137137

138-
// KnighAttackboard returns all potential moves/attacks for a Knight at the given square.
138+
// KnightAttackboard returns all potential moves/attacks for a Knight at the given square.
139139
func KnightAttackboard(sq Square) Bitboard {
140140
return knight[sq]
141141
}

pkg/board/board.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -247,15 +247,15 @@ func (b *Board) LastMove() (Move, bool) {
247247
return Move{}, false
248248
}
249249

250-
// LastMove returns the second-to-last move, if any.
250+
// SecondToLastMove returns the second-to-last move, if any.
251251
func (b *Board) SecondToLastMove() (Move, bool) {
252252
if b.current.prev != nil && b.current.prev.prev != nil {
253253
return b.current.prev.prev.next, true
254254
}
255255
return Move{}, false
256256
}
257257

258-
// HasCasted returns true iff the color has castled.
258+
// HasCastled returns true iff the color has castled.
259259
func (b *Board) HasCastled(c Color) bool {
260260
return b.hasCastled[c]
261261
}

pkg/board/position.go

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -388,26 +388,3 @@ func safeCastlingSquares(c Color, t MoveType) []Square {
388388
}
389389
}
390390
}
391-
392-
// rookSquares return the rook squares for castling.
393-
func rookSquares(c Color, t MoveType) []Square {
394-
if c == White {
395-
switch t {
396-
case KingSideCastle:
397-
return []Square{F1, H1}
398-
case QueenSideCastle:
399-
return []Square{A1, D1}
400-
default:
401-
return nil
402-
}
403-
} else {
404-
switch t {
405-
case KingSideCastle:
406-
return []Square{F8, H8}
407-
case QueenSideCastle:
408-
return []Square{A8, D8}
409-
default:
410-
return nil
411-
}
412-
}
413-
}

pkg/eval/score.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ func (s Score) MateDistance() (int8, bool) {
9797
}
9898
}
9999

100-
// Negates returns the negative score, as viewed from the opponent.
100+
// Negate returns the negative score, as viewed from the opponent.
101101
func (s Score) Negate() Score {
102102
switch s.Type {
103103
case Heuristic:

0 commit comments

Comments
 (0)