Skip to main content
guest
Join
|
Help
|
Sign In
chessprogramming
Home
guest
|
Join
|
Help
|
Sign In
Wiki Home
Recent Changes
Pages and Files
Members
Home
Basics
Getting Started
Board Representation
Search
Evaluation
Principle Topics
Chess
Programming
Artificial Intelligence
Knowledge
Learning
Testing
Tuning
User Interface
Protocols
Dictionary
Lists
Arts
Cartoons
CC Forums
Conferences
Dedicated CC
Engines
Games
Hardware
History
Organizations
Papers
People
Periodical
Samples
Software
Timeline
Tournaments and Matches
Videos
Misc
Acknowledgments
On New Pages
Recommended Reading
Wikispaces Help
Vice
Edit
0
14
…
8
Tags
acronym
ccvideos
demonology
engines
opensourceengines
uciengines
winboardengines
xboardengines
Notify
RSS
Backlinks
Source
Print
Export (PDF)
Home
*
Engines
* Vice
Vice
, (Video Instructional Chess Engine)
a didactic
open source chess engine
by
BlueFeverSoft
, written in
C
, and introduced in a series of 87 + 8
YouTube
videos from May 2013 until January 2014
[1]
.
Vice
represents the board
with a
120 square array
and additionally has some
bitboards
for
pawn
stuff. It applies an
alpha-beta
search with
transposition table
,
null move pruning
and
quiescence
inside an
iterative deepening framework
. It is compatible with the
UCI
and the
Chess Engine Communication Protocol
, and since version 1.1, supports the
PolyGlot
opening book
format
[2]
.
Tree of Vices
[3]
Table of Contents
See also
Forum Posts
External Links
Chess Engine
Videos
Misc
References
What links here?
See also
Acronym
Demonology
Forum Posts
Vice 1.0
by
BlueFeverSoft
,
OpenChess Forum
, July 30, 2013
Vice 1.0
by
Adam Hair
,
CCC
, August 22, 2013
External Links
Chess Engine
Vice ReadMe File and Download
Vice 1.0 64-bit
in
CCRL 40/4
Videos
Programming A Chess Engine in C
,
YouTube
Videos by
BlueFeverSoft
Resources and Community
Board Representation
»
Board Representation
First Definitions
Board Structure
Undo-Move Structure
»
Unmake Move
Array[120] to Array[64] Indexing for Pawns
»
10x12 Board
,
8x8 Board
Piece Lists and ASSERT!
»
Piece-Lists
Bitboards
»
Bitboards
Bitboards Pop and Count
»
BitScan
,
Population Count
Set and Clear bits
»
General Setwise Operations
Position Key (Hashkey) #1
»
Zobrist Hashing
Position Key (Hashkey) #2
Position Setup - Reset Board
Position Setup - FEN Notation
»
Forsyth-Edwards Notation
Parsing An FEN (1)
Parsing An FEN (2)
Printing the board to screen
Piece Lists
»
Piece-Lists
Rank and File Arrays
Checkboard
Next steps
Square Attacked (1)
Square Attacked (2)
Move Format & Bits (1)
»
Encoding Moves
Move Format & Bits (2)
Move Format & Bits (3)
Printmove and Printsquare
Move Generation #1
»
Move Generation
Move Generation #2 - Validations
Move Generation #3 - White Pawns
Move Generation #4 - Black Pawns
Move Generation #5 - Piece Index Setup
Move Generation #6 - Non Slider Pieces
Move Generation #7 - Slider Pieces
Move Generation #8 - Castling
»
Castling
Move Generation #9 - Final Movelist!
»
Move List
Writing MakeMove - Introduction
»
Make Move
Writing MakeMove #1
Writing MakeMove #2 - ClearPiece()
Writing MakeMove #3 - Add/MovePiece()
Writing MakeMove #4 - MakeMove()
Writing MakeMove #5 - TakeMove()
Introduction to Perft testing
»
Perft
Perft Testing (Move Make / Unmake debug)
»
Unmake Move
Quick Look At MinMax and NegaMax
»
Minimax
,
Negamax
Quick Look At Alpha Beta
»
Alpha-Beta
Overview of search implementation
»
Search
Parsing a move from user / GUI
»
GUI
Repetition Detection
»
Repetitions
Getting the time in milliseconds
Principal Variation Table #1 Definitions
»
Principal Variation
Principal Variation Table #2 Store / Probe
Principal Variation Table #3 Retrieval
Preparation for search
Search Function Definitions
Basic Evaluation (very basic)
»
Evaluation
Clear To Search
Writing the Iterative Deepening Function
»
Iterative Deepening
Writing the Alpha Beta Function
»
Alpha-Beta
Vice solves a Mate in 3 !
»
Checkmate
Move Ordering - Setting Up MVV LVA
»
Move Ordering
,
MVV-LVA
Move Ordering - Picking a Move
BUG ALERT - Change to Move Generation!
Move Ordering - Killer, History Heuristics, PV Move
»
Killer Heuristic
,
History Heuristic
,
PV-Move
Quiescence - Getting rid of the horizon effect
»
Quiescence Search
UCI Protocol #1 - Intoduction
»
UCI
UCI Protocol #2 - UCI Loop
UCI Protocol #3 - Parse Position
UCI Protocol #4 - Parse Go
UCI Protocol #5 - Interrupt Thinking & Working Program
Vice vs Nero 6.1 - The first ever game!!
»
Nero
XBoard / Winboard Protocol #1
»
Chess Engine Communication Protocol
XBoard / Winboard Protocol #2
XBoard / Winboard Protocol #3 And Console Mode
BUG ALERT #2
In Check Extension
»
Check Extensions
Improving Evaluation - Bitmasks
»
Evaluation
Improving Evaluation - Pawn Bitmasks
Improving Evaluation - Mirror Board Function
»
Color Flipping
Improving Evaluation - Isolani and passer
»
Isolated Pawn
,
Passed Pawn
Improving Evaluation - Open Files
»
Open file
Improving Evaluation - King Position and Material Draws
»
Draw Evaluation
Null Move Pruning #1
»
Null Move Pruning
Null Move Pruning #2
Transpositon Table
»
Transposition Table
Test Results, Debug Test Run
»
Debugging
Vice 1.0 release, end of series
Adding An opening Book Using Polyglot
»
Opening Book
,
PolyGlot
Polyglot Opening Book #1
Polyglot Book #2 Hashkey Generation
Polyglot Book #3 Read In Data
Polyglot Book #4 Read Book Moves
Polyglot Book #5 Internal Format Book Moves
Polyglot Book #6 Book Option
Vice 1.1 Polyglot Books
Misc
vice - Wiktionary
Vice (disambiguation) from Wikipedia
Vice from Wikipedia
Vice (character) from Wikipedia
Tree of virtues and tree of vices from Wikipedia
Seven deadly sins from Wikipedia
References
^
Programming A Chess Engine in C
,
YouTube
Videos by
BlueFeverSoft
^
Vice ReadMe File and Download
^
"Tree of Vices" from
Speculum Virginum
,
Walters Art Museum
,
Ms. W.72, fol. 25v
, Early
13th century
manuscript from the
Cistercian
abbey of Himmerode
,
Vices Speculum Virginum W72 25v.jpg - Wikimedia Commons
,
Tree of virtues and tree of vices from Wikipedia
What links here?
Page
Date Edited
BlueFeverSoft
Sep 23, 2017
C
Feb 19, 2018
Chess Engine Communication Protocol
Mar 4, 2018
Engines
Mar 10, 2018
Gavon
Apr 30, 2018
History Heuristic
Jul 19, 2017
iCE
Jan 4, 2016
Killer Heuristic
Sep 14, 2017
Nero
May 5, 2017
Open Source Engines
Jul 14, 2015
PolyGlot
Jan 17, 2018
Programming
Dec 16, 2017
Quiescence Search
Aug 19, 2017
Recommended Reading
Nov 17, 2017
Repetitions
Jan 16, 2018
UCI
Mar 4, 2018
Vice
Mar 8, 2016
Videos
Jan 22, 2018
Up one Level
Javascript Required
You need to enable Javascript in your browser to edit pages.
help on how to format text
Turn off "Getting Started"
Home
...
Loading...
a didactic open source chess engine by BlueFeverSoft, written in C, and introduced in a series of 87 + 8 YouTube videos from May 2013 until January 2014 [1].
Vice represents the board with a 120 square array and additionally has some bitboards for pawn stuff. It applies an alpha-beta search with transposition table, null move pruning and quiescence inside an iterative deepening framework. It is compatible with the UCI and the Chess Engine Communication Protocol, and since version 1.1, supports the PolyGlot opening book format [2].
Table of Contents
See also
Forum Posts
External Links
Chess Engine
Videos
Misc
References
What links here?
Up one Level