Chessproblems is a community dedicated to exploring the world of chess problems. If solving problems is an excellent way to improve your game, contributing your own problems is even greater. It's like the old adage: you never really know something until you have to teach it. When it comes to adding a problem, it's not enough to simply be able to solve one line of it: you have to know how to refute every single line that isn't a solution. This is a level of rigor not required of the casual problem solver, and yet it's just this kind of rigor that leads to true chess strength. By submitting your own problem, you open it to a review of your peers, to scrutiny by some great chess minds. Their comments will help you improve the problem you submitted, as well as your chess game.
There are two main types of problems: mate in X moves problems, and general "find the solution" problems.
For the mating problems, the player is forced to checkmate their opponent in a certain number of moves. A mate achieved even one move after this number is considered a failure. The nice thing about this format is that it allows the computer to calculate the refutations automatically. The submitter does not have to enter every possible combination (although they can still enter some paths to achieve certain effects -- more on that below.)
With the general solution problems, the goal is not necessarily a mate, although it can still very well end in mate depending on the problem. In such problems, the problem composer must manually mark which paths (sequences of moves) are valid. Any path not marked as a solution is considered a failure. For these problems, it is good practice to anticipate as many probably moves as possible that a problem solver might attempt, and for each one give a valid response. This level of depth is part of what separates problems in this medium from others, such as book. With this type of problem, it may be necessary, or at least helpful, to explain what the problem solver should be trying to accomplish, such as "win a piece" or "force a draw." Alternatively, a problem with no explicit instruction can be good training, as it forces the player to evaluate the whole position. There's a balance between making an accessible problem and training to see the problem yourself, and this balance doesn't have any clear answers.
To begin creating a problem, click the Add Problem button at the top of any page. This will bring you to a page with the problem creation applet. This is the same program as the solving program, but extended to allow for creation and editing. Initially the board starts out full, but you can clear all the pieces but the kings by hitting the "Clear Board" button.
There are two modes in setup: movement and placement. Movement is denoted by a pawn of the color about to move with an arrow on top. First you should change to setup by clicking one of the pieces below, such as a black pawn. Each time you click on the board now, it will change the square to a black pawn. (Click again to clear it.) You can also drag pieces around the board when you're in this mode.
Switching over to the move mode (clicking on one of the pawns with an arrow), you can start to add paths to the problem. Let's say the problem is white to move. When you make a white move, you're playing what a problem solver might try. When you make a black move, it's how the computer will respond. At the end of a correct sequence you should click the green circle button. This will indicate this path as one of the valid solutions to the problem. Any path that doesn't end in a green circle is considered wrong. Generally, it's a good idea to end correct paths with a user move -- the last move illustrates why this works. Conversely, incorrect paths should usually end with a computer response -- this illustrates how the sequence fails. There may be some exceptions to this, but unless you feel confident you know why it should be done differently, end it this way. Note that you only need one green circle on a path -- and almost always just at the end.
When the computer is responding to a player's moves, it will follow the top line of play -- the first variation. (You can choose to have the computer pick different moves randomly if you wish -- see Multiple Choices below.) It's good practice to mark all correct variations with the green correct indicator, even if the path isn't one the computer will choose. This makes the problem navigation more sensible.
You can make a problem a "Mate in X" problem by clicking the "Mate In" box in the upper-left. Enter the number of moves in the text box. Note, in chess problems, the move count in this situations refers to moves only by the problem solver -- it does not include the responses in the middle. I.e., a "Mate in 2" for white will succeed in two white moves and one black move. To remove the mating countdown from your problem, just enter a zero in this box.
It's a good idea to include at least one correct solution in the paths of a mating problem. This lets users see a way to solve it if they're totally perplexed. Note that all valid mates get counted as correct, even if they aren't explicitly listed in the paths.
The effort the computer must exert for a mating problem increases dramatically with each extra move allowed. A mate in 3 seems to be the normal practical limit -- any longer, and the time increases exponentially to a point where the problem solver could be waiting for minutes. For certain problems with a very small number of possible moves at each stage, it may be feasible to have mates in 4. If you want to make, for example, a mate in 5, you can manually input computer responses to the most obvious moves -- maybe even two levels deep. That will save the computer the effort to calculate those positions.
The box along the top of the program can contain text to be shown to the user. Just type away at any position. However, it's worth remembering that when the computer responds to a move, that particular position will go by pretty fast, and it's usually a bad idea to put any text there. Therefore, try to add comments at the half of positions where the solver is about to move. Feel free to put text of any length into this field.
Any problem can contain any number of associated metadata. These are name/value pairs that indicate things like who played white, when a game was played, who composed a problem, and so forth. For the date field, the ideal format is "YYYY-MM-DD". Eventually, the program will try to enforce this. (Just leave out the day or month if unknown.)
When you feel good about the problem you've created, it's time to submit. Just hit the Submit Problem button, and it will immediately be transmitted to the website and made live. Don't forget to submit at the end!
Sometimes a problem can have more than one interesting line of play decided by computer responses. In this case, it's a good idea to add a target on each path. Select the nodes one past the relevant juncture, and mark them all with a target symbol (the button resembles a bullseye.) This means that when the computer gets to this stage, it will pick randomly out of any paths indicated as targets. This helps to increase repeat playability of problems.
If you're working on a new problem, but aren't finished with it, you can stick it into your user sandbox. It won't be visible as part of the normal site, but you can play with it, and ask others to look at in manually. (Note: this isn't working just yet.)
Forbidden moves provide a mechanism for altering the flow of a problem. Sometimes you want to disallow the user making a particular move -- perhaps because you want them to follow a sequence in a certian order that could conceivably be done in different orders, and the path tree would grow prohibatively if you were to include all variations. In this case, you can forbid a move. First, you make it. Then from the position right after the move, you click the forbid move button, which looks like a black slanted line with a red circle on top.
Like forbidden moves, forced moves can streamline the user's choices. Instead of forbidding particular moves, they force the user to choose one of the options you prepared in the problem's path tree. To enact this, go to the position where the user is about to have their move forced and click the button with the white circle having two black lines come out, each with a small black circle.
Chessproblems internally represents problems in PGN format. This is a standard format -- probably the most standard. It's designed to be be read by humans and computers alike (which makes parsing a pain, but that's another story.) When you're designing a problem, you can click the "View PGN" button to see what it looks like at any moment. Clicking the "Reparse" button on this screen reloads the problem into the program -- it's possible to use this for importing chess problems from other sources.
Once your problem goes live, other users will eagerly try to solve it. If they are registered users, their attempts will be recorded into the database, and everyone can see what paths people are trying for a given problems. To see the problem attemps, just click the "Attempt Paths" link from the left side of a problem page.
This feature can be illuminating to the problem author, because often some obvious paths are overlooked when creating the problem -- moves that people will frequently try, but usually lead to a failure. It's hard to completely predict all such moves when creating a problem, so this feature can tell you where you may need to edit your problem and give some good responses to common attempts.
Often you don't get a problem 100% right the first time. That's fine. You can edit problems as many times as you want. (Or even deactivate them completely if necessary.) To edit a problem, just click the "Edit Problem" link from the problem page. Make sure to click Submit Changes when done.