Difference between revisions of "Vice"

From Chessprogramming wiki
Jump to: navigation, search
(7 intermediate revisions by the same user not shown)
Line 8: Line 8:
 
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>.  
 
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>.  
  
=See also=
 
* [[:Category:Acronym|Acronym]]
 
* [[:Category:Demonology|Demonology]]
 
 
=Forum Posts=
 
=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.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
 
* [http://www.talkchess.com/forum/viewtopic.php?t=49043 Vice 1.0] by [[Adam Hair]], [[CCC]], August 22, 2013
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=72372&start=24 Re: Mussaurus 0.1-prealpha - a poor man's Vice] by [[Richard Allbert]], [[CCC]], Novembr 26, 2019
 +
: [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=72372&start=33 Re: Mussaurus 0.1-prealpha - a poor man's Vice] by [[Richard Allbert]], [[CCC]], December 02, 2019
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=77205 Vice CCRL rating] by [[Amanj Sherwany]], [[CCC]], April 29, 2021 » [[CCRL]]
  
 
=External Links=
 
=External Links=
 
==Chess Engine==
 
==Chess Engine==
 
* [http://bluefever.net/Downloads/ViceReadMe.html Vice ReadMe File and Download]
 
* [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]]
+
* [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 Blitz]] <ref>[http://www.talkchess.com/forum3/viewtopic.php?f=2&t=77205 Vice CCRL rating] by [[Amanj Sherwany]], [[CCC]], April 29, 2021 » [[CCRL]]</ref>
 +
 
 
==Videos==
 
==Videos==
* [http://www.youtube.com/watch?v=bGAfaepBco4&feature=share&list=PLZ1QII7yudbc-Ky058TEaOstZHVbT-2hg Programming A Chess Engine in C], [https://en.wikipedia.org/wiki/YouTube YouTube] Videos by [[BlueFeverSoft]]
+
* [https://www.youtube.com/watch?v=bGAfaepBco4&feature=share&list=PLZ1QII7yudbc-Ky058TEaOstZHVbT-2hg Programming A Chess Engine in C], [https://en.wikipedia.org/wiki/YouTube YouTube] Videos by [[BlueFeverSoft]]
# [http://www.youtube.com/watch?v=bGAfaepBco4 Resources and Community]
+
# [https://www.youtube.com/watch?v=bGAfaepBco4 Resources and Community]
# [http://www.youtube.com/watch?v=VuJL4qhpp-8 Board Representation] » [[Board Representation]]
+
# [https://www.youtube.com/watch?v=VuJL4qhpp-8 Board Representation] » [[Board Representation]]
# [http://www.youtube.com/watch?v=x9sPmLt-EBM First Definitions]
+
# [https://www.youtube.com/watch?v=x9sPmLt-EBM First Definitions]
# [http://www.youtube.com/watch?v=3uBCUF_qHcg Board Structure]
+
# [https://www.youtube.com/watch?v=3uBCUF_qHcg Board Structure]
# [http://www.youtube.com/watch?v=1q0NlSdGOjI Undo-Move Structure] » [[Unmake Move]]
+
# [https://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]]
+
# [https://www.youtube.com/watch?v=pqYFUnUn0qw Array<nowiki>[120] to Array[64]</nowiki> Indexing for Pawns] » [[10x12 Board]], [[8x8 Board]]
# [http://www.youtube.com/watch?v=Bi61lMwhksw Piece Lists and ASSERT!] » [[Piece-Lists]]
+
# [https://www.youtube.com/watch?v=Bi61lMwhksw Piece Lists and ASSERT!] » [[Piece-Lists]]
# [http://www.youtube.com/watch?v=JsjSChsu2L0 Bitboards] » [[Bitboards]]
+
# [https://www.youtube.com/watch?v=JsjSChsu2L0 Bitboards] » [[Bitboards]]
# [http://www.youtube.com/watch?v=ITVB7JSaI3w Bitboards Pop and Count] » [[BitScan]], [[Population Count]]
+
# [https://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]]
+
# [https://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]]
+
# [https://www.youtube.com/watch?v=uw9jsInf4jA Position Key (Hashkey) #1] » [[Zobrist Hashing]]
# [http://www.youtube.com/watch?v=WqVwQBXLwE0 Position Key (Hashkey) #2]
+
# [https://www.youtube.com/watch?v=WqVwQBXLwE0 Position Key (Hashkey) #2]
# [http://www.youtube.com/watch?v=vF_Td1nABYw Position Setup - Reset Board]
+
# [https://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]]
+
# [https://www.youtube.com/watch?v=4vCiIf73FQM Position Setup - FEN Notation ] » [[Forsyth-Edwards Notation]]
# [http://www.youtube.com/watch?v=usUJFkGyqM4 Parsing An FEN (1)]
+
# [https://www.youtube.com/watch?v=usUJFkGyqM4 Parsing An FEN (1)]
# [http://www.youtube.com/watch?v=GmCxU4elNcA Parsing An FEN (2)]
+
# [https://www.youtube.com/watch?v=GmCxU4elNcA Parsing An FEN (2)]
# [http://www.youtube.com/watch?v=-wrSMzYGlGs Printing the board to screen]
+
# [https://www.youtube.com/watch?v=-wrSMzYGlGs Printing the board to screen]
# [http://www.youtube.com/watch?v=clLaVOnvUvA Piece Lists] » [[Piece-Lists]]
+
# [https://www.youtube.com/watch?v=clLaVOnvUvA Piece Lists] » [[Piece-Lists]]
# [http://www.youtube.com/watch?v=CRaIcMGbkpE Rank and File Arrays]
+
# [https://www.youtube.com/watch?v=CRaIcMGbkpE Rank and File Arrays]
# [http://www.youtube.com/watch?v=O5YtKzh4siE Checkboard]
+
# [https://www.youtube.com/watch?v=O5YtKzh4siE Checkboard]
# [http://www.youtube.com/watch?v=PGPdT9zz-xg Next steps]
+
# [https://www.youtube.com/watch?v=PGPdT9zz-xg Next steps]
# [http://www.youtube.com/watch?v=8mHFATWbeik Square Attacked (1)]
+
# [https://www.youtube.com/watch?v=8mHFATWbeik Square Attacked (1)]
# [http://www.youtube.com/watch?v=VdH0ObqK3CA Square Attacked (2)]
+
# [https://www.youtube.com/watch?v=VdH0ObqK3CA Square Attacked (2)]
# [http://www.youtube.com/watch?v=KQcArvyrbIo Move Format & Bits (1)] » [[Encoding Moves]]
+
# [https://www.youtube.com/watch?v=KQcArvyrbIo Move Format & Bits (1)] » [[Encoding Moves]]
# [http://www.youtube.com/watch?v=N6yImiyzWpo Move Format & Bits (2)]
+
# [https://www.youtube.com/watch?v=N6yImiyzWpo Move Format & Bits (2)]
# [http://www.youtube.com/watch?v=n2ZgdkW7uls Move Format & Bits (3)]
+
# [https://www.youtube.com/watch?v=n2ZgdkW7uls Move Format & Bits (3)]
# [http://www.youtube.com/watch?v=siLoAPTOaWE Printmove and Printsquare]
+
# [https://www.youtube.com/watch?v=siLoAPTOaWE Printmove and Printsquare]
# [http://www.youtube.com/watch?v=uBwwC5uWJKo Move Generation #1] » [[Move Generation]]
+
# [https://www.youtube.com/watch?v=uBwwC5uWJKo Move Generation #1] » [[Move Generation]]
# [http://www.youtube.com/watch?v=wD9CNtvLCrI Move Generation #2 - Validations]
+
# [https://www.youtube.com/watch?v=wD9CNtvLCrI Move Generation #2 - Validations]
# [http://www.youtube.com/watch?v=1TCKuEoHvcs Move Generation #3 - White Pawns]
+
# [https://www.youtube.com/watch?v=1TCKuEoHvcs Move Generation #3 - White Pawns]
# [http://www.youtube.com/watch?v=8LUkqaodUFA Move Generation #4 - Black Pawns]
+
# [https://www.youtube.com/watch?v=8LUkqaodUFA Move Generation #4 - Black Pawns]
# [http://www.youtube.com/watch?v=MFMk5SiXvHQ Move Generation #5 - Piece Index Setup]
+
# [https://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]
+
# [https://www.youtube.com/watch?v=6WovWHeRKFA Move Generation #6 - Non Slider Pieces]
# [http://www.youtube.com/watch?v=dkHlnSP3u3w Move Generation #7 - Slider Pieces]
+
# [https://www.youtube.com/watch?v=dkHlnSP3u3w Move Generation #7 - Slider Pieces]
# [http://www.youtube.com/watch?v=srAcgIKONO4 Move Generation #8 - Castling] » [[Castling]]
+
# [https://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]]
+
# [https://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]]
+
# [https://www.youtube.com/watch?v=ZWcjcn4KVTk Writing MakeMove - Introduction] » [[Make Move]]
# [http://www.youtube.com/watch?v=9Rfx1WHkJ3o Writing MakeMove #1]
+
# [https://www.youtube.com/watch?v=9Rfx1WHkJ3o Writing MakeMove #1]
# [http://www.youtube.com/watch?v=F_L2AhqB4V4 Writing MakeMove #2 - ClearPiece()]
+
# [https://www.youtube.com/watch?v=F_L2AhqB4V4 Writing MakeMove #2 - ClearPiece()]
# [http://www.youtube.com/watch?v=ai_193NC3zU Writing MakeMove #3 - Add/MovePiece()]
+
# [https://www.youtube.com/watch?v=ai_193NC3zU Writing MakeMove #3 - Add/MovePiece()]
# [http://www.youtube.com/watch?v=qnHQJAsJFvk Writing MakeMove #4 - MakeMove()]
+
# [https://www.youtube.com/watch?v=qnHQJAsJFvk Writing MakeMove #4 - MakeMove()]
# [http://www.youtube.com/watch?v=aKaU0WHVrJI Writing MakeMove #5 - TakeMove()]
+
# [https://www.youtube.com/watch?v=aKaU0WHVrJI Writing MakeMove #5 - TakeMove()]
# [http://www.youtube.com/watch?v=ioaPTMKU3zg Introduction to Perft testing] » [[Perft]]
+
# [https://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]]
+
# [https://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]]
+
# [https://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]]
+
# [https://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]]
+
# [https://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]]
+
# [https://www.youtube.com/watch?v=XPOcvp4h7VU Parsing a move from user / GUI] » [[GUI]]
# <span id="Repetitions"></span>[http://www.youtube.com/watch?v=1Vq-Ic9t4FE Repetition Detection] » [[Repetitions]]
+
# <span id="Repetitions"></span>[https://www.youtube.com/watch?v=1Vq-Ic9t4FE Repetition Detection] » [[Repetitions]]
# [http://www.youtube.com/watch?v=l_OrrycM7Fw Getting the time in milliseconds]
+
# [https://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]]
+
# [https://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]
+
# [https://www.youtube.com/watch?v=BpR76VBo7DQ Principal Variation Table #2 Store / Probe]
# [http://www.youtube.com/watch?v=9LKX9jgqx84 Principal Variation Table #3 Retrieval]
+
# [https://www.youtube.com/watch?v=9LKX9jgqx84 Principal Variation Table #3 Retrieval]
# [http://www.youtube.com/watch?v=_063cuTPOe8 Preparation for search]
+
# [https://www.youtube.com/watch?v=_063cuTPOe8 Preparation for search]
# [http://www.youtube.com/watch?v=F74y0ErjWTI Search Function Definitions]
+
# [https://www.youtube.com/watch?v=F74y0ErjWTI Search Function Definitions]
# [http://www.youtube.com/watch?v=zSJF6jZ61w0 Basic Evaluation (very basic)] » [[Evaluation]]
+
# [https://www.youtube.com/watch?v=zSJF6jZ61w0 Basic Evaluation (very basic)] » [[Evaluation]]
# [http://www.youtube.com/watch?v=6WobF80RgaY Clear To Search]
+
# [https://www.youtube.com/watch?v=6WobF80RgaY Clear To Search]
# [http://www.youtube.com/watch?v=31guiVzPJuU Writing the Iterative Deepening Function] » [[Iterative Deepening]]
+
# [https://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]]
+
# [https://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]]
+
# [https://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]]
+
# [https://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]
+
# [https://www.youtube.com/watch?v=8LYMXwH1xsg Move Ordering - Picking a Move]
# [http://www.youtube.com/watch?v=RkZ7mUQnviA BUG ALERT - Change to Move Generation!]
+
# [https://www.youtube.com/watch?v=RkZ7mUQnviA BUG ALERT - Change to Move Generation!]
 
# <span id="KillHist"></span>[http://www.youtube.com/watch?v=jIc2YOP1W7U Move Ordering - Killer, History Heuristics, PV Move] » [[Killer Heuristic]], [[History Heuristic]], [[PV-Move]]
 
# <span id="KillHist"></span>[http://www.youtube.com/watch?v=jIc2YOP1W7U Move Ordering - Killer, History Heuristics, PV Move] » [[Killer Heuristic]], [[History Heuristic]], [[PV-Move]]
# <span id="Quiescence"></span>[http://www.youtube.com/watch?v=ouWcWzyCOCY Quiescence - Getting rid of the horizon effect] » [[Quiescence Search]]
+
# <span id="Quiescence"></span>[https://www.youtube.com/watch?v=ouWcWzyCOCY Quiescence - Getting rid of the horizon effect] » [[Quiescence Search]]
# <span id="UCI"></span>[http://www.youtube.com/watch?v=NBl92Vs0fos UCI Protocol #1 - Intoduction] » [[UCI]]
+
# <span id="UCI"></span>[https://www.youtube.com/watch?v=NBl92Vs0fos UCI Protocol #1 - Intoduction] » [[UCI]]
# [http://www.youtube.com/watch?v=gcBYSby9f88 UCI Protocol #2 - UCI Loop]
+
# [https://www.youtube.com/watch?v=gcBYSby9f88 UCI Protocol #2 - UCI Loop]
# [http://www.youtube.com/watch?v=EzkmJEkAmoY UCI Protocol #3 - Parse Position]
+
# [https://www.youtube.com/watch?v=EzkmJEkAmoY UCI Protocol #3 - Parse Position]
# [http://www.youtube.com/watch?v=Lo54mNqOMAs UCI Protocol #4 - Parse Go]
+
# [https://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]
+
# [https://www.youtube.com/watch?v=gVGadWuBqEA UCI Protocol #5 - Interrupt Thinking & Working Program]
#  <span id="Nero"></span>[http://www.youtube.com/watch?v=_1S_vDHWJp8 Vice vs Nero 6.1 - The first ever game!!] » [[Nero]]
+
#  <span id="Nero"></span>[https://www.youtube.com/watch?v=_1S_vDHWJp8 Vice vs Nero 6.1 - The first ever game!!] » [[Nero]]
# <span id="CECP"></span>[http://www.youtube.com/watch?v=DZwW-st4Jl8 XBoard / Winboard Protocol #1] » [[Chess Engine Communication Protocol]]
+
# <span id="CECP"></span>[https://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]
+
# [https://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]
+
# [https://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]
+
# [https://www.youtube.com/watch?v=KuQCsEcCO0g BUG ALERT #2]
# [http://www.youtube.com/watch?v=1SiR7A1NQ0g In Check Extension] » [[Check Extensions]]
+
# [https://www.youtube.com/watch?v=1SiR7A1NQ0g In Check Extension] » [[Check Extensions]]
# [http://www.youtube.com/watch?v=XkbK_yOvcUw Improving Evaluation - Bitmasks] » [[Evaluation]]
+
# [https://www.youtube.com/watch?v=XkbK_yOvcUw Improving Evaluation - Bitmasks] » [[Evaluation]]
# [http://www.youtube.com/watch?v=oB2l2KADPYc Improving Evaluation - Pawn Bitmasks]
+
# [https://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]]
+
# [https://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]]
+
# [https://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]]
+
# [https://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]]
+
# [https://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]]
+
# [https://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]
+
# [https://www.youtube.com/watch?v=5rqXb_QMLA4 Null Move Pruning #2]
# [http://www.youtube.com/watch?v=MMoOsCHSdj4 Transpositon Table] » [[Transposition Table]]
+
# [https://www.youtube.com/watch?v=MMoOsCHSdj4 Transpositon Table] » [[Transposition Table]]
# [http://www.youtube.com/watch?v=jmLNzigTceM Test Results, Debug Test Run] » [[Debugging]]
+
# [https://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]
+
# [https://www.youtube.com/watch?v=-G_tQKNfVuM Vice 1.0 release, end of series]
# <span id="Polyglot"></span>[http://www.youtube.com/watch?v=HjZtevzCa5Y Adding An opening Book Using Polyglot] » [[Opening Book]], [[PolyGlot]]
+
# <span id="Polyglot"></span>[https://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]
+
# [https://www.youtube.com/watch?v=hGy5kR_mOdM Polyglot Opening Book #1]
# [http://www.youtube.com/watch?v=jEurXv03JIs Polyglot Book #2 Hashkey Generation]
+
# [https://www.youtube.com/watch?v=jEurXv03JIs Polyglot Book #2 Hashkey Generation]
# [http://www.youtube.com/watch?v=_VZfnlhk2SU Polyglot Book #3 Read In Data]
+
# [https://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]
+
# [https://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]
+
# [https://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]
+
# [https://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]
+
# [https://www.youtube.com/watch?v=eGGL_9_qduI Vice 1.1 Polyglot Books]
 
==Misc==
 
==Misc==
* [http://en.wiktionary.org/wiki/vice vice - Wiktionary]
+
* [https://en.wiktionary.org/wiki/vice vice - Wiktionary]
 
* [https://en.wikipedia.org/wiki/Vice_%28disambiguation%29 Vice (disambiguation) from Wikipedia]
 
* [https://en.wikipedia.org/wiki/Vice_%28disambiguation%29 Vice (disambiguation) from Wikipedia]
 
* [https://en.wikipedia.org/wiki/Vice Vice from Wikipedia]
 
* [https://en.wikipedia.org/wiki/Vice Vice from Wikipedia]
Line 126: Line 127:
 
=References=  
 
=References=  
 
<references />
 
<references />
 
 
'''[[Engines|Up one Level]]'''
 
'''[[Engines|Up one Level]]'''
[[Category:Open Source]][[Category:UCI]][[Category:WinBoard]][[Category:XBoard]][[Category:Acronym]][[Category:Demonology]]
+
[[Category:Open Source]]
 +
[[Category:UCI]]
 +
[[Category:WinBoard]]
 +
[[Category:XBoard]]
 +
[[Category:Mac]]
 +
[[Category:Acronym]]
 +
[[Category:Demonology]]
 +
[[Category:Didactic]]

Revision as of 07:59, 30 April 2021

Home * Engines * Vice

Tree of Vices [1]

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 [2].

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 [3].

Forum Posts

Re: Mussaurus 0.1-prealpha - a poor man's Vice by Richard Allbert, CCC, December 02, 2019

External Links

Chess Engine

Videos

  1. Resources and Community
  2. Board Representation » Board Representation
  3. First Definitions
  4. Board Structure
  5. Undo-Move Structure » Unmake Move
  6. Array[120] to Array[64] Indexing for Pawns » 10x12 Board, 8x8 Board
  7. Piece Lists and ASSERT! » Piece-Lists
  8. Bitboards » Bitboards
  9. Bitboards Pop and Count » BitScan, Population Count
  10. Set and Clear bits » General Setwise Operations
  11. Position Key (Hashkey) #1 » Zobrist Hashing
  12. Position Key (Hashkey) #2
  13. Position Setup - Reset Board
  14. Position Setup - FEN Notation  » Forsyth-Edwards Notation
  15. Parsing An FEN (1)
  16. Parsing An FEN (2)
  17. Printing the board to screen
  18. Piece Lists » Piece-Lists
  19. Rank and File Arrays
  20. Checkboard
  21. Next steps
  22. Square Attacked (1)
  23. Square Attacked (2)
  24. Move Format & Bits (1) » Encoding Moves
  25. Move Format & Bits (2)
  26. Move Format & Bits (3)
  27. Printmove and Printsquare
  28. Move Generation #1 » Move Generation
  29. Move Generation #2 - Validations
  30. Move Generation #3 - White Pawns
  31. Move Generation #4 - Black Pawns
  32. Move Generation #5 - Piece Index Setup
  33. Move Generation #6 - Non Slider Pieces
  34. Move Generation #7 - Slider Pieces
  35. Move Generation #8 - Castling » Castling
  36. Move Generation #9 - Final Movelist! » Move List
  37. Writing MakeMove - Introduction » Make Move
  38. Writing MakeMove #1
  39. Writing MakeMove #2 - ClearPiece()
  40. Writing MakeMove #3 - Add/MovePiece()
  41. Writing MakeMove #4 - MakeMove()
  42. Writing MakeMove #5 - TakeMove()
  43. Introduction to Perft testing » Perft
  44. Perft Testing (Move Make / Unmake debug) » Unmake Move
  45. Quick Look At MinMax and NegaMax » Minimax, Negamax
  46. Quick Look At Alpha Beta » Alpha-Beta
  47. Overview of search implementation » Search
  48. Parsing a move from user / GUI » GUI
  49. Repetition Detection » Repetitions
  50. Getting the time in milliseconds
  51. Principal Variation Table #1 Definitions » Principal Variation
  52. Principal Variation Table #2 Store / Probe
  53. Principal Variation Table #3 Retrieval
  54. Preparation for search
  55. Search Function Definitions
  56. Basic Evaluation (very basic) » Evaluation
  57. Clear To Search
  58. Writing the Iterative Deepening Function » Iterative Deepening
  59. Writing the Alpha Beta Function » Alpha-Beta
  60. Vice solves a Mate in 3 ! » Checkmate
  61. Move Ordering - Setting Up MVV LVA » Move Ordering, MVV-LVA
  62. Move Ordering - Picking a Move
  63. BUG ALERT - Change to Move Generation!
  64. Move Ordering - Killer, History Heuristics, PV Move » Killer Heuristic, History Heuristic, PV-Move
  65. Quiescence - Getting rid of the horizon effect » Quiescence Search
  66. UCI Protocol #1 - Intoduction » UCI
  67. UCI Protocol #2 - UCI Loop
  68. UCI Protocol #3 - Parse Position
  69. UCI Protocol #4 - Parse Go
  70. UCI Protocol #5 - Interrupt Thinking & Working Program
  71. Vice vs Nero 6.1 - The first ever game!! » Nero
  72. XBoard / Winboard Protocol #1 » Chess Engine Communication Protocol
  73. XBoard / Winboard Protocol #2
  74. XBoard / Winboard Protocol #3 And Console Mode
  75. BUG ALERT #2
  76. In Check Extension » Check Extensions
  77. Improving Evaluation - Bitmasks » Evaluation
  78. Improving Evaluation - Pawn Bitmasks
  79. Improving Evaluation - Mirror Board Function » Color Flipping
  80. Improving Evaluation - Isolani and passer » Isolated Pawn, Passed Pawn
  81. Improving Evaluation - Open Files » Open File
  82. Improving Evaluation - King Position and Material Draws » Draw Evaluation
  83. Null Move Pruning #1 » Null Move Pruning
  84. Null Move Pruning #2
  85. Transpositon Table » Transposition Table
  86. Test Results, Debug Test Run » Debugging
  87. Vice 1.0 release, end of series
  88. Adding An opening Book Using Polyglot » Opening Book, PolyGlot
  89. Polyglot Opening Book #1
  90. Polyglot Book #2 Hashkey Generation
  91. Polyglot Book #3 Read In Data
  92. Polyglot Book #4 Read Book Moves
  93. Polyglot Book #5 Internal Format Book Moves
  94. Polyglot Book #6 Book Option
  95. Vice 1.1 Polyglot Books

Misc

References

Up one Level