Older Version
Newer Version
GerdIsenberg
Mar 8, 2016
**[[Home]] * [[Engines]] * Vice** || [[image:181px-Vices_Speculum_Virginum_W72_25v.jpg link="http://commons.wikimedia.org/wiki/File:Vices_Speculum_Virginum_W72_25v.jpg"]] ||~ || **Vice**, (Video Instructional Chess Engine) a didactic [[Open Source Engines|open source chess engine]] by [[BlueFeverSoft]], written in [[C]], and introduced in a series of 87 + 8 [[http://en.wikipedia.org/wiki/YouTube|YouTube]] videos from May 2013 until January 2014 <ref> [[http://www.youtube.com/watch?v=bGAfaepBco4&feature=share&list=PLZ1QII7yudbc-Ky058TEaOstZHVbT-2hg|Programming A Chess Engine in C]], [[http://en.wikipedia.org/wiki/YouTube|YouTube]] Videos by [[BlueFeverSoft]]</ref>. Vice [[Board Representation|represents the board]] with a [[10x12 Board|120 square array]] and additionally has some [[Bitboards|bitboards]] for [[Pawn|pawn]] stuff. It applies an [[Alpha-Beta|alpha-beta]] search with [[Transposition Table|transposition table]], [[Null Move Pruning|null move pruning]] and [[Quiescence Search|quiescence]] inside an [[Iterative Deepening|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|opening book]] format <ref>[[http://bluefever.net/Downloads/ViceReadMe.html|Vice ReadMe File and Download]]</ref>. || || Tree of Vices <ref>"Tree of Vices" from [[http://en.wikipedia.org/wiki/Speculum_Virginum|Speculum Virginum]], [[http://en.wikipedia.org/wiki/Walters_Art_Museum|Walters Art Museum]], [[http://www.thedigitalwalters.org/Data/WaltersManuscripts/html/W72/description.html|Ms. W.72, fol. 25v]], Early [[http://en.wikipedia.org/wiki/13th_century|13th century]] manuscript from the [[http://en.wikipedia.org/wiki/Cistercians|Cistercian]] [[http://en.wikipedia.org/wiki/Himmerod_Abbey|abbey of Himmerode]], [[http://commons.wikimedia.org/wiki/File:Vices_Speculum_Virginum_W72_25v.jpg|Vices Speculum Virginum W72 25v.jpg - Wikimedia Commons]], [[http://en.wikipedia.org/wiki/Tree_of_virtues_and_tree_of_vices|Tree of virtues and tree of vices from Wikipedia]]</ref> ||~ ||^ || [[toc]] =See also= * [[Various Classifications#Acronym|Acronym]] * [[Various Classifications#Demonology|Demonology]] =Forum Posts= * [[http://www.open-chess.org/viewtopic.php?f=5&t=2383|Vice 1.0]] by [[BlueFeverSoft]], [[Computer Chess Forums|OpenChess Forum]], July 30, 2013 * [[http://www.talkchess.com/forum/viewtopic.php?t=49043|Vice 1.0]] by [[Adam Hair]], [[CCC]], August 22, 2013 =External Links= ==Chess Engine== * [[http://bluefever.net/Downloads/ViceReadMe.html|Vice ReadMe File and Download]] * [[http://www.computerchess.org.uk/ccrl/404/cgi/engine_details.cgi?print=Details&each_game=1&eng=Vice%201.0%2064-bit|Vice 1.0 64-bit]] in [[CCRL|CCRL 40/4]] ==Videos== * [[http://www.youtube.com/watch?v=bGAfaepBco4&feature=share&list=PLZ1QII7yudbc-Ky058TEaOstZHVbT-2hg|Programming A Chess Engine in C]], [[http://en.wikipedia.org/wiki/YouTube|YouTube]] Videos by [[BlueFeverSoft]] # [[http://www.youtube.com/watch?v=bGAfaepBco4|Resources and Community]] # [[http://www.youtube.com/watch?v=VuJL4qhpp-8|Board Representation]] » [[Board Representation]] # [[http://www.youtube.com/watch?v=x9sPmLt-EBM|First Definitions]] # [[http://www.youtube.com/watch?v=3uBCUF_qHcg|Board Structure]] # [[http://www.youtube.com/watch?v=1q0NlSdGOjI|Undo-Move Structure]] » [[Unmake Move]] # [[http://www.youtube.com/watch?v=pqYFUnUn0qw|Array[120] to Array[64] Indexing for Pawns]] » [[10x12 Board]], [[8x8 Board]] # [[http://www.youtube.com/watch?v=Bi61lMwhksw|Piece Lists and ASSERT!]] » [[Piece-Lists]] # [[http://www.youtube.com/watch?v=JsjSChsu2L0|Bitboards]] » [[Bitboards]] # [[http://www.youtube.com/watch?v=ITVB7JSaI3w|Bitboards Pop and Count]] » [[BitScan]], [[Population Count]] # [[http://www.youtube.com/watch?v=pa0W1mz_wa4|Set and Clear bits]] » [[General Setwise Operations]] # [[http://www.youtube.com/watch?v=uw9jsInf4jA|Position Key (Hashkey) #1]] » [[Zobrist Hashing]] # [[http://www.youtube.com/watch?v=WqVwQBXLwE0|Position Key (Hashkey) #2]] # [[http://www.youtube.com/watch?v=vF_Td1nABYw|Position Setup - Reset Board]] # [[http://www.youtube.com/watch?v=4vCiIf73FQM|Position Setup - FEN Notation ]] » [[Forsyth-Edwards Notation]] # [[http://www.youtube.com/watch?v=usUJFkGyqM4|Parsing An FEN (1)]] # [[http://www.youtube.com/watch?v=GmCxU4elNcA|Parsing An FEN (2)]] # [[http://www.youtube.com/watch?v=-wrSMzYGlGs|Printing the board to screen]] # [[http://www.youtube.com/watch?v=clLaVOnvUvA|Piece Lists]] » [[Piece-Lists]] # [[http://www.youtube.com/watch?v=CRaIcMGbkpE|Rank and File Arrays]] # [[http://www.youtube.com/watch?v=O5YtKzh4siE|Checkboard]] # [[http://www.youtube.com/watch?v=PGPdT9zz-xg|Next steps]] # [[http://www.youtube.com/watch?v=8mHFATWbeik|Square Attacked (1)]] # [[http://www.youtube.com/watch?v=VdH0ObqK3CA|Square Attacked (2)]] # [[http://www.youtube.com/watch?v=KQcArvyrbIo|Move Format & Bits (1)]] » [[Encoding Moves]] # [[http://www.youtube.com/watch?v=N6yImiyzWpo|Move Format & Bits (2)]] # [[http://www.youtube.com/watch?v=n2ZgdkW7uls|Move Format & Bits (3)]] # [[http://www.youtube.com/watch?v=siLoAPTOaWE|Printmove and Printsquare]] # [[http://www.youtube.com/watch?v=uBwwC5uWJKo|Move Generation #1]] » [[Move Generation]] # [[http://www.youtube.com/watch?v=wD9CNtvLCrI|Move Generation #2 - Validations]] # [[http://www.youtube.com/watch?v=1TCKuEoHvcs|Move Generation #3 - White Pawns]] # [[http://www.youtube.com/watch?v=8LUkqaodUFA|Move Generation #4 - Black Pawns]] # [[http://www.youtube.com/watch?v=MFMk5SiXvHQ|Move Generation #5 - Piece Index Setup]] # [[http://www.youtube.com/watch?v=6WovWHeRKFA|Move Generation #6 - Non Slider Pieces]] # [[http://www.youtube.com/watch?v=dkHlnSP3u3w|Move Generation #7 - Slider Pieces]] # [[http://www.youtube.com/watch?v=srAcgIKONO4|Move Generation #8 - Castling]] » [[Castling]] # [[http://www.youtube.com/watch?v=kVXi615rFxE|Move Generation #9 - Final Movelist!]] » [[Move List]] # [[http://www.youtube.com/watch?v=ZWcjcn4KVTk|Writing MakeMove - Introduction]] » [[Make Move]] # [[http://www.youtube.com/watch?v=9Rfx1WHkJ3o|Writing MakeMove #1]] # [[http://www.youtube.com/watch?v=F_L2AhqB4V4|Writing MakeMove #2 - ClearPiece()]] # [[http://www.youtube.com/watch?v=ai_193NC3zU|Writing MakeMove #3 - Add/MovePiece()]] # [[http://www.youtube.com/watch?v=qnHQJAsJFvk|Writing MakeMove #4 - MakeMove()]] # [[http://www.youtube.com/watch?v=aKaU0WHVrJI|Writing MakeMove #5 - TakeMove()]] # [[http://www.youtube.com/watch?v=ioaPTMKU3zg|Introduction to Perft testing]] » [[Perft]] # [[http://www.youtube.com/watch?v=6Y_FaQhqX2c|Perft Testing (Move Make / Unmake debug)]] » [[Unmake Move]] # [[http://www.youtube.com/watch?v=6ib1Kf44KR0|Quick Look At MinMax and NegaMax]] » [[Minimax]], [[Negamax]] # [[http://www.youtube.com/watch?v=j_ZHeE87udo|Quick Look At Alpha Beta]] » [[Alpha-Beta]] # [[http://www.youtube.com/watch?v=eox81XUaXYI|Overview of search implementation]] » [[Search]] # [[http://www.youtube.com/watch?v=XPOcvp4h7VU|Parsing a move from user / GUI]] » [[GUI]] # [[#Repetitions]][[http://www.youtube.com/watch?v=1Vq-Ic9t4FE|Repetition Detection]] » [[Repetitions]] # [[http://www.youtube.com/watch?v=l_OrrycM7Fw|Getting the time in milliseconds]] # [[http://www.youtube.com/watch?v=AlwyJFG466M|Principal Variation Table #1 Definitions]] » [[Principal Variation]] # [[http://www.youtube.com/watch?v=BpR76VBo7DQ|Principal Variation Table #2 Store / Probe]] # [[http://www.youtube.com/watch?v=9LKX9jgqx84|Principal Variation Table #3 Retrieval]] # [[http://www.youtube.com/watch?v=_063cuTPOe8|Preparation for search]] # [[http://www.youtube.com/watch?v=F74y0ErjWTI|Search Function Definitions]] # [[http://www.youtube.com/watch?v=zSJF6jZ61w0|Basic Evaluation (very basic)]] » [[Evaluation]] # [[http://www.youtube.com/watch?v=6WobF80RgaY|Clear To Search]] # [[http://www.youtube.com/watch?v=31guiVzPJuU|Writing the Iterative Deepening Function]] » [[Iterative Deepening]] # [[http://www.youtube.com/watch?v=-WyXnVpJVSQ|Writing the Alpha Beta Function]] » [[Alpha-Beta]] # [[http://www.youtube.com/watch?v=r4pNoANs8_0|Vice solves a Mate in 3 !]] » [[Checkmate]] # [[http://www.youtube.com/watch?v=hDHa4-fijMc|Move Ordering - Setting Up MVV LVA]] » [[Move Ordering]], [[MVV-LVA]] # [[http://www.youtube.com/watch?v=8LYMXwH1xsg|Move Ordering - Picking a Move]] # [[http://www.youtube.com/watch?v=RkZ7mUQnviA|BUG ALERT - Change to Move Generation!]] # [[#KillHist]][[http://www.youtube.com/watch?v=jIc2YOP1W7U|Move Ordering - Killer, History Heuristics, PV Move]] » [[Killer Heuristic]], [[History Heuristic]], [[PV-Move]] # [[#Quiescence]][[http://www.youtube.com/watch?v=ouWcWzyCOCY|Quiescence - Getting rid of the horizon effect]] » [[Quiescence Search]] # [[#UCI]][[http://www.youtube.com/watch?v=NBl92Vs0fos|UCI Protocol #1 - Intoduction]] » [[UCI]] # [[http://www.youtube.com/watch?v=gcBYSby9f88|UCI Protocol #2 - UCI Loop]] # [[http://www.youtube.com/watch?v=EzkmJEkAmoY|UCI Protocol #3 - Parse Position]] # [[http://www.youtube.com/watch?v=Lo54mNqOMAs|UCI Protocol #4 - Parse Go]] # [[http://www.youtube.com/watch?v=gVGadWuBqEA|UCI Protocol #5 - Interrupt Thinking & Working Program]] # [[#Nero]][[http://www.youtube.com/watch?v=_1S_vDHWJp8|Vice vs Nero 6.1 - The first ever game!!]] » [[Nero]] # [[#CECP]][[http://www.youtube.com/watch?v=DZwW-st4Jl8|XBoard / Winboard Protocol #1]] » [[Chess Engine Communication Protocol]] # [[http://www.youtube.com/watch?v=ubSDzI3ecwc|XBoard / Winboard Protocol #2]] # [[http://www.youtube.com/watch?v=pClToEJ-g-A|XBoard / Winboard Protocol #3 And Console Mode]] # [[http://www.youtube.com/watch?v=KuQCsEcCO0g|BUG ALERT #2]] # [[http://www.youtube.com/watch?v=1SiR7A1NQ0g|In Check Extension]] » [[Check Extensions]] # [[http://www.youtube.com/watch?v=XkbK_yOvcUw|Improving Evaluation - Bitmasks]] » [[Evaluation]] # [[http://www.youtube.com/watch?v=oB2l2KADPYc|Improving Evaluation - Pawn Bitmasks]] # [[http://www.youtube.com/watch?v=tfzG-o77RD8|Improving Evaluation - Mirror Board Function]] » [[Color Flipping]] # [[http://www.youtube.com/watch?v=uoHEwVSEy5s|Improving Evaluation - Isolani and passer]] » [[Isolated Pawn]], [[Passed Pawn]] # [[http://www.youtube.com/watch?v=XXdzSQ49aM0|Improving Evaluation - Open Files]] » [[Open file]] # [[http://www.youtube.com/watch?v=4ozHuSRDyfE|Improving Evaluation - King Position and Material Draws]] » [[Draw Evaluation]] # [[http://www.youtube.com/watch?v=wgYuNhzCYe0|Null Move Pruning #1]] » [[Null Move Pruning]] # [[http://www.youtube.com/watch?v=5rqXb_QMLA4|Null Move Pruning #2]] # [[http://www.youtube.com/watch?v=MMoOsCHSdj4|Transpositon Table]] » [[Transposition Table]] # [[http://www.youtube.com/watch?v=jmLNzigTceM|Test Results, Debug Test Run]] » [[Debugging]] # [[http://www.youtube.com/watch?v=-G_tQKNfVuM|Vice 1.0 release, end of series]] # [[#Polyglot]][[http://www.youtube.com/watch?v=HjZtevzCa5Y|Adding An opening Book Using Polyglot]] » [[Opening Book]], [[PolyGlot]] # [[http://www.youtube.com/watch?v=hGy5kR_mOdM|Polyglot Opening Book #1]] # [[http://www.youtube.com/watch?v=jEurXv03JIs|Polyglot Book #2 Hashkey Generation]] # [[http://www.youtube.com/watch?v=_VZfnlhk2SU|Polyglot Book #3 Read In Data]] # [[http://www.youtube.com/watch?v=wT7H4ogSDak|Polyglot Book #4 Read Book Moves]] # [[http://www.youtube.com/watch?v=u5WEOplKjdc|Polyglot Book #5 Internal Format Book Moves]] # [[http://www.youtube.com/watch?v=30GFA_d98SQ|Polyglot Book #6 Book Option]] # [[http://www.youtube.com/watch?v=eGGL_9_qduI|Vice 1.1 Polyglot Books]] ==Misc== * [[http://en.wiktionary.org/wiki/vice|vice - Wiktionary]] * [[http://en.wikipedia.org/wiki/Vice_%28disambiguation%29|Vice (disambiguation) from Wikipedia]] * [[http://en.wikipedia.org/wiki/Vice|Vice from Wikipedia]] * [[http://en.wikipedia.org/wiki/Vice_%28character%29|Vice (character) from Wikipedia]] * [[http://en.wikipedia.org/wiki/Tree_of_virtues_and_tree_of_vices|Tree of virtues and tree of vices from Wikipedia]] * [[http://en.wikipedia.org/wiki/Seven_deadly_sins|Seven deadly sins from Wikipedia]] =References= <references /> =What links here?= [[include page="Vice" component="backlinks" limit="50"]] **[[Engines|Up one Level]]**