PASTEBIN
New
(current)
Expires: Never
1 day
1 hour
1 month
1 week
1 year
10 minutes
5 minutes
Never
Burn: No
Yes
No
Markup
CSS
C-like
JavaScript
──────────
ABAP
ActionScript
Ada
Apache Configuration
APL
AppleScript
Arduino
ARFF
AsciiDoc
6502 Assembly
ASP.NET (C#)
AutoHotkey
AutoIt
Bash
BASIC
Batch
Bison
Brainfuck
Bro
C
C#
C++
CoffeeScript
Clojure
Crystal
Content-Security-Policy
CSS Extras
D
Dart
Diff
Django/Jinja2
Docker
Eiffel
Elixir
Elm
ERB
Erlang
F#
Flow
Fortran
GEDCOM
Gherkin
Git
GLSL
GameMaker
Go
GraphQL
Groovy
Haml
Handlebars
Haskell
Haxe
HTTP
HTTP Public-Key-Pins
HTTP STS
IchigoJam
Icon
Inform 7
Ini
Io
J
Java
Jolie
JSON
Julia
Keyman
Kotlin
LaTeX
Less
Liquid
Lisp
LiveScript
LOLCODE
Lua
Makefile
Markdown
Markup templating
MATLAB
MEL
Mizar
Monkey
N4JS
NASM
nginx
Nim
Nix
NSIS
Objective-C
OCaml
OpenCL
Oz
PARI/GP
Parser
Pascal
Perl
PHP
PHP Extras
PL/SQL
PowerShell
Processing
Prolog
.properties
Protocol Buffers
Pug
Puppet
Pure
Python
Q (kdb+ database)
Qore
R
React JSX
React TSX
Ren'py
Reason
reST (reStructuredText)
Rip
Roboconf
Ruby
Rust
SAS
Sass (Sass)
Sass (Scss)
Scala
Scheme
Smalltalk
Smarty
SQL
Soy (Closure Template)
Stylus
Swift
TAP
Tcl
Textile
Template Toolkit 2
Twig
TypeScript
VB.Net
Velocity
Verilog
VHDL
vim
Visual Basic
WebAssembly
Wiki markup
Xeora
Xojo (REALbasic)
XQuery
YAML
Send
--expandArc: evaluate let sideToMove = position.sideToMove_1 let nonSideToMove = opposite(sideToMove) let middleGamePhase = getGamePhase(position) let occupancy = getOccupancy(position) let pawns: array[PieceColor.White .. PieceColor.Black, Bitboard] = [ getBitboard(position, Pawn, White), getBitboard(position, Pawn, Black)] let rooks: array[PieceColor.White .. PieceColor.Black, Bitboard] = [ getBitboard(position, Rook, White), getBitboard(position, Rook, Black)] let kingZones: array[PieceColor.White .. PieceColor.Black, Bitboard] = [ getKingZoneMask(White, toSquare(getBitboard(position, King, White))), getKingZoneMask(Black, toSquare(getBitboard(position, King, Black)))] let allPawns = pawns[White] or pawns[Black] let endGamePhase = 24 - middleGamePhase let scaledMiddleGame = middleGamePhase / 24 let scaledEndGame = endGamePhase / 24 var middleGameScores: array[PieceColor.White .. PieceColor.Black, Score] = [0, 0] var endGameScores: array[PieceColor.White .. PieceColor.Black, Score] = [0, 0] var kingAttackers: array[PieceColor.White .. PieceColor.Black, int] = [0, 0] block :tmp: var sq var bits = occupancy block :tmp_1: while bits != 0: sq = toSquare(bits) let piece = getPiece(position, sq) let enemyColor = opposite(piece.color) let attacks = getAttackingMoves(position, sq) kingAttackers[enemyColor] += countSquares(attacks and kingZones[enemyColor]) let mobilityMoves = countSquares(getMobility(position, sq)) middleGameScores[piece.color] += MIDDLEGAME_VALUE_TABLES[piece.color][piece.kind][sq] endGameScores[piece.color] += ENDGAME_VALUE_TABLES[piece.color][piece.kind][sq] let scores = getMobilityBonus(piece.kind, mobilityMoves) middleGameScores[piece.color] += scores.mg endGameScores[piece.color] += scores.eg bits = bits and bits - 1 block :tmp_2: var color_1 mixin inc var res = 0 block :tmp_3: while res <= 1: var :tmpD :tmpD_1 color_1 = chckRange(res, White, None) let side = if color_1 == Black: :tmpD = -1.0 :tmpD else: :tmpD_1 = 1.0 :tmpD_1 let bishopPair = countSquares(getBitboard(position, Bishop, color_1)) == 2 if bishopPair: middleGameScores[color_1] += 62 endGameScores[color_1] += 147 let attacked = clamp(kingAttackers[color_1], 0, 8) middleGameScores[color_1] += KING_ZONE_ATTACKS_MIDDLEGAME_BONUS[attacked] endGameScores[color_1] += KING_ZONE_ATTACKS_ENDGAME_BONUS[attacked] let strongPawns = countSquares((forwardLeftRelativeTo(pawns[color_1], color_1) or forwardRightRelativeTo(pawns[color_1], color_1)) and pawns[color_1]) middleGameScores[color_1] += 22 * chckRange(strongPawns, -2147483648'i32, 2147483647'i32) endGameScores[color_1] += 24 * chckRange(strongPawns, -2147483648'i32, 2147483647'i32) block :tmp_4: var pawn var :tmp_5 :tmp_5 = pawns[color_1] var bits_1 = :tmp_5 block :tmp_6: while bits_1 != 0: var :tmpD_2 :tmpD_3 pawn = toSquare(bits_1) let square = if color_1 == Black: :tmpD_2 = flip(pawn) :tmpD_2 else: :tmpD_3 = pawn :tmpD_3 if (getPassedPawnMask(color_1, pawn) and pawns[opposite(color_1)]) ==_2 0: middleGameScores[color_1] += PASSED_PAWN_MIDDLEGAME_TABLES[color_1][pawn] endGameScores[color_1] += PASSED_PAWN_ENDGAME_TABLES[color_1][pawn] if (pawns[color_1] and getIsolatedPawnMask(fileFromSquare(pawn))) ==_2 0: middleGameScores[color_1] += ISOLATED_PAWN_MIDDLEGAME_TABLES[color_1][pawn] endGameScores[color_1] += ISOLATED_PAWN_ENDGAME_TABLES[color_1][ pawn] bits_1 = bits_1 and bits_1 - 1 block :tmp_7: var file mixin inc var res_1 = 0 block :tmp_8: while res_1 <= 7: file = T(res_1) let fileMask = getFileMask(file) let friendlyPawnsOnFile = pawns[color_1] and fileMask if countSquares(fileMask and allPawns) == 0: block :tmp_9: var rook var :tmp_10 :tmp_10 = rooks[color_1] and fileMask var bits_2 = :tmp_10 block :tmp_11: while bits_2 != 0: rook = toSquare(bits_2) middleGameScores[color_1] += 81 endGameScores[color_1] += 26 bits_2 = bits_2 and bits_2 - 1 if friendlyPawnsOnFile ==_2 0 and countSquares(fileMask and pawns[opposite(color_1)]) == 1: block :tmp_12: var rook_1 var :tmp_13 :tmp_13 = rooks[color_1] and fileMask var bits_3 = :tmp_13 block :tmp_14: while bits_3 != 0: rook_1 = toSquare(bits_3) middleGameScores[color_1] += 32 endGameScores[color_1] += 23 bits_3 = bits_3 and bits_3 - 1 inc(res_1, 1) inc(res, 1) let middleGameScore = middleGameScores[sideToMove] - middleGameScores[nonSideToMove] let endGameScore = endGameScores[sideToMove] - endGameScores[nonSideToMove] result = chckRange((middleGameScore * middleGamePhase + endGameScore * endGamePhase) div 24, -2147483648'i32, 2147483647'i32) result += 10'i32 -- end of expandArc ------------------------