Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines
(1 edit) (+1)

I enjoy playing your NES version of chess. I really like that there are several color options for the chessboard, and the pieces are visually represented well. Thanks for making this game and sharing it. Since I am still a chess novice, I have not won in a fair game against the improved AI in this second version of your game (CNESS), though I have managed to win against the AI in the first version of your game, Chessnovice, since its AI does not maintain its strategies consistently well (with the AI making some mistakes, some of which I learned to recognize from a brief online chess tutorial). If you could incorporate a less efficient AI like the one from the first version of your game as an option in this updated version (maybe labeled as an "easy" AI), to give novice players a better chance to win, I would appreciate it, and I think others would too.

Additionally, I have discovered a bug that allows me to make an illegal move with my king, putting it within one square of the enemy's king. I don't know if this works in all cases, since I've only noticed this possibility in one game so far (my most recent game). The AI has not made such a move against me so far, but I managed to check my opponent's king with my king in multiple instances in a particular game, including capturing a piece adjacent to my opponent's king, after which the AI moved their king away from mine to get out of check. I played the end of this particular game in multiple ways via rewinding (in the Mesen emulator), and in one of them, the AI immediately resigned when I checked it with my king, even though the AI still had 2 rooks it potentially could have used to win. I suppose the AI feared the might of my aggressive king piece that the AI's king wasn't allowed to capture. So I "won" by making an illegal move.

First image: my king was allowed to capture a rook next to the AI's king.

Second image (in a playthrough that I played fairly up to that point): the game let me check the enemy's king with my king.

Third image: Immediately after I moved my king adjacent to the enemy's king (i.e. moving from my position in the second image), the AI resigned.

(1 edit) (+1)

As a separate thing to note, I would like to see the "threefold repetition" rule implemented. In one game, I was stuck in a back-and-forth sequence of checks where I could only move my king to the one available safe square in one direction, only to be checked again by the enemy's queen; this circumstance applied in both directions—one safe square (the only legal move I could do), and the AI determinedly checking me, with no variation. I was hoping the programming would at some point consider the game to be a draw, or allow me to declare a draw, but the AI refused my offer of a draw, despite the impossibility of a checkmate with the AI's chosen strategy, given the endless repetition of our moves on our respective turns. The "50-move rule" and the "75-move rule" should apply here too. I tested to see if maybe either of those was implemented, but I instead could only resign to end the game, despite multiple draw conditions.

I referenced this article for a list of draw conditions in chess: 7 Ways a Chess Game Can End in a Draw (With Examples).

(+1)

Wow thanks for the very detailed feedback, I'll have to look into these

The official rules for threefold repetition indicate that the same position can't happen three times in a game. (https://en.wikipedia.org/wiki/Threefold_repetition) I don't have enough memory on the NES to keep track of all the positions that have been played through the game so I decided to scrap that rule.

I think it could be a good compromise to check that the same 2 moves aren't repeated over and over, I'm just wary of adding unofficial rules to my version of the game.

The 50-move rule is on my todo list and shouldn't be too hard to implement.

(4 edits) (+1)

I would consider the compromise you described to be a partial implementation of the official threefold-repetition rule, and in this case, I think it would be better than not having it at all. I suspect that back-and-forth successively repeated moves are the most common way of threefold repetition happening in a game. Since threefold repetition allows a player to declare a draw, and fivefold repetition causes an automatic draw, according to the article you linked, it would be great if you implemented both of those rules in the form that you described, with the compromise.

If you're planning to implement the 50-move rule but not the 75-move rule, then I suppose it will be an automatic draw, since your game allows the player to offer a draw at any time already; is this the plan?

Edit: I suppose there isn't a need to implement both the threefold-repetition and the fivefold-repetition rules if the player can offer a draw anytime, but if the other player were forced to accept an offered draw after a threefold repetition, that's one way it could work. And since fivefold repetition causes an automatic draw, they could be differentiated that way.

(1 edit) (+1)

I checked the code and there was an issue with my "Is the player in check" code. I test whether the player is in check by looking at their king and finding out if any of the enemies pieces can attack it. It seems I forgot to check if the enemy king can attack your king. I added that check and have it working. I'll put an update out soon.


(2 edits) (+1)

Sounds good. Thanks for fixing the bug.

I have identified another bug, in this case with the player not always being allowed to do the en passant move. Sometimes it works, and sometimes it doesn't; I don't know the conditions that prevent an en passant move from being permitted, but I have an example.

Image 1: The AI player moves a pawn two spaces forward.

Images 2 & 3: The human player's adjacent pawns that each are in a position to perform an en passant move are not given that move as an option.

  

(+1)

I should have a fix for this too. I ran into it as well while doing more testing. 

Thanks for the detailed bug reports. If you run into any more, please post them.

(+1)

By the way, if it's not too much additional work, if you're willing to add the grayscale board color theme from Chessnovice into CNESS, I'd appreciate it. I like having the wide variety of color themes available, and it's a bit disappointing that the grayscale theme was removed in the updated game. I'm grateful for the increased number of color themes available in CNESS compared to Chessnovice, though.

(+1)

Done