Some pages discussing practical move generation?

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

User avatar
Dan Honeycutt
Posts: 5258
Joined: Mon Feb 27, 2006 4:31 pm
Location: Atlanta, Georgia

Re: Some pages discussing practical move generation?

Post by Dan Honeycutt »

vittyvirus wrote:Not that array representation, but real bitboards... I am not struggling to create a move generator, I just wanted to get an idea of how the world does it...
You might want to look at the code for Cupcake. I include pretty detailed comments on how rotated bitboards work. You can find it here.

Best
Dan H.
User avatar
vittyvirus
Posts: 646
Joined: Wed Jun 18, 2014 2:30 pm
Full name: Fahad Syed

Re: Some pages discussing practical move generation?

Post by vittyvirus »

Dan Honeycutt wrote:
vittyvirus wrote:Not that array representation, but real bitboards... I am not struggling to create a move generator, I just wanted to get an idea of how the world does it...
You might want to look at the code for Cupcake. I include pretty detailed comments on how rotated bitboards work. You can find it here.

Best
Dan H.
Thank you, that helped. But I'm using Magic Bitboards so...
BBauer
Posts: 658
Joined: Wed Mar 08, 2006 8:58 pm

Re: Some pages discussing practical move generation?

Post by BBauer »

zullil wrote:
vittyvirus wrote:
BBauer wrote:Hey Sayed,

don't waste your time with these guyes. You want to create a 3300+ elo engine. Most of them have only achieved a 2800+ engine.
How can they help you?
Go for new ideas!
You already have fen experience, so you know about bm.
Dont waste your time with a general move generator.
What you need is a bm move generator. For chess it is enough to generate *one* move, the best move. With some luck you may find it by picking a random move, or by definition.
For board representation use what you can find. It dosnt matter anyhow.
A good starting point may be Pablos great program MORON.

Humility? Who has achieved anything this way?
Keep up doing nothing and asking questions because, as you know there are no stupid questions but only stupid answers.
Good luck!
Bernhard
1. Yes, I do want to create a 3300+ , and the most strongest engine in the world and I'm not underestimating what I'll be doing. So I am creating my first engine for learning and then I'd create the killer..
2. As you recommended, I'd go for new ideas. I had a lot of ideas before and I will try to implement them in my engine.
3. I suppose you mean best move by bm. An accurate best move generator seems impossible, but a generator that only generates certain 'healthy' moves might be a more realistic goal.
4. I HAVE IMPLEMENTED BITBOARDS IN MY PROGRAM ALREADY!
5. I cant find moron on Google, what's it?
6. +1 for your comments on humility. I personally believe dreams should be high, you can't make a palace while dreaming of an house!
I think Bernhard was being sarcastic. Don't you?

In particular, humility is worth considering. Try building a (sturdy) hut before the world-class palace.
Do you call it sarcastic?
Is it sarcastic if I claim that great persons like
Nero, Napoleon, Stalin, Hilter, Mao would have achieved nothing if they would have been humble?
Ok, I will call it slightly ironic. BTW from wikipedia:
The ironic form of simile, used in sarcasm, and some forms of litotes can emphasize one's meaning by the deliberate use of language which states the opposite of the truth, denies the contrary of the truth, or drastically and obviously understates a factual connection.
I have the feeling that humility is most important in every situation in live.
And even if its so important its the last and most difficult thing to learn.
Kind regards
Bernhard
User avatar
vittyvirus
Posts: 646
Joined: Wed Jun 18, 2014 2:30 pm
Full name: Fahad Syed

Re: Some pages discussing practical move generation?

Post by vittyvirus »

BBauer wrote:
zullil wrote:
vittyvirus wrote:
BBauer wrote:Hey Sayed,

don't waste your time with these guyes. You want to create a 3300+ elo engine. Most of them have only achieved a 2800+ engine.
How can they help you?
Go for new ideas!
You already have fen experience, so you know about bm.
Dont waste your time with a general move generator.
What you need is a bm move generator. For chess it is enough to generate *one* move, the best move. With some luck you may find it by picking a random move, or by definition.
For board representation use what you can find. It dosnt matter anyhow.
A good starting point may be Pablos great program MORON.

Humility? Who has achieved anything this way?
Keep up doing nothing and asking questions because, as you know there are no stupid questions but only stupid answers.
Good luck!
Bernhard
1. Yes, I do want to create a 3300+ , and the most strongest engine in the world and I'm not underestimating what I'll be doing. So I am creating my first engine for learning and then I'd create the killer..
2. As you recommended, I'd go for new ideas. I had a lot of ideas before and I will try to implement them in my engine.
3. I suppose you mean best move by bm. An accurate best move generator seems impossible, but a generator that only generates certain 'healthy' moves might be a more realistic goal.
4. I HAVE IMPLEMENTED BITBOARDS IN MY PROGRAM ALREADY!
5. I cant find moron on Google, what's it?
6. +1 for your comments on humility. I personally believe dreams should be high, you can't make a palace while dreaming of an house!
I think Bernhard was being sarcastic. Don't you?

