You are browsing as a guest. Sign up (or log in) to start making projects!

Pineapple Chess GUI

  • 11 Devlogs
  • 22 Total hours

Basically the visual aspect of a a chess app, letting you play moves and such, BUT EVERYTHING IS THEMED PINEAPPLES

Ship #1 ✨ Blessed

I made a chess software called Pineapple Chess.
— SUMMARY —
So basically it’s like any other chess software but it is pineapple themed(don’t worry if you don’t like the way it looks you can switch themes)! With 3 themes: Light, Dark, and Pineapple! There is a 2 player mode, if you have 2 people in front of a computer, you can play against each other on 1 computer! With an optional board flip feature! You can play against bots, powered by Stockfish, you can play against bots with different difficulties. And built with Java.
— LINKS —
Github: https://github.com/Shadowtech1234/pineapplechess/
If you want to download, simply go to the Github repo, and go to the releases tab and download it! For more detailed instructions, it is on the Github readme.
— SHOWCASE VIDEO —
Showcase video is available on the very top of the readme in the Github repo.
(I wasn’t able to attach the video to this Ship post)
— CHALLENGES —
Here are some challenges I faced.

  1. When I first started, I had to learn a brand new language that I had never used, which is Java, so it took me a while to get used to it and progress was very slow at the start. Like a lot of hours I spent on the project was not really captured by Hackatime because I was on documentation and troubleshooting a lot.
  2. A very, very big task was app resizing. What I mean is when you resize the app, for example make it fit the entire screen, the app has to make every component scale up, or scale down with a ratio to make it look good. This took me so long to implement and it works, there is just one problem, you have to click the app after you change the window for the resize to apply, so it looks weird when you resize, but you just need to click on the app to refresh it. Hopefully I can fix that in the next update of my app.
  3. Another problem was when I tried building my app to an installer to make it as easy as possible for the user. It just never worked for a while. Like every time I tried to build it would give me a problem, and after I fixed it it just gave me another. This went on 7 times. Of the times I had to rewrite a couple major parts of my app including image loading of the pieces, it worked well in developer mode(which is just clicking the run button in VS Code), but Java kind works differently when compiled into a finished product, so the images didn’t load in a couple builds. But now it works and has a user-friendly installer.
  4. The last challenge I faced was stopping. I have a lot of ideas to add to this, but I realized that if I did all of it, it would be a waste of time. This includes multi-platform support over MacOS and Linux, not only Windows. Working on this is a fun side project but I want to do something more meaningful. So I am shipping this project right now and trying to make it as clean as possible with the current features of the app, and moving on to the next project. I will still be working on this project, but I will probably come back to it after summer ends or ever later.
    That’s basically it. I had a lot of fun making the app, it’s not much but I will add features in the future. Thank you!
  • 11 devlogs
  • 22h
  • 14.56x multiplier
  • 384 Stardust
Try project → See source code →
Open comments for this post

1h 57m 7s logged

I WAS SANE BEFORE TODAY😭😭😭. I have done it, I have finished my app. That part was so easy. But compiling it into a downloadable installer has cost me so much I might as well have sold my soul. I had to build the stupid thing 7 TIMES. I had to mess around with the dependencies for so long, this took like 8 hours but most of it was just trying to fix dependencies and working in the terminal trying to debug why my installer wont work. My installer now works never the less. It is very easy to install in a user’s perspective and it automatically makes a shortcut in the desktop. Sadly this installer is only for windows, sorry Mac and Linux. I will be shipping this project soon. As you can see in the pictures attached, it created the shortcut! And it works!🎉🎉🎉

0
0
7
Open comments for this post

4h 21m 10s logged

This for some reason genuinely took the life out of me. I have finally added the whole point of this chess app, PINEAPPLES! NEW BOARD COLOR, NEW UI THEME, NEW CHESS PEICES. Don’t worry, if you or any other user doesn’t like it, I have added the ability in settings to be able to switch between Light, Dark, and Pineapple Mode. But why would you not want to play with this beauty! The addition of the theme was easy, it was the settings that your able to switch themes that was the hard part. On top of that since I added new chess pieces, the entirety of the image load system in my code and organization of the resources in the source code had to be completely redone, the re-organizing for the file management was not tracked by hackatime but that took way too long. But yea, yay🎉🎉🎉

