tsaglam / Carcassonne

A digital version of the board game Carcassonne, implemented in Java. This desktop computer game supports up to five players at the same time (shared-screen multiplayer mode).
Eclipse Public License 2.0
96 stars 16 forks source link

Sometimes tiles can not be placed in otherwise legal positions #4

Closed sanoy1997 closed 2 years ago

sanoy1997 commented 2 years ago

grafik

As seen in this graphic, the game will not allow me to place the tile in the outlined position. I am currently trying to find out why, but maybe this is a known problem. I would like to play games of carcassonne with a lot of tiles and / or custom tiles, so i really like this program.

grafik In this example the piece can also not be placed in the marked spot despite the legality of the placement.

I assume this has something to do with how edges of tiles are defined.

tsaglam commented 2 years ago

Ah, yes, this is technically not a bug. It seems it is one of the few homebrew rules left in my implementation. This rule states that you cannot enclose empty spots in the grid, meaning holes are not allowed. It is a homebrew rule I have been using for so long, that I misremembered it to be an official rule. I just checked the different rule sets the existed throughout time but, it is not in there.

I should deal with it as I did with other homebrew rules (like the hand of tiles and fortifying of patterns) and disable it by default but allowing players to re-enable the rule is the game options if desired. Thanks for the issue!

sanoy1997 commented 2 years ago

i just went back to note, that i found this rule in the code and now feel dumb for thinking its a bug, but if its homebrew then i guess all is fine if i think of anything else i will note it here, i wanted to play giant carcassonne for so long and now i can, just have to think about how to implement other things like cathedrals and castle insignias

tsaglam commented 2 years ago

No worries, it is all fine! Your issue made me realize that users should be able to deactivate that rule if desired. What do you mean by insignias? if you mean emblems, they are already in the game: grafik

sanoy1997 commented 2 years ago

yea they are i kinda thought to much about how to differentiate between noninsignia and insignia tiles, guess there is a list of tilestypes somewhere that states which ones have insignias / emblems

edit: i remember now, what my problem with emblems was how to distinguish what castle the insignia is on, if there would be more then one castle on the tile like this grafik

sanoy1997 commented 2 years ago

also if i am not mistaken, the emblems dont turn with the tiles, i think they should

tsaglam commented 2 years ago

there is a list of tile types somewhere that states which ones have insignias / emblems

Emblems are slightly modified in my game compared to the board game. Im my game all castle tiles that make it harder to complete a castle (more than two sides of the tile are an open castle) have emblems, in order to give some incentive for larger castles.

my problem with emblems was how to distinguish what castle the insignia is on, if there would be more then one castle on the tile like this

Of course, my custom emblem system does not work for cases like this. But this is part of a larger problem: The way I encode tiles is not sufficient for all possible tiles in the board game extensions. For more info check the wiki.

the emblems dont turn with the tiles, i think they should

This is a design decision. As this is a computer game and not a board game, there is always "up" and "down", thus many things do not rotate. You can test that in the tile distribution view by clicking the tiles. This is implemented on purpose and involved quite a lot of work modifying the tiles:

The improved meeple placement UI

sanoy1997 commented 2 years ago

this looks nice, on my local version i changed the location the emblems printed on based on the rotation, and linked the emblems to tiles that have Emblem in there name in the enum list, but i forgot to not turn it too, guess i got to fix that

edit: fixed

grafik grafik grafik grafik

tsaglam commented 2 years ago

I implemented a game rule that determines whether enclosing free spots in the grid (so-called enclaves) is legal or not. Per default, forming these enclaves is legal now, bringing this project in line with the original game. The homebrew rule to forbid enclaves can be enabled in the settings.

Cayllen commented 9 months ago

Hey! I saw you did this feature in 2022, but the latest release is in 2021. Is it possible to create another release for this change? Love the game, super good!

I implemented a game rule that determines whether enclosing free spots in the grid (so-called enclaves) is legal or not. Per default, forming these enclaves is legal now, bringing this project in line with the original game. The homebrew rule to forbid enclaves can be enabled in the settings.

tsaglam commented 9 months ago

Yeah, I should really do a release sometime. At the time, I thought I would add more features before the next release. However, I never did since I do not find as much time for this project anymore. I will make a small release as soon as I can find time for it!