Win a copy of Node.js Design Patterns: Design and implement production-grade Node.js applications using proven patterns and techniques this week in the Server-Side JavaScript and NodeJS forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Ron McLeod
  • Rob Spoor
  • Tim Cooke
  • Junilu Lacar
Sheriffs:
  • Henry Wong
  • Liutauras Vilda
  • Jeanne Boyarsky
Saloon Keepers:
  • Jesse Silverman
  • Tim Holloway
  • Stephan van Hulst
  • Tim Moores
  • Carey Brown
Bartenders:
  • Al Hobbs
  • Mikalai Zaikin
  • Piet Souris

Joining Chess4four

 
Greenhorn
Posts: 4
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hey there,

want to join in on a cool Java project?

It's a spring boot application
with JSP's
which call rest services
via Ajax calls,
the back end is called via jpa.

It's playing chess with 4 people,
here you can see it in action:
https://chess4four.org/dev/

It has been tested,
and,
apart from pat and en passant,
there were no issues.

The code is quite mature
but needs
some finishing off
before it can go to production.

If you'd join,
and have ideas about improvements
they're more than welcome!

You can mail me if you want more info.

Stay stoked!

S.
 
Saloon Keeper
Posts: 13294
292
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Sander Theetaert wrote:the back end is called via jpa.


What do you mean by this? JPA is an API to access databases, not back-ends.

ideas about improvements


I haven't looked at it carefully, but one thing that immediately jumped out at me is the low affordance of the user interface: It's hard to see what pieces I can select, what piece I have selected (and whether I have selected a piece in the first place) and what options I have once I selected a piece. I think your user interface would be much easier to use if you highlight or frame the square that is below the cursor, and maybe give it or the chess piece a different color if it is one you can select.

I noticed you DO slightly change the color of squares you can move a piece to, but I couldn't tell whether it was correct because I couldn't see all squares that I expected I could move a piece to. I expect it has to do with being color-blind. You might want to add a color-blind scheme to your interface.

I also expect your website to give an explanation of the game. Not just to explain the differences with regular chess, but also the rules for people who aren't familiar with chess in the first place.

Finally, you can probably get help with your project more easily if you publicize its source repository, or at least its issue tracker.
 
Sander Theetaert
Greenhorn
Posts: 4
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hey Stephan,

thanks for your reply

Stephan van Hulst wrote:

Sander Theetaert wrote:the back end is called via jpa.


What do you mean by this? JPA is an API to access databases, not back-ends.



To be more exact:
the front-end is a light weight JSP page which sends the events
(board clicks/other interactions with the user interface) to the back-end
JPA is used to talk with the database.


Stephan van Hulst wrote:I also expect your website to give an explanation of the game. Not just to explain the differences with regular chess, but also the rules for people who aren't familiar with chess in the first place.



Good point, I'll add it as a ticket.

I will come back to you about the other points you raised above but they require some thought for a proper reply.

Stephan van Hulst wrote:Finally, you can probably get help with your project more easily if you publicize its source repository, or at least its issue tracker.



The issue tracker is a bit of a pickle:
I use Atlassian and apparently you can't publish a read-only version .

The repository is to be found here:
https://github.com/bamboomy/c44_3

Stay stoked!

S.
 
Sander Theetaert
Greenhorn
Posts: 4
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hey Stephan,

thanks again for your reply .

Indeed, showing which piece is selected
and making the possible moves more visible
were things I didn't think of.

Thanks for this feedback!

I must admit to spend too little consideration
on color blindness than I should.
Professionally we never considered it,
although I never worked for Nike, Atlassian
or a similar company.

(I did work 10 years in Java development.)

I can imagine that you are annoyed a lot
when it comes down to
(for example) indie development...

If you don't mind we probably
could use your help on the final result.

That being said:
knowing which pieces are able to move
is part of the game...

The moves that are illegal are blocked.

Also:
from the experience with the tests
we know that knowing
the rules of Chess
is necessary to play this game.

Explaining the differences with Chess
on the other hand is indeed
a necessary improvement
but both playing the game
without being a basic skilled Chess player
or having an opponent
which lacks this skill
won't be any fun for anyone...

If you'd have other input I'd be glad to read .

We didn't have much exposure yet so
(also other people from this nice site):
just shoot

Stay stoked!!!

S.
 
Stephan van Hulst
Saloon Keeper
Posts: 13294
292
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Sander Theetaert wrote:I can imagine that you are annoyed a lot
when it comes down to
(for example) indie development...


Haha, why? I'm a big fan of indie developers. I find that many of them spend more attention on detail than developers that depend on big publishers.

If you don't mind we probably
could use your help on the final result.


Let me take a look at your code-base first. If I have time, I might fork it and make pull requests for fixes or updates.

knowing which pieces are able to move
is part of the game...


I don't agree with this philosophy. If you make a product, you also make a user manual. You don't make a new type of washing machine and tell users that they are expected to know how to operate it from their experience with other washing machines. Games are no different.

Now, it's a different matter if the game is explained as you play it, or if the user interface is so friendly that players will easily figure out legal moves as they go, but simply telling the users to look up the rules of chess before they can play your game will not inspire a loyal fanbase.

The moves that are illegal are blocked.


This is about user experience, not about whether the game functions correctly. A user that has to click on squares (and possibly make a move they didn't want to make) to find out if a move is legal will get frustrated very quickly.

from the experience with the tests
we know that knowing
the rules of Chess
is necessary to play this game.


Yes. So it's your job to explain the rules of chess. If you don't do this, you're essentially saying: "Sorry, but this game is only intended for experienced chess players and other players are not welcome".

having an opponent
which lacks this skill
won't be any fun for anyone...


It's very presumptuous to decide this for your players. I can imagine that a game of chess that involves more than two players lends itself well to more casual "party game" type of play where none of the players are very experienced.
 
Marshal
Posts: 16601
278
Mac Android IntelliJ IDE Eclipse IDE Spring Debian Java Ubuntu Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Sander Theetaert wrote:
The repository is to be found here:
https://github.com/bamboomy/c44_3


No tests? How can you, per the commit comment on push.sh, do DevOps without tests?
 
You showed up just in time for the waffles! And this tiny ad:
Building a Better World in your Backyard by Paul Wheaton and Shawn Klassen-Koop
https://coderanch.com/wiki/718759/books/Building-World-Backyard-Paul-Wheaton
reply
    Bookmark Topic Watch Topic
  • New Topic