what happened to chess++?

Pages: 12345
I just think that game state should be captured by the configuration file.
No. Just... No.
closed account (10X9216C)
htirwin wrote:
Maybe the user wants to have various saved game configurations, maybe from famous games, they can. Maybe they want to add more of these without modifying and recompiling the program.

It's called a save file. You can even make an ingame editor so you don't have to, gasp, restart the game to reload and edit the configuration. This would be again specific to chess, there aren't many games you want to create scenarios and such. What he has implemented now has nothing to do with what you are describing.

Those who think this stuff should all be hard coded, if I was your boss, you would all be fired.

It's a matter of opinion and if you are firing someone for not having the same opinion as you, you should be fired. Doing extra work, costing the buss more money, that has little to no effect to how the product is going to be used. You'll never finish the project if you keep implementing things for something that some random person might do that one time for the 5 mins they fiddle around with it.
Last edited on
It's called a save file.

Whatever you want to call it, it is what it is, and to support the near bare minimum of chess application features, you need to be able to load a game with all it's state from a file.

So why should you bother repeating yourself, with hard-coded logic? That is more work, violates the dry principle, makes the start-up configuration static, and imposes various other limitations on future development.

I can see no advantages at all to hard-coding in this situation. My best guess is that some people think, "hard-coded, that sounds easier". In reality, this type of thinking often ends up making for more work.

To me it sounds like lack of imagination/vision/for-sight, and laziness.
ChessPlusPlus was eventually going to split into server and client, there's not much reason for a server to need to save games.

Also, reading this thread and seeing everyone misunderstanding everything everyone else says is causing me to lose faith in, well, this community.
You don't seem to understand what advantages it would bring. It's not laziness when I would prefer to describe a game via an actual language such as python than a json configuration file.

All you see is that its "hardcoded" and call it "laziness". What limitation would it impose on future development? How does it violate the dry principle? How does it make the startup configuration static and if it does, why is that a bad thing?

I agree that we should be able to capture a game in it's current state but there are things you aren't taking into account either, such as previous moves. There are potentially other things as well specific to our application.

I think you're the one being close minded about things. @htirwin
Last edited on
@LB, we haven't even gotten to the cursing yet! We're fine. ;D
I'm with LB here. What the hell is going on? Is this argument seriously about whether or not the games default state should be in a save/config file?
Edit: WITH, I'm WITH LB here.
Last edited on
Yeah. Is there something wrong with that?
So, what disadvantages does having a configurable starting state pose?
there are things you aren't taking into account either, such as previous moves
I'm confused? How are previous moves not being taken into account? Are you saying they should be recorded in a save file or shouldn't? You can put just about anything you need/want into a config/save file.

How does it violate the dry principle?
You would have separate systems for loading a default game and loading from file instead of just loading from file. Which relates to:
What limitation would it impose on future development?
If the games internal representation changes then both the default game loader and 'from file' game loader will need to be updated.
How does it make the startup configuration static
Because you will need the source code and need to recompile if you want to change the startup config. Which isn't necessarily a bad thing, but also means you can't easily switch between different configs.
Last edited on
If the games internal representation changes then both the default game loader and 'from file' game loader will need to be updated.

That's plain wrong. The "game loader" is whatever you define it to be. It doesn't have to be some ugly serialization of variables.

Because you will need the source code and need to recompile if you want to change the startup config. Which isn't necessarily a bad thing, but also means you can't easily switch between different configs.

Do you.. do you not understand how a config file works? I'm not sure how to respond to this... I'm now no longer certain in what context you're talking about "configs" from. Why the f#$k would you need source code to modify a configuration file?
Last edited on
I'll take the blame for the heated arguing. Sometimes I like to pretend I am a boss and can fire people I disagree with, but if I was a real boss, I probably wouldn't. I shouldn't have said that.

And I get the feeling I must be misunderstanding people or missing something because I am also starting to wonder what we are really arguing about.

If the configuration file and resource manager are all people seam to have a problem with, it sounds like the project wasn't so bad off?
Last edited on
Ah, sorry, I missed
via an actual language such as python than a json configuration file.
, I was arguing against hard-coded values in cpp there. Wait... So we all agree we should have config files? Is this all just a question of what language they should be in? Or what they should contain?
Why the f#$k would
Oh look, we got to cursing :P
Last edited on
closed account (10X9216C)
I can see no advantages at all to hard-coding in this situation. My best guess is that some people think, "hard-coded, that sounds easier". In reality, this type of thinking often ends up making for more work.

