Ride The Duck

Ride The Duck Used AI

32 devlogs
45h 11m
Created by DuckyBoi_XD

Creating the first round of "Ride The Bus" in Python as a terminal, gambling program. Some cool features: Save file for data, Terminal-based UI, PyPi compatibility, Duck. (TERMINAL_CRAFT)

Timeline

Ship 1

DuckyBoi_XD

about 11 hours ago

DuckyBoi_XD Covers 32 devlogs and 45h 11m
Earned sticker

GAME DEMONSTRATION - PYPI

I wrote the PyPi method of playing the game in the README. I explained the different steps you need to go through and the different methods for checking your installation

Update attachment

I gave up on implementing Windows compatibility.

Update attachment
Earned sticker

This devlog was a combination of days due to it taking a long time to fix and implement the PyPi package. I created many files to support the PyPi packaging and implemented the code for it to work. On the way, I had to create another file to let the user just use a specific command/code to start the game. As far as I know, it should fully work on macOS (not Windows, I need to fix the bug) and should still save the game data.

Update attachment

Now, after completing the terminal craft part, I want to make it playable on PyPI and or Homebrew for better coverage. In this devog, this was a combination of a bunch of days due to inactivity and other focuses. Basically, I integrated a Windows code that would be runnable on Windows, enabling 'w' and 's' as up arrow and down arrow and attempted to configure and fix parts of the code.

Update attachment
Earned sticker

I fixed some bugs and errors in the game, like the lack of the command clear_screen() and some errors in the logic. I also updated the release page and created a read me, so it's hopefully easy for people to use and understand this project.

Update attachment
Earned sticker

I fixed a bunch of bugs and errors that were appearing in the executable game. I added the executable game file, which is in a tar file, so that people can more easily access it. Sadly, when downloading from GitHub, it will send an error that Apple can't check if it is malware, so I'd have to tell users to either remove it by using a command, or get it from me c:

Updated the exit() code to be sys.exit() to fix errors in the executable code. Also, configuring the executable process and distribution

Update attachment

I fixed some code I forgot to fix/edit, and changed the no more money function so that when you have $0, you are given financial aid ($10), but in their stats, there is a stat called broke count which tracks how many times you needed financial aid. There are still a bunch of features I want to pack into this game, but I'm running out of time (deadline 19th of September). Lastly, I tested the game when it was packaged in an executable file using PyInstaller, and I'm happy to see it work.

I created and finished the help function that was previously in the menu. I am adding infromation about the game and how the rounds work (also the duck replacing jacks). I started on the end function, where if the user has no money left, they have to restart. I might change this where the users are given a bit more money to play with.

Update attachment
Earned sticker

I fixed the logic with the X20 round because, for some reason, I didn't change it to track suits. I also continued on the function after winning the game.

Update attachment
Earned sticker

I created the base of the X20 round of the suits function, where you need to guess the suit for X20 times the original bet (almost done). I also improved the QoL, adding a bet tracking so the player knows their bet at all times.

Update attachment
Earned sticker

I fixed some errors within my code for the X3 round and finished the X4 round in the game. I made sure there were minimal errors and that the output of the code looks nice.

Update attachment

I continued on the second round of the game, over or under. I configured the code to support the new mode, and I found out that a lot of the code didn't work, so I had to attempt to fix it with little hope.

Update attachment

I fixed the logic in the game where the output of the game wasn't working correctly. I realised I might have overused some code, but I think it it pretty good. I started working on the next round

Update attachment

I adjusted the ASCII code to make the card image smaller and more compact. I also made the code to update the stats and track when winning a game.

Update attachment

I finally finished the card output and made the first round work. I probably made it more complex than needed, but at the moment, it works and is good enough.

Update attachment

I finally finished the card ASCII image, which, theoretically, I should be able to use for every round of my game. I tried progressing past the image, but there were tiny problems with the code that I had to fix.

Update attachment

I tried my best to make my card image easier and simpler to use. I still haven't finished it, so I'd have to fix it.

Update attachment

Today I spent SO MUCH TIME trying to configure and create the card ASCII, and I made it, inspired by the Poker over SSH me my friend and I made. I ended up creating a prototype with an image I found nice, but realised the code was a bit overcomplicated and that I wanted to cut it down.

Update attachment

I started on the main game, but before it, I realised I needed to make the icon that tells you what part of the game you're in, as well as showing the multiplier of the round you're in. I had to create a statement that checks variables that will be set during the main game, where they will change the icon depending on the outcome.

Update attachment

I finished the betting check in the main game and added the quick exit (Ctrl-C and Ctrl-D) to the arrow menu.

Update attachment

I started on the main game function. During its development, I created a function to check if it's a float (a number) and if it's a valid money number (2 dp). I also changed the arrow menu function, where the title can be shortened with presets.

Update attachment

I added stats to the stats page and adjusted the save file to save them. I also added/fixed the quick exit using Ctrl-C or Ctrl-D (on Mac) to exit out of the program quickly.

Update attachment

I told my friend about the encryption I added to my save file, and he told me it was way too easy to decode and alter the save file. Even though the code is open source, meaning you can see how it's encoded, I decided to make the save file more secure and not only use base64, but a couple of other methods, which I will now state here, but you can see in the devlog photo if you can read it.

Update attachment

I fixed my values and formatting of my code. I finished the name pick function (for now) and kept my colours and format of my output consistent.

Troubleshot the bug where the text before the arrow key function was too high. I'm just stupid. I removed some code from where I was debugging

Update attachment

I improved on some code relating to the name function and the starting function. I added a single key tracking to use for press any key to continue statements. I also added clear comments to my code, to better organise it.

Update attachment

Here, I created the arrows function, which will create a cool component that will make the game feel smoother and improve QoL. With this, I created a quick menu page and improved the name function.

Update attachment

I added a function to clear the terminal screen, so it's like a game. I created the name value, and I'm happy to know that it was saved through the save file. Lastly, I made a function to print a separator line for a cleaner look.

Update attachment

Added colours and decoration effect to text for the future. I wanted to add a name function, so I added a name value to the save file. I made sure to add a bunch of notes to the save file since it was very complex for my brain, and I needed to understand what was happening in it.

Update attachment

This is the start of my project for TerminalCraft. I will be making the first round of Ride the Bus in Python with many extra features. I made all the files and created the save file system using JSON, and made the card rankings and card deck for the game. Special parts: Used base64 for encoding the save file

Update attachment