0
0
23
Open comments for this post

4h 17m 56s logged

I have successfully added Stockfish, an chess engine that is extremely powerful to my app. Took a bit of work, but now you can play against a bot! I have added setting to customize the game against Stockfish if you click it so there’s difficulty selection and the side chooser which lets you choose which side you want to play on. Hardest part was getting the code to work with Stockfish as Stockfish communicates via the Universal Chess Interface (UCI) protocol. The chess engine itself is basically a command line and you can put in the current position and it will spit out the best move in the command line. Its not very user friendly which is why chess GUI’s come in to play like mine, my code translates it from he UI to the command line and vice versa. UCI lets me to be able to use any chess engine I want as long as it uses the UCI protocol, meaning in the future if I decide to make my own chess engine, I can implement it to my app, but for now it will remain as Stockfish.

0
0
8
Open comments for this post

3h 34m 35s logged

A LOT OF NEW STUFF. Easiest part was dark mode yay. but what took me 3 hours and was so hard to do was reseizing, what I mean is you can resize the app how ever way and it works with any screen and it always sets the board at the center, I don’t know why it took this long but I did it yay. I have attached a example of it centering it self on multiple aspect ratios.

0
0
6
Open comments for this post

1h 18m 13s logged

for a very small feature, this should not have taken this long. i added 2 features, the side bar in the left for future stuff, the play button on he left allows to choose the game mode when i add the feature to be able to play bots, i want to be able to choose what I want to be able to do, either play 2 player or bots, so basically the sidebar is the foundation for future features. Then is the feature that should have taken like 10 minutes, but it took me a hour and a half. It is the feature that flips the board after every turn in 2 player mode because 2 player means 2 people are using one computer to play so the board should flip. Like it used to flip the peices were upside down, liekt he images were, and i tried to add code to make it flip but it didnt work, so then I added a seperate folder with the peices edited to be flipped, but then after implemeting that, id id some stuff it swithc the pictures to that folder only when the baord is flipped, BUT THEN IT STILL REMAINED FLIPPED. So i tried so much to finally figure out I did somehtign that amde the peices flip by themselves without editing and using the different stuff, but when i tired to remove the folder andf only use one folder wiht the peices IT STOPPED WORKING, so now I have 2 folder wiht the exact same pictures of the peices and it works😭. sry if I yapped too much but I needed to vent, In the picture attached it shows the baord flipped and the sidebar as well if you wanna see the final product of the work ive done so far. but im gieunly tweaking rn😭

1
0
17
Open comments for this post

37m 48s logged

added a new popup system where instead of it opening a new separate window with the popup, it is more cleaner and in the app, my next step is to add a sidebar to the left and have like a bunch of different stuff there 😄

0
0
11
Open comments for this post

1h 13m 18s logged

BIG PROGRESS, fixed possible move highlights. added a move history to the side, and added draw detection for all possible draws. Next job is hopefully being able to export and import PGN.

0
0
6
Open comments for this post

1h 10m 29s logged

A lot of progress has been done, I have put in all the special moves like castling, en passant, and pawn promotion. And I have also added check and checkmate detection. Also I have added UI popups that appear when you promote so you can choose what piece you want as well as the game over pop up when you checkmate and a rematch button which resets the board. So foundation of my chess game GUI is complete, I have recreated the game, I just have some small tweaks that i can do later like when you click a piece while you are in check, it still shows the viable options that don’t protect your king, but it wont let you move there but it still shows it. On top of that I also want to make the pop ups happen in game without opening a new window. But my main next step is add a move history, draw detection, which can only be done with a move history because 2 ways a draw can happen is when 50 moves have passed and a piece has not been captured, or the same position has been repeated 3 times.

0
0
8
Open comments for this post

1h 59m logged

I have made my chess board render pieces, show viable moves, make moves, and only allow legal moves. Not all special moves have been added like castling, en passant, pawn promotion, stalemate, or even checkmate(you can take the opponent’s king and the opponent can still move😭).

0
0
4
Open comments for this post

40m 6s logged

I have started my project, most of my time was taken switching my GUI from Java Swing to JavaFX. This is just a simple window so far but we are going somewhere. This isn’t a lot but I am learning Java, so its just slow and steady progress.

0
0
10

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…