In particular, humility is worth considering. Try building a (sturdy) hut before the world-class palace.
Do you call it sarcastic?
Is it sarcastic if I claim that great persons like
Nero, Napoleon, Stalin, Hilter, Mao would have achieved nothing if they would have been humble?
Ok, I will call it slightly ironic. BTW from wikipedia:
The ironic form of simile, used in sarcasm, and some forms of litotes can emphasize one's meaning by the deliberate use of language which states the opposite of the truth, denies the contrary of the truth, or drastically and obviously understates a factual connection.
I have the feeling that humility is most important in every situation in live.
And even if its so important its the last and most difficult thing to learn.
Kind regards
Bernhard
I'm with you. These guys don't understand that my dreams are large, but I've started small, and they want me to go even smaller maybe?
zullil
Posts: 6442
Joined: Tue Jan 09, 2007 12:31 am
Location: PA USA
Full name: Louis Zulli

Re: Some pages discussing practical move generation?

Post by zullil »

vittyvirus wrote:
BBauer wrote:
zullil wrote:
vittyvirus wrote:
BBauer wrote:Hey Sayed,

don't waste your time with these guyes. You want to create a 3300+ elo engine. Most of them have only achieved a 2800+ engine.
How can they help you?
Go for new ideas!
You already have fen experience, so you know about bm.
Dont waste your time with a general move generator.
What you need is a bm move generator. For chess it is enough to generate *one* move, the best move. With some luck you may find it by picking a random move, or by definition.
For board representation use what you can find. It dosnt matter anyhow.
A good starting point may be Pablos great program MORON.

Humility? Who has achieved anything this way?
Keep up doing nothing and asking questions because, as you know there are no stupid questions but only stupid answers.
Good luck!
Bernhard
1. Yes, I do want to create a 3300+ , and the most strongest engine in the world and I'm not underestimating what I'll be doing. So I am creating my first engine for learning and then I'd create the killer..
2. As you recommended, I'd go for new ideas. I had a lot of ideas before and I will try to implement them in my engine.
3. I suppose you mean best move by bm. An accurate best move generator seems impossible, but a generator that only generates certain 'healthy' moves might be a more realistic goal.
4. I HAVE IMPLEMENTED BITBOARDS IN MY PROGRAM ALREADY!
5. I cant find moron on Google, what's it?
6. +1 for your comments on humility. I personally believe dreams should be high, you can't make a palace while dreaming of an house!
I think Bernhard was being sarcastic. Don't you?

In particular, humility is worth considering. Try building a (sturdy) hut before the world-class palace.
Do you call it sarcastic?
Is it sarcastic if I claim that great persons like
Nero, Napoleon, Stalin, Hilter, Mao would have achieved nothing if they would have been humble?
Ok, I will call it slightly ironic. BTW from wikipedia:
The ironic form of simile, used in sarcasm, and some forms of litotes can emphasize one's meaning by the deliberate use of language which states the opposite of the truth, denies the contrary of the truth, or drastically and obviously understates a factual connection.
I have the feeling that humility is most important in every situation in live.
And even if its so important its the last and most difficult thing to learn.
Kind regards
Bernhard
I'm with you. These guys don't understand that my dreams are large, but I've started small, and they want me to go even smaller maybe?
You still don't understand.
User avatar
vittyvirus
Posts: 646
Joined: Wed Jun 18, 2014 2:30 pm
Full name: Fahad Syed

Re: Some pages discussing practical move generation?

Post by vittyvirus »

zullil wrote:
vittyvirus wrote:
BBauer wrote:
zullil wrote:
vittyvirus wrote:
BBauer wrote:Hey Sayed,

don't waste your time with these guyes. You want to create a 3300+ elo engine. Most of them have only achieved a 2800+ engine.
How can they help you?
Go for new ideas!
You already have fen experience, so you know about bm.
Dont waste your time with a general move generator.
What you need is a bm move generator. For chess it is enough to generate *one* move, the best move. With some luck you may find it by picking a random move, or by definition.
For board representation use what you can find. It dosnt matter anyhow.
A good starting point may be Pablos great program MORON.

Humility? Who has achieved anything this way?
Keep up doing nothing and asking questions because, as you know there are no stupid questions but only stupid answers.
Good luck!
Bernhard
1. Yes, I do want to create a 3300+ , and the most strongest engine in the world and I'm not underestimating what I'll be doing. So I am creating my first engine for learning and then I'd create the killer..
2. As you recommended, I'd go for new ideas. I had a lot of ideas before and I will try to implement them in my engine.
3. I suppose you mean best move by bm. An accurate best move generator seems impossible, but a generator that only generates certain 'healthy' moves might be a more realistic goal.
4. I HAVE IMPLEMENTED BITBOARDS IN MY PROGRAM ALREADY!
5. I cant find moron on Google, what's it?
6. +1 for your comments on humility. I personally believe dreams should be high, you can't make a palace while dreaming of an house!
I think Bernhard was being sarcastic. Don't you?