So having to load data from a file, format into some sort of C++ struct and then process it, or store the data in memory instead. You remove an entire process, i don't really see how you could possibly think it is more work to hardcode something like this, inexperience most likely.

To me it sounds like lack of imagination/vision/for-sight, and laziness.

Lol laziness, tell that to your buss when he is overpaying for doing something you needn't do. It is overkill. He is trying to make a chess game but at the same time to make it as "modular" as possible. What he did was simply move what would be a hardcoded array in C++ to an array in a json file. This actually doesn't do anything but increase complexity (if you even bothered to look at his horrendous implementation) for absolutely no gain. The format is so specific to chess that it makes absolutely no sense to have it modifiable for another game. Having this data outside C++ isn't the problem, it is more fundamental than that.

So having to load data from a file, format into some sort of C++ struct and then process it, or store the data in memory instead. You remove an entire process, i don't really see how you could possibly think it is more work to hardcode something like this, inexperience most likely.

It takes more work assuming that you will want to add basic fundamental support to the application later on. When the boss finds out that much of what you wrote now needs to be scrapped and redone properly, it will probably be someone else that needs to clean up your mess.


Lol laziness, tell that to your buss when he is overpaying for doing something you needn't do. It is overkill. He is trying to make a chess game but at the same time to make it as "modular" as possible. What he did was simply move what would be a hardcoded array in C++ to an array in a json file. This actually doesn't do anything but increase complexity (if you even bothered to look at his horrendous implementation) for absolutely no gain. The format is so specific to chess that it makes absolutely no sense to have it modifiable for another game. Having this data outside C++ isn't the problem, it is more fundamental than that.


A lot of money your boss will make be making on this low budget chess application where you can't even save a game.

But since this is an unfunded open source project, the real consequences of being so lazy will be that it will be so basic and under done that it will see practically no use, and nobody will appreciate your work.
Last edited on
You know, this boss sounds like a jackass if he's going around firing or reassigning people for not following his incomprehensibly vague directions.
So he wants independent programmers who will do exactly what he wants without being told what that is. Sounds like he should add Zener cards to his interview process.
Hey, while we're suggesting features to add to a chess game that cannot yet play chess, what about a built-in e-mail client? I'd write it myself, but I'm busy adding CD burning functionality to my image viewer.
Woh, that's pretty neat yo. When do you think you'll finish?
closed account (10X9216C)
chrisname wrote:
Hey, while we're suggesting features to add to a chess game that cannot yet play chess, what about a built-in e-mail client? I'd write it myself, but I'm busy adding CD burning functionality to my image viewer.

Another sensible person on these forums.

It takes more work assuming that you will want to add basic fundamental support to the application later on. When the boss finds out that much of what you wrote now needs to be scrapped and redone properly, it will probably be someone else that needs to clean up your mess.

It doesn't...

1
2
3
4
5
6
7
8
9
10
11
12
13
14

std::string board[][] =
{
{ "pawn", "blah" }, // etc
};

LoadBoard(board);

// versus

auto board = ReadBoardFromConfig("config"); // ReadBoardFromConfig, a lot more work to implement (you prob still haven't looked at LB's disaster implementation)

LoadBoard(board);
Last edited on
I concede. It is laughably stupid to load a chess configuration from a file. What was I thinking? Just imagine all of the extra work that would take; just imagine the added complexity. You would never be able to finish it. Saved games and alternate starting configurations are pointless anyways. I mean, this is the type of thing that some random person might do that one time for the 5 mins they fiddle around with it. You are right. You should give up on even trying right from the start and never look back; it's just too difficult to warrant the effort. And I mean, something else is going to be hard-coded anyways. What kind of person would hard-code one thing and not another?

I mean it would be just like trying to make it support 4 person go on a 5 sphere, or just like adding a built in email client. I mean, it's comparable to adding CD burning functionality to an image viewer. And your boss would be pissed!

I mean, storing a games state in a file. No... just no.
Last edited on
Pages: 12345