chessjoker

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

Pippo
Posts: 50
Joined: Tue Mar 04, 2014 6:40 pm
Location: Murcia España

chessjoker

Post by Pippo »

Hello to all,

I devised a new chess variant with one joker for each opponent (named Chessjoker). It was born on febrary 2014.
In the paper that you can download free here, you should find all,

http://www.bubok.es/libros/231097/Chess ... n-giullare

but it is in italian. Anyway - while I am traslating the paper - I can tell you that the new rules is practically just one: the joker moves like the last piece moved by the adversary. [I discovered that this interesting idea also came in head, some years ago, to T. R. Dawson javascript:emoticon(':evil:'); anyway my game is new and original: in the Dawson game "Jester chess", Joker's basic movement suffers various complications and moreover there are many other new pieces].
However, my game aims to be as conservative as possible: I want to keep the traditional chess experience as possible.
Something more:
- Joker just copy movement: if it copy the King, does not suffer check, castling,... If it copy a pawn, does not promote at last row.
- Joker it isn't obbligated to eat if opponent has eaten: can move or eat freely.
- if a pawn promotes, joker copy the promoted piece.
- the board is 9x9 with a disposition very similar to the standard one.

Although this semplicity, the joker is able to introduce peculiar situations, those may strongly inhibit the movement of important pieces (and promotion too) of adversary; and so to determine the match. In the paper, I describe various situation of this kind and other peculiar game condition.
In principle, I was hoping that the joker introdution should be able to reassign superiority to man against the machine; but now, after talking with some expert (Ubaldo Andrea Farina, Harm Muller... ), I am not so sure javascript:emoticon(':?').
Anyway, many people told me that the idea is quite interesting.

I'd like to see Chessjoker implementated in an engine a day... some help?

Thank you, Giuseppe
mcostalba
Posts: 2684
Joined: Sat Jun 14, 2008 9:17 pm

Re: chessjoker

Post by mcostalba »

Pippo wrote: In principle, I was hoping that the joker introdution should be able to reassign superiority to man against the machine; but now, after talking with some expert (Ubaldo Andrea Farina, Harm Muller... ), I am not so sure javascript:emoticon(':?').
This joker idea introduces tactical complications more than strategical ones and so is more suited for computers that can handle the new piece with very little effort, instead humans go crazy on the increased difficult of calculating for each move what the opponent's joker can reply.

If you are willing to fork Stockfish and get your hands dirty, I can give you some hints on how to proceed (but the coding is on you).

Just a quick observation: stay with 8X8 board and use joker pieces instead of a normal piece. This is much simpler than changing to 9 X 9. Many chess engines use what is called bitboards and going 9X9 completely break it. So if you want to adapt this new rule to an existing engine I'd strongly suggest to remain 8X8.

Also a note on rules: did you clarify if a pawn can promote to joker or not?
Pippo
Posts: 50
Joined: Tue Mar 04, 2014 6:40 pm
Location: Murcia España

Re: chessjoker

Post by Pippo »

Ciao Marco, thank you for your hints!

I don't like, I don't feel good, in the asimmetry that should be in an 8x8 with the joker replacing a pawn... moreover, in a 9x9 there is more complexity...

Yes, the pawn can promote to joker: in the paper (just at last) ther's just an example where is the best thing to do!!!

I don't know yet nothing about stockfish, but I'd may learn...

Thank you again, G.
User avatar
hgm
Posts: 27788
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: chessjoker

Post by hgm »

When you would shrink the board to 9x8, Fairy-Max could play it an hour from now...

Not very well, of course, because I would have to give the Joker a fixed piece value. While its value should be expected to depend on the opponent's material. I guess I would set the Joker value to 4.
mcostalba
Posts: 2684
Joined: Sat Jun 14, 2008 9:17 pm

Re: chessjoker

Post by mcostalba »

Pippo wrote: I don't know yet nothing about stockfish, but I'd may learn...
If you remain with 9X9 then forget Stockfish and also any other engine based on bitboards, the changes required would be too much invasive, almost a completely rewrite.
Pippo
Posts: 50
Joined: Tue Mar 04, 2014 6:40 pm
Location: Murcia España

Re: chessjoker

Post by Pippo »

Ciao Harm!

The option 9x8 sounds, for me, much better!

Really, I though to add a (not necessary) raw, just to return at a simmetric configuration. But if it is so much difficult to implementate... I can quite shrink: all I say in the paper remains perfectly true.

Thank you very much, Giuseppe (Pippo)
Pippo
Posts: 50
Joined: Tue Mar 04, 2014 6:40 pm
Location: Murcia España

Re: chessjoker

Post by Pippo »

Marco,

in the case 9x8 (9 columns, 8 raws) is it possible to implement it in stockfish? Thanks
mcostalba
Posts: 2684
Joined: Sat Jun 14, 2008 9:17 pm

Re: chessjoker

Post by mcostalba »

Pippo wrote: in the case 9x8 (9 columns, 8 raws) is it possible to implement it in stockfish? Thanks
No is not possible. Must be 8 X 8, that is 64 squares.

A bitboard is a 64 bit number (uint64_t) used to represent a board, so for instance the occupied squares on the board are represented by a single 64 bit number where if a square is occupied the corresponding bit is set 1, and if empty is set 0.

Bitboards are used extensively in Stockfish and getting rid of them means to rewrite the engine.
Rein Halbersma
Posts: 741
Joined: Tue May 22, 2007 11:13 am

Re: chessjoker

Post by Rein Halbersma »

mcostalba wrote:
Pippo wrote: in the case 9x8 (9 columns, 8 raws) is it possible to implement it in stockfish? Thanks
No is not possible. Must be 8 X 8, that is 64 squares.

A bitboard is a 64 bit number (uint64_t) used to represent a board, so for instance the occupied squares on the board are represented by a single 64 bit number where if a square is occupied the corresponding bit is set 1, and if empty is set 0.

Bitboards are used extensively in Stockfish and getting rid of them means to rewrite the engine.
Or just write a class BitBoard that is templated on size ;-) (as I have done for my draughts library, works as a drop-in replacement for boards up to 384 squares, due to compiler limits for compile-time evaluation of bitmasks).
mcostalba
Posts: 2684
Joined: Sat Jun 14, 2008 9:17 pm

Re: chessjoker

Post by mcostalba »

Rein Halbersma wrote: Or just write a class BitBoard that is templated on size ;-) (as I have done for my draughts library, works as a drop-in replacement for boards up to 384 squares, due to compiler limits for compile-time evaluation of bitmasks).
I don't think it will work. Apart from the slider attack calculation that should be rewritten anyhow, the biggest impact is in evaluation where almost all the terms rely on the fact that we have an 8X8 board.