In particular, humility is worth considering. Try building a (sturdy) hut before the world-class palace.
Do you call it sarcastic?
Is it sarcastic if I claim that great persons like
Nero, Napoleon, Stalin, Hilter, Mao would have achieved nothing if they would have been humble?
Ok, I will call it slightly ironic. BTW from wikipedia:
The ironic form of simile, used in sarcasm, and some forms of litotes can emphasize one's meaning by the deliberate use of language which states the opposite of the truth, denies the contrary of the truth, or drastically and obviously understates a factual connection.
I have the feeling that humility is most important in every situation in live.
And even if its so important its the last and most difficult thing to learn.
Kind regards
Bernhard
I'm with you. These guys don't understand that my dreams are large, but I've started small, and they want me to go even smaller maybe?
You still don't understand.
This is what you want to say:
Do everything yourself, even if you do it awfully.
Am I right?
Look, I respect you, and I will follow your advice (atleast try to). Please don't think I am here just to argue, but I support BBauer because his views match to mine.
zullil
Posts: 6442
Joined: Tue Jan 09, 2007 12:31 am
Location: PA USA
Full name: Louis Zulli

Re: Some pages discussing practical move generation?

Post by zullil »

vittyvirus wrote:
zullil wrote:
vittyvirus wrote:
BBauer wrote:
zullil wrote:
vittyvirus wrote:
BBauer wrote:Hey Sayed,

don't waste your time with these guyes. You want to create a 3300+ elo engine. Most of them have only achieved a 2800+ engine.
How can they help you?
Go for new ideas!
You already have fen experience, so you know about bm.
Dont waste your time with a general move generator.
What you need is a bm move generator. For chess it is enough to generate *one* move, the best move. With some luck you may find it by picking a random move, or by definition.
For board representation use what you can find. It dosnt matter anyhow.
A good starting point may be Pablos great program MORON.

Humility? Who has achieved anything this way?
Keep up doing nothing and asking questions because, as you know there are no stupid questions but only stupid answers.
Good luck!
Bernhard
1. Yes, I do want to create a 3300+ , and the most strongest engine in the world and I'm not underestimating what I'll be doing. So I am creating my first engine for learning and then I'd create the killer..
2. As you recommended, I'd go for new ideas. I had a lot of ideas before and I will try to implement them in my engine.
3. I suppose you mean best move by bm. An accurate best move generator seems impossible, but a generator that only generates certain 'healthy' moves might be a more realistic goal.
4. I HAVE IMPLEMENTED BITBOARDS IN MY PROGRAM ALREADY!
5. I cant find moron on Google, what's it?
6. +1 for your comments on humility. I personally believe dreams should be high, you can't make a palace while dreaming of an house!
I think Bernhard was being sarcastic. Don't you?

In particular, humility is worth considering. Try building a (sturdy) hut before the world-class palace.
Do you call it sarcastic?
Is it sarcastic if I claim that great persons like
Nero, Napoleon, Stalin, Hilter, Mao would have achieved nothing if they would have been humble?
Ok, I will call it slightly ironic. BTW from wikipedia:
The ironic form of simile, used in sarcasm, and some forms of litotes can emphasize one's meaning by the deliberate use of language which states the opposite of the truth, denies the contrary of the truth, or drastically and obviously understates a factual connection.
I have the feeling that humility is most important in every situation in live.
And even if its so important its the last and most difficult thing to learn.
Kind regards
Bernhard
I'm with you. These guys don't understand that my dreams are large, but I've started small, and they want me to go even smaller maybe?
You still don't understand.
This is what you want to say:
Do everything yourself, even if you do it awfully.
Am I right?
Look, I respect you, and I will follow your advice (atleast try to). Please don't think I am here just to argue, but I support BBauer because his views match to mine.
Good luck with your chess programming. I think a lot of people here, including me, want you to succeed at creating an engine. I never intended for you to do *everything* on your own---just as much as you can.

I've spent my life learning and helping others to learn. (I'm a mathematics professor; computer chess is simply a hobby.) My advice is to start at a very basic level and understand everything you code. As I said, I don't think you should be starting with bitboards, but that's just my opinion, and I've already given it.

PS---I don't think you really understand B. Bauer's views.
User avatar
Dan Honeycutt
Posts: 5258
Joined: Mon Feb 27, 2006 4:31 pm
Location: Atlanta, Georgia

Re: Some pages discussing practical move generation?

Post by Dan Honeycutt »

vittyvirus wrote:
Dan Honeycutt wrote:
vittyvirus wrote:Not that array representation, but real bitboards... I am not struggling to create a move generator, I just wanted to get an idea of how the world does it...
You might want to look at the code for Cupcake. I include pretty detailed comments on how rotated bitboards work. You can find it here.

Best
Dan H.
Thank you, that helped. But I'm using Magic Bitboards so...
Okay. I haven't yet figured out magics. When you figure them out write a well commented move generator and I'll study yours :-)

Best
Dan H.
User avatar
vittyvirus
Posts: 646
Joined: Wed Jun 18, 2014 2:30 pm
Full name: Fahad Syed

Re: Some pages discussing practical move generation?

Post by vittyvirus »

zullil wrote:
vittyvirus wrote:
zullil wrote:
vittyvirus wrote:
BBauer wrote:
zullil wrote:
vittyvirus wrote:
BBauer wrote:Hey Sayed,

don't waste your time with these guyes. You want to create a 3300+ elo engine. Most of them have only achieved a 2800+ engine.
How can they help you?
Go for new ideas!
You already have fen experience, so you know about bm.
Dont waste your time with a general move generator.
What you need is a bm move generator. For chess it is enough to generate *one* move, the best move. With some luck you may find it by picking a random move, or by definition.
For board representation use what you can find. It dosnt matter anyhow.
A good starting point may be Pablos great program MORON.

Humility? Who has achieved anything this way?
Keep up doing nothing and asking questions because, as you know there are no stupid questions but only stupid answers.
Good luck!
Bernhard
1. Yes, I do want to create a 3300+ , and the most strongest engine in the world and I'm not underestimating what I'll be doing. So I am creating my first engine for learning and then I'd create the killer..
2. As you recommended, I'd go for new ideas. I had a lot of ideas before and I will try to implement them in my engine.
3. I suppose you mean best move by bm. An accurate best move generator seems impossible, but a generator that only generates certain 'healthy' moves might be a more realistic goal.
4. I HAVE IMPLEMENTED BITBOARDS IN MY PROGRAM ALREADY!
5. I cant find moron on Google, what's it?
6. +1 for your comments on humility. I personally believe dreams should be high, you can't make a palace while dreaming of an house!
I think Bernhard was being sarcastic. Don't you?

In particular, humility is worth considering. Try building a (sturdy) hut before the world-class palace.
Do you call it sarcastic?
Is it sarcastic if I claim that great persons like
Nero, Napoleon, Stalin, Hilter, Mao would have achieved nothing if they would have been humble?
Ok, I will call it slightly ironic. BTW from wikipedia:
The ironic form of simile, used in sarcasm, and some forms of litotes can emphasize one's meaning by the deliberate use of language which states the opposite of the truth, denies the contrary of the truth, or drastically and obviously understates a factual connection.
I have the feeling that humility is most important in every situation in live.
And even if its so important its the last and most difficult thing to learn.
Kind regards
Bernhard
I'm with you. These guys don't understand that my dreams are large, but I've started small, and they want me to go even smaller maybe?
You still don't understand.
This is what you want to say:
Do everything yourself, even if you do it awfully.
Am I right?
Look, I respect you, and I will follow your advice (atleast try to). Please don't think I am here just to argue, but I support BBauer because his views match to mine.
Good luck with your chess programming. I think a lot of people here, including me, want you to succeed at creating an engine. I never intended for you to do *everything* on your own---just as much as you can.

I've spent my life learning and helping others to learn. (I'm a mathematics professor; computer chess is simply a hobby.) My advice is to start at a very basic level and understand everything you code. As I said, I don't think you should be starting with bitboards, but that's just my opinion, and I've already given it.

PS---I don't think you really understand B. Bauer's views.
I can get everything I code (and I code it on my own), and so I'm going with bitboards. I'd try to understand more *my* code from now :) . And Why do you think I don't understand BBauer's views? Can you tell me what's he meaning?
zullil
Posts: 6442
Joined: Tue Jan 09, 2007 12:31 am
Location: PA USA
Full name: Louis Zulli

Re: Some pages discussing practical move generation?

Post by zullil »

vittyvirus wrote: And Why do you think I don't understand BBauer's views? Can you tell me what's he meaning?
Only Bernhard knows exactly what he means. But when I read, for example, a statement like
BBauer wrote:You want to create a 3300+ elo engine. Most of them have only achieved a 2800+ engine. How can they help you?
I see it as sarcastic. I think Bernhard is trying to tell you to be grateful for advice from any chess programmer, even if his program is not of world-class strength. I believe Bernhard is suggesting to you that the correct answer to "How can they help you?" is "Very much."

I think that as you get older, you will become better at detecting sarcasm. (Or at imagining it is present when it isn't, in case that is what I am guilty of.)