I'm in doubt if RobboLito is a clone

Discussion of anything and everything relating to chess playing software and machines.

Moderator: Ras

User avatar
M ANSARI
Posts: 3726
Joined: Thu Mar 16, 2006 7:10 pm

Re: I'm in doubt if RobboLito is a clone

Post by M ANSARI »

Tord Romstad wrote:Once again I've taken a couple of weeks off from computer chess, and once again so much seems to have happened (both here and in my mailbox) that just catching up seems like an impossible task. Sigh. For those of you who have written to me and haven't heard anything from me yet: Please be patient, I hope to reply to all of you within the next few days.

For now, something completely off-topic, because track and field is one of the hobbies competing with computer chess about my attention:
bob wrote:I don't think it will be "washed away". Many years ago (I remember it from the 1968 olympics, but maybe it was used earlier than that) a new high-jump technique hit the track and field world. The "Fosbury flop". Some said "illegal". Some said "this will ruin the high jump. It just changed things and the high-jump is still alive and well, although the record has gone up significantly due to the technique. That's all that might happen here, IMHO.
In fact, even today, a significant minority of the track and field community still thinks that the Fosbury flop has ruined high jump, or at least made it less attractive. This is because it makes the sport considerably less accessible for children and recreational athletes without access to special equipment. In the days before the Fosbury flop (a time I don't personally remember, as I was born in 1974), it was much more common to arrange informal high jump competitions in parks and gardens, on a surface of grass. This is obviously dangerous when using the Fosbury flop, as there is a serious risk of breaking your neck. Of course, it is still possible to use older techniques, but people tend to be more interested in trying to jump the same way the pros do. Therefore, high jump has become increasingly a sport for the elite, and not for the masses.

The above is not my personal opinion, though. I would rather see the rules relaxed, to allow jumping on two feet. If this were to happen, we would probably have seen techniques like this:



The final jump is 2.46, one centimeter higher than Javier Sotomayor's world record. Of course they are cheating by jumping from a bouncy surface, but these are also not world-class high jumpers, but merely good Norwegian gymnasts (which aren't all that good by international standards). The technique works, and I think it would be possible to jump higher this way than with the Fosbury flop, even on a hard surface.
Interesting, but I think that the chances of breaking your neck is pretty much the same if not more ... at least for me :shock:
tano-urayoan
Posts: 638
Joined: Thu Aug 30, 2007 8:23 pm
Location: San Juan, Puerto Rico

Re: I'm in doubt if RobboLito is a clone

Post by tano-urayoan »

bob wrote:Is there a "one foot rule"??? I have never noticed it. The old way of "face down" sort of forced it, and the "flop" sort of does too. But I didn't know there was a rule concerning how to jump...
Rule 182 High Jump:
"The Competition
1.An athlete shall take off from one foot.
2.An athlete fails if:
(a)After the jump, the bar does not remain on the supports because
of the action of the athlete whilst jumping; or
(b)He touches the ground including the landing area beyond the
vertical plane through the nearer edge of the crossbar, either
between or outside the uprights with any part of his body,without first clearing the bar. However, if when he jumps, an
athlete touches the landing area with his foot and in the opinion
of the Judge, no advantage is gained, the jump for that reason
should not be considered a failure.
Note: To assist in the implementation of this Rule a white line
50mm wide shall be drawn (usually by adhesive tape or similar
material) between points 3m outside of each upright, the nearer
edge of the line being drawn along the vertical plane through
the nearer edge of the crossbar.
The Runway and Take-off Area
3.The minimum length of the runway shall be 15m except in
competitions held under Rules 1.1(a), (b), (c) and (f), where the
minimum shall be 20m.
Where conditions permit, the minimum length should be 25m.
4.The maximum overall downward inclination in the last 15m of the
runway and take-off area shall not exceed 1:250 along any radius of
the semicircular area centred midway between the uprights and
having the minimum radius specified in Rule 182.3. The landing area
should be placed so the athlete’s approach is up the inclination.
5.The take-off area shall be level or any inclination shall be in
accordance with the requirements of Rule 182.4 and the IAAF Track
and Field Facilities Manual."
jwes
Posts: 778
Joined: Sat Jul 01, 2006 7:11 am

Re: I'm in doubt if RobboLito is a clone

Post by jwes »

bob wrote:
jwes wrote:
Gian-Carlo Pascutto wrote:
bob wrote: Do you realize how difficult it is to remove comments?
Given that C doesn't allow nesting them, I'd say it's trivial? Did I miss anything?
Isn't there an emacs macro to do that?
My point:

Don't know. Don't care. Concept makes no sense whatsoever, in the first place.
I should have indicated I was joking, mostly. My boss at my first job would strip out comments before looking at code. He said that the code was enough and the comments misled more than helped. Of course, stripping out comments was easy. IIRC, it was just not printing cards with a 'C' in column 6.
User avatar
Sylwy
Posts: 4857
Joined: Fri Apr 21, 2006 4:19 pm
Location: IAȘI - the historical capital of MOLDOVA
Full name: Silvian Rucsandescu

Re: I'm in doubt if RobboLito is a clone/Agreed

Post by Sylwy »

Mike S. wrote:
SzG wrote:You don't have to convince the masses.
........ if I search for the truth I look at the predominant opinion in CCC, and then I believe the opposite... :lol:
Hi Mike !

I like a lot your assertion !

Silvian
OliverUwira

Re: I'm in doubt if RobboLito is a clone

Post by OliverUwira »

Out of curiosity, I've just compared a piece of Rybka code (given by VR here: http://rybkaforum.net/cgi-bin/rybkaforu ... 2#pid20132) with the respective code from RobboLito. The following is just an observation, so please don't give too much heat if I'm breaking a taboo (-:

