I may add that to my projects list, but it will probably be a while before I work on it if I do so at all because of CC22 and life.
If anyone wants to do that, you can feel free to use my assets or any part of my rendering code, which can be found on the GitHub page.

I have made an apng to show the bug. Please don't take this as a negative review, because I really like what you have done...
Issue has been fixed on GitHub, but currently my build environment is kinda broken so I can't release an update to the archives just yet. I'll need to fix that anyway for CC22, so expect an update to be released in the next few days.
Alright, update has been uploaded. I'll edit this once it gets accepted if I remember. The issue was just like two lines that were out of order.
EDIT: it has been accepted.


Alright, progress update time! I decided to work on this a bit today. I added undo and redo (alpha and xtθn, respectively). You can use these infinitely, so you could go back to the beginning of a level after losing just by hitting undo repeatedly. I wouldn't recommend this though, as there is a designated button for restarting.

I also added a magnifier, which is toggleable with stat. Currently it sits in the bottom right of the screen and covers up a bit of the level, which is annoying. Perhaps I could have it switch to the opposite corner from the one the cursor is in, but then you still couldn't see the entire thing at once without hiding the magnifier. Mateo suggested that the magnifier follows the cursor, which might work well but might also cause an annoying blind spot around the player. I'll have to try it out.

I also fixed a bug which made the game unwinnable if you exited the program and then resumed it.

As usual, these changes have been pushed to GitHub, but I still haven't updated the archives as I still have a few things I want to add and I don't want to spam updates at the admins.
More progress! I may edit this post later with a new screenshot as I am still working on stuff today.

As you can see, there is now an icon in the top left showing what tile type is under the cursor and how many of that tile there are remaining. Would it be too cheaty to have it show how many of that type are removable, too?
I also updated the main menu, though I feel it could still use some work. Something about the tiles feels a little bit off.

EDIT: as promised, I've made a bit more progress.
ignore that first bit, I was just typing randomly

I added Cesium's letter key jump feature to the layout list, so you can find them easily. I also added the ability to hold down an arrow key to scroll fast a while ago but decided it wasn't enough to merit an update post.
commandblockguy wrote:
More progress! I may edit this post later with a new screenshot as I am still working on stuff today.

As you can see, there is now an icon in the top left showing what tile type is under the cursor and how many of that tile there are remaining. Would it be too cheaty to have it show how many of that type are removable, too?
I also updated the main menu, though I feel it could still use some work. Something about the tiles feels a little bit off.

EDIT: as promised, I've made a bit more progress.
ignore that first bit, I was just typing randomly

I added Cesium's letter key jump feature to the layout list, so you can find them easily. I also added the ability to hold down an arrow key to scroll fast a while ago but decided it wasn't enough to merit an update post.

Great work!
I love playing this game.

P.S. The thing that seems off about the tiles is that the bottom parallelogram extends to the left beyond the other ones
I uploaded an update to the archive queue and to GitHub with these new features.
I downloaded this program today and I think I have found a bug in the LOSE menu.

After the third loss on the first level, I pressed the Restart button. The screen went white and then the RAM Cleared message displayed.

I had everything on my calculator backed up, so nothing was lost.

But other than this, I really like the program. Great work, commandblockguy! Very Happy
Thanks for the report! I'll look into it later today.

EDIT: So far I have been unable to replicate this. Are you using the latest version of the program (the one which allows undos), or the first version added to the archives? And does it happen consistently for you, or did it just happen once?
I downloaded the version that is currently in the Cemetech archives and it allows undos.

After it happened the first time, I continued to play it but just avoided using the restart button, so I wouldn't crash my calculator again. I just lost two more games on purpose to test it again, and it didn't cause a crash. I don't know if it was just my calculator or an odd, one-time glitch in the program.

I'll keep on checking for it as I go through the levels, and if it comes back, I'll make a post. Smile

EDIT: I have concluded my calculator has a "personality." Mahjong CE ran smoothly in CEmu, but after three losses on my calculator, it crashed. Unless someone else can replicate this, I think that the program is fine, and my calculator is the problem. (Fortunately however, I can still play it on-calc by starting levels the normal way.)
I was able to reproduce this once (on a physical calc, so unfortunately I didn't get any data). I can't get it to happen consistently, but when it doesn't happen it returns to the main menu instead of restarting which is also fishy. I'll investigate this more when I get a chance.
I've fixed the crash bug that Captain Calc experienced. I've uploaded the updated version to the archives, as well as adding a new release on GitHub. The issue was tough to track down, and despite only being visible on the restart menu is actually located in the function that checked how many moves are available.

The gist of the issue is that, to count the number of moves, I count how many of each tile can be removed and store the totals in an array. 0 corresponds to no tile, so I subtracted 1 from the tile type when getting the index to save a byte of space. However, I didn't check whether the tile type was non-zero, so the total number of spaces not occupied by a tile was being stored to position -1 of the array. This memory location happened to be the last byte of the tile backup that I restore from when restarting a game. This resulted in a garbage tile being placed in the front bottom left corner. When calculating the number of moves after restarting the level, this garbage tile, often with a larger-than-normal type, was counted. This caused yet another out-of-bounds issue, which crashed the calculator.

This issue produced a crash on a physical calc that I'd never seen before. Every other line on the screen turned dark, causing the screen to resemble a CRT. The game's normal graphics were still visible in between the dark lines. Then, every pixel got lighter and lighter until it was completely white after about 30 seconds. I then had to reset using the button.

Anyways, now that I've revisited this project a bit, I kinda want to work on it more. If I have time, I'll try to implement a better generation algorithm that's guaranteed to make a level with at least one solution, rather than varying from "almost always possible" to "almost never possible" depending on the layout. I also think it would be neat if you could connect two calculators over USB to share high scores or even play collaboratively, which would definitely be possible now that usbdrvce and srldrvce are nearing completion. However, I would want players to still be able to use the game even if they don't have the USB libraries, which the toolchain currently doesn't support.
I actually experienced a crash somewhat like this when I decided to enter test mode on a whim on my TI-84+ CE, except every other line on the screen didn't get dark like a CRT.
I've uploaded an update (v1.4) to the archives, yadda yadda, or https://github.com/commandblockguy/mahjong-ce/releases.

Losing a level will now save a score based on the number of tiles removed from the board. You can also now set a name when entering a high score.
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 2 of 2
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement