erikdietrich / ChessTDD

This is the source code for the chess example I'm doing for my blog.
30 stars 6 forks source link

Currently there is no way to play! #3

Open heltonbiker opened 8 years ago

heltonbiker commented 8 years ago

I know this is a sample program, but it would be a waste if there was not a way to play it.

Since the main program is a console application, I believe it could be CLI based, but since it is also a .Net application, I think WPF would be the natural way to go.

erikdietrich commented 8 years ago

I feel like I should probably go back and (at least for now), change it from Console app to a library. The original charter was simply to make an engine that would tell you what moves were available to a given piece.

Longer term, I still have plans to evolve the codebase further as part of a subscription-based video series. That's not my highest priority ATM, but it hasn't fallen off my radar, either.

heltonbiker commented 8 years ago

Nice!

I came back to the Chess TDD theme because I found an old board game at home, which I made myself from a wood board and a sliced broomstick (yeah, it's good to be young and have a lot of spare time...). Its name is LASCA, and it was invented by Lasker, a former chess master. That led me to look for that game online, and I decided to create such game as a way to practice TDD, and also WPF good practices.

So, if I eventually finish my Lasca UI, I would be interested in forking your engine :D

In case you are curious, a playable javascript Lasca is here:

http://www.pjb.com.au/laska/play_laska.html

And my LascaWPF repo is here:

https://github.com/heltonbiker/LascaWPF

As a side note, it's quite interesting how involved it is to reason about Class Responsibilities and Collaborations for a board game!

2016-09-28 13:45 GMT-03:00 Erik Dietrich notifications@github.com:

I feel like I should probably go back and (at least for now), change it from Console app to a library. The original charter was simply to make an engine that would tell you what moves were available to a given piece.

Longer term, I still have plans to evolve the codebase further as part of a subscription-based video series. That's not my highest priority ATM, but it hasn't fallen off my radar, either.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/erikdietrich/ChessTDD/issues/3#issuecomment-250225341, or mute the thread https://github.com/notifications/unsubscribe-auth/AApuzX5_rGHKO2G5TEBo-XTlHMnWvO7dks5qupmSgaJpZM4KH92_ .

erikdietrich commented 8 years ago

Yeah, reasoning about the game was definitely something that I didn't expect to be quite so complicated. I wonder if I would have started, knowing how long it eventually took :)

Anyway, feel free to fork and use at your discretion.

darrencauthon commented 8 years ago

Just thinking aloud... I've always found it interesting how the target of the initial tests can influence the design. Like in this case... if it had started as a MVC application with a javascript-based chess board, as a playable game, how would the design and testing approach have changed?

erikdietrich commented 8 years ago

Off the top, I think it would probably have driven the model of the board and pieces to be more visually oriented, somehow. But yeah, that's definitely an interesting thing to contemplate. I'm wondering if you couldn't take something like this, with probably a lot of implementations, and actually evaluate it somehow across various people's work.

darrencauthon commented 8 years ago

I might get one started... I think I want to explore this idea further. Using TDD & BDD, how the design would turn out. I don't think I'd want to get into the details of the game, but spiking an idea would be neat.