So in Rybka it's

Code: Select all

for (bb_t knights = Board.pieces [WN]; knights; knights &= knights-1)
{
    int knight_sq = bit_scan (knights);
    for (bb_t captures = knight_moves [knight_sq] & opponent_pieces; captures; captures &= captures - 1)
    {
        int capture_sq = bit_scan (captures);
        *moves ++ = move (knight_sq, capture_sq);
        *values ++ = Board.sq [capture_sq] * 256 + 192;
    }
}
and in RobboLito (Robbo_gen_mossa.h) it's

Code: Select all

#define ALLEGA_AI(T) \
 { \
   while (T) \
   { \
     ai = BSF(T); \
     ALLEGA(LISTA, (qu << 6) | ai); \
     bitLIBERO(ai, T); \
   } \
}

...

for (U = bitbordo_bianco_cavallo; U; bitLIBERO (qu, U))
    {
      qu = BSF (U);
      T = attaco_cavallo[qu] & cel;
      ALLEGA_AI (T);
    }
The RobboLito code does not seem to have the equivalent of

Code: Select all

 *values ++ = Board.sq [capture_sq] * 256 + 192;
The use of "while" instead of "for" in the inner loop might be because the disassembling could have obscured which loop was coded in the original, but the absence of the "values" line could do with an explanation.
Osipov Jury
Posts: 186
Joined: Mon Jan 21, 2008 2:07 pm
Location: Russia

Re: I'm in doubt if RobboLito is a clone

Post by Osipov Jury »

And from Crafty:

Code: Select all

piecebd = WhiteKnights;
while (piecebd) {
  from = LastOne(piecebd);
  moves = knight_attacks[from] & BlackPieces;
  temp = from + (knight << 12);
  while (moves) {
    to = LastOne(moves);
    *move++ = temp | (to << 6) | ((-PcOnSq(to)) << 15);
    Clear(to, moves);
  }
  Clear(from, piecebd);
}
Gian-Carlo Pascutto
Posts: 1260
Joined: Sat Dec 13, 2008 7:00 pm

Re: I'm in doubt if RobboLito is a clone

Post by Gian-Carlo Pascutto »

OliverUwira wrote:
The RobboLito code does not seem to have the equivalent of

Code: Select all

 *values ++ = Board.sq [capture_sq] * 256 + 192;
The use of "while" instead of "for" in the inner loop might be because the disassembling could have obscured which loop was coded in the original, but the absence of the "values" line could do with an explanation.
Incomplete homework.

The line in question is doing MVV/LVA move ordering for captures. So you will only find it if you look for the move generation specifically meant for captures. The move ordering you quoted is not that, so obviously it doesn't match.

If you do find the correct line in Ippolit/RobboLito, you will see that the calculation has been optimized out and replaced by a table. (This optimization might have happened after Vas posted the fragment.)
OliverUwira

Re: I'm in doubt if RobboLito is a clone

Post by OliverUwira »

Gian-Carlo Pascutto wrote:
OliverUwira wrote:
The RobboLito code does not seem to have the equivalent of

Code: Select all

 *values ++ = Board.sq [capture_sq] * 256 + 192;
The use of "while" instead of "for" in the inner loop might be because the disassembling could have obscured which loop was coded in the original, but the absence of the "values" line could do with an explanation.
Incomplete homework.

The line in question is doing MVV/LVA move ordering for captures. So you will only find it if you look for the move generation specifically meant for captures. The move ordering you quoted is not that, so obviously it doesn't match.

If you do find the correct line in Ippolit/RobboLito, you will see that the calculation has been optimized out and replaced by a table. (This optimization might have happened after Vas posted the fragment.)
Sorry, what I had posted was specifically meant for captures, at least if the function name "cattura_bianca" wasn't meant to obscure the reader.

On the other hand, the code is extremely obscure and hard to read. I've even found a .c file that #includes itself :shock:

But of course you've got a point. The line Vas posted could have been from an older version of Rybka.
Gian-Carlo Pascutto
Posts: 1260
Joined: Sat Dec 13, 2008 7:00 pm

Re: I'm in doubt if RobboLito is a clone

Post by Gian-Carlo Pascutto »

OliverUwira wrote: Sorry, what I had posted was specifically meant for captures, at least if the function name "cattura_bianca" wasn't meant to obscure the reader.
cattura_bianca is a preprocessor define for mio_cattura. If you look in that function, you will find

for (U = bitbordo_mio_cavallo; U; bitLIBERO (qu, U))
{
qu = BSF (U);
T = attaco_cavallo[qu] & cel;
ALLEGA_AI (T, cattura_valu[conto_mio_cavallo][c]);
}


and the "cattura_valu" is filled like

cattura_valu[conto_pedone_bianco][conto_donna_nera] =
(0xd0 << 24) + (0x02 << 20);
OliverUwira

Re: I'm in doubt if RobboLito is a clone

Post by OliverUwira »

Gian-Carlo Pascutto wrote:
OliverUwira wrote: Sorry, what I had posted was specifically meant for captures, at least if the function name "cattura_bianca" wasn't meant to obscure the reader.
cattura_bianca is a preprocessor define for mio_cattura. If you look in that function, you will find

for (U = bitbordo_mio_cavallo; U; bitLIBERO (qu, U))
{
qu = BSF (U);
T = attaco_cavallo[qu] & cel;
ALLEGA_AI (T, cattura_valu[conto_mio_cavallo][c]);
}


and the "cattura_valu" is filled like

cattura_valu[conto_pedone_bianco][conto_donna_nera] =
(0xd0 << 24) + (0x02 << 20);
Ok, this rings a bell.
My word, this code really is incredibly obfuscated...