0

I'd like to try coding a program to play chess. Therefore, to help myself, I'm writing down some possible choices that I will have to make to design the program (e.g. what data type for the chessboard, what for the pieces, ...).

Is it ok to ask here feedback on these kind of things?

I've seen there's a similar existing question here on meta, but it's as general as the title reads (Where can I ask for feedback on my concept?), so I think I could get a more fine grained answer to my meta-question, as I'm specifying exactly what kind of program I want to write. (I guess based on this meta question, you could already imagine what the actual question will look like.)

To give more detail. My question would be structured as follows, and I would ask if what I write makes all sense, if I'm neglecting something important, if I'm creating a terrible design flaw...

  • For the board I could use

    • a 8 by 8 array representing ...

      • pros: ...
      • cons: ...
    • a 2 by n array representing ...

      • pros: ...
      • cons: ...
  • For pieces, I think they should

    • necessarily contain: ...
    • could contain: ...
  • I could represent the moves as ...

    • pros: ...
    • cons: ...
1
2

Our community does not regard pro-con questions as a good fit for this site, so I would expect a question of this form to be closed quickly.

Instead, you can try to implement a prototype of your data structures, ideally with some code using them, then ask for a design review. Still, there is a certain risk for such a question of getting perceived as too broad for the Q&A format of this site (see Are Design Review questions on-topic? and Why questions about “the correct way” are too broad). It is usually more successful to focus on one - and only one - aspect of your problem and ask a specific question about it.

Moreover, our community expects askers to do some research on their own before asking, show us what they found, and why it did not suit their needs. Chess programming is an extensively studied topic, and I am sure you will find tons of resources at the web, especially about the pros and cons of different data structures for modeling chess. For example, it took me less than a minute to find this Wikipedia page about chess board representations.

Hence, I would recommend to invest an hour or two into searching the Web. When you found something, tried it out and run into a specific conceptual issue, then you are at the point where it starts making sense to ask a question on this site about that issue.

Finally, don't overestimate the importance of picking the "ideal data structures" right from the start. Chess boards, pieces and moves contain only a handful of attributes. Optimizing their "internal representation" should be kept exactly this - internal - so one can change them later, if required. This is often just micro optimization. Though this can definitely be useful in chess programming, it can still usually be done afterwards, and should not be the basis for conceptual decisions.

The exception may be the case of an algorithm which requires to store millions of boards in memory. However, for this situation, it is viable to use two different data structures for such cases, one optimized for storage and one for fast processing. This approach avoids the need for designing a "perfect all-in-one data structure" up-front, which often does not exist.

1

Without seeing a specific example question, I'd lean toward the thinking that these types of questions would be closed, most probably as needing details or clarity, needing focus, or opinion-based. Generally speaking, questions asking for feedback often fall into the category of questions that should be avoided, specifically open-ended and hypothetical questions or cases where multiple answers are equally valid.

Specifically, when it comes to design, we do have guidance for design review questions. Similar rules can be applied to other question types as well.

4
  • I've updated my question to give more detail. – Enlico Jan 10 at 17:40
  • @Enlico That doesn't help since it's not a specific example of a question. By "specific example", I mean an exact title and body that you would propose to ask on the main site. Even given the additional information, it still appears like a question of that format would be quickly closed since it falls into the category of questions that should be avoided. – Thomas Owens Jan 10 at 17:54
  • So you're suggesting that I write my actual question here on meta in a quote block, right? In this case I don't see how it can be an "example"; it would be the actual question. If I have to write it, than what's the point of posting it here and be told "it will/won't be deleted" instead of posting it on the site and see it answered/closed? What's the added value of meta? – Enlico Jan 10 at 17:56
  • 1
    @Enlico If you post enough questions on the Main site that get downvoted, closed, and deleted, a block can be placed on your account that prevents you from asking new questions. Since it's automated, there's nothing anyone (a moderator or anyone else) can do to reverse it. One purpose of Meta is to get feedback before those questions are posted to avoid that. Another purpose is to discuss questions that people think should or should not be closed/deleted after they are posted. – Thomas Owens Jan 10 at 18:14

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .