Difference between revisions of "Pawn Rams (Bitboards)"

From Chessprogramming wiki
Jump to: navigation, search
Line 39: Line 39:
  
 
=Forum Posts=
 
=Forum Posts=
* [http://groups.google.com/group/gnu.chess/browse_frm/thread/37bbd87f491aa673 Pawn ram code in gnuchess] by [[Chua Kong Sian]], [[GNU Chess#NewsGroup|gnu.chess]], June 18, 1994
+
* [http://groups.google.com/group/gnu.chess/browse_frm/thread/37bbd87f491aa673 Pawn ram code in gnuchess] by [[Chua Kong Sian]], [[GNU Chess#NewsGroup|gnu.chess]], June 18, 1994 » [[GNU Chess]]
 +
* [https://groups.google.com/d/msg/fishcooking/rwakDGcuf5E/YUyeJX9rBQAJ Two ideas for pawn patches] by [[Stephane Nicolet]], [[Computer Chess Forums|FishCooking]], July 28, 2016 » [[Stockfish]]
  
 
=External Links=  
 
=External Links=  
Line 47: Line 48:
 
=References=  
 
=References=  
 
<references />
 
<references />
 
 
'''[[Pawn Pattern and Properties|Up one Level]]'''
 
'''[[Pawn Pattern and Properties|Up one Level]]'''
 
[[Category:Samuel Bak]][[Category:Hans Kmoch]]
 
[[Category:Samuel Bak]][[Category:Hans Kmoch]]

Revision as of 10:47, 28 June 2020

Home * Board Representation * Bitboards * Pawn Pattern and Properties * Pawn Rams

Samuel Bak - Locked [1]

Pawn Rams,
all pawns that are blocked by the opponent's pawns. A ram is a mutual mechanical obstruction. If the rammed pawn is no lever pawn, it becomes member of the immobile pawns. Specially if other properties match, e.g. there is no or no mutual lever-possibility against the opponent counterpart, rams are a symptom of congealment. The term Ram or Widder in German (Ovis, Aries) was coined by Hans Kmoch [2] [3]. Rammed none lever pawns in the center or extended center are most important to decide about bad bishops.

Blocked Positions

Three or four isolated rams are a perfect barrier - no path for either king to enter to opposite area.

. . . . . . . .
. . . . . . . .
. . . . . . . .
. b . . b . . b
. w . . w . . w
. . . . . . . .
. . . . . . . .
. . . . . . . .

Code

Working in the bitboard centric world to determine pawn related pattern set-wise. The code snippets rely on shifting bitboards, specially by one step only.

U64 wRam(U64 wpawns, U64 bpawns) {return soutOne(bpawns) & wpawns;}
U64 bRam(U64 wpawns, U64 bpawns) {return nortOne(wpawns) & bpawns;}

Obviously the number of white rammed pawns is equal to the number of black rammed pawns.

Mutual Mechanical Obstruction

Widder.jpg

Mutual Mechanical Obstruction [4]

See also

Forum Posts

External Links

References

Up one Level