Join us on Discord!
You can help CodeWalrus stay online by donating here.

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - JWinslow23

Media Talk / Re: Funny/awesome Youtube videos
April 06, 2018, 09:48:43 PM
Quote from: TheLastMillennial on April 03, 2018, 03:23:31 AM
Sooo bad, but sooo hilarious. Good job JWinslow23! That's quite an impressive representation of John Oliver and Last Week Tonight.
For the first time I didn't fall asleep learning World Literature. You better have made a 100% with this! :D

What software did you use to make and compile the video?
Sony Vegas Pro. And yes, I did end up getting a 100% ;)
Quote from: gbl08ma on April 02, 2018, 02:43:09 PM
Why did you shut it down? Was the stream of incorrect tweets too much for it to handle? :D

These kinds of error-correcting / "grammar nazi" bots are very popular on Reddit. They also seem to get banned from many subreddits, perhaps because many people find the corrections condescending or that they break the flow of conversation. On Twitter it would be different, though, as unlike what happens on Reddit, Twitter threads don't really get to see all the replies listed... so it'd be pretty easy to ignore such bots.
It got restricted from performing write actions by Twitter, meaning I cannot do anything with it. I tried to resolve it...again...but I don't think it's going to get unrestricted. :(

If anyone knows of a way to make this kind of Twitter bot more "Twitter automation rule friendly", let me know!
Recently, as a little exercise, I made a Twitter bot called On Accident Bot, which detects tweets that use the improper phrase "on accident" and corrects them with "by accident".

If anyone wants explanation, clarification, or source code, please don't hesitate to ask!
Media Talk / Re: Funny/awesome Youtube videos
March 20, 2018, 12:48:07 PM

Made for a school project involving Dracula.
Other / Re: Personal list of NES Game Genie codes
March 12, 2018, 07:45:26 PM

I was playing through Takeshi no Chousenjou recently, and I couldn't get far, but I wanted to see the ending. Apparently, according to an internet rumor, punching 30,720 times at the title screen warps you to the final room of the game, which sounds outlandish. However, looking through the code of the game, it's entirely true!

Therefore, I had to make a Game Genie code related to this. My results are EGOYESOK and GONNOGLE (both attempts at making "readable" codes), which do the same thing: punch once at the title screen to warp to the final room of the game.

The ending, of course, is underwhelming. :P
Quote from: gameblabla on March 09, 2018, 05:18:31 AM
Nice that you did this !
Thanks! And thank you for giving me the idea ;)
Quote from: gameblabla on March 09, 2018, 05:18:31 AM
However i wish it was done through a basic menu (even its just a small sprite) rather than using hardware switches. (i think they got removed in some hardware revisions ?)

Also, as for choosing the obstacles, it should be random because the atari joystick does not have enough buttons.
You can allow players with a genesis pad that though because you can use 2 buttons and the way you're doing it rn is strange.
I like how you can press FIRE and basically do camouflage :P
Yeah, at the point where I added that, there wasn't enough space in 4K to add that much of an option system. But who knows, maybe the game is still able to be optimized!

Choosing the obstacles is not done by the player. Because of the aforementioned button problem, this is done with the same random distribution as the normal game. Rather, UP and DOWN move the obstacle up or down (their neutral position, anyway; wave motion is thrown a bit out of whack otherwise), LEFT slows it down, and RIGHT speeds it up. FIRE turns the color of the obstacle white (you've noticed ;) ).

Also yeah, the CX2600-A and "Darth Vader" models got rid of the difficulty switches. However, most people that would choose to play this game might do it on an emulator, or if on actual hardware with, say, a Harmony cart, a 6-switch model, so I don't see that as too big of an issue.

I have added a lot since the last update. In fact, I think I added the whole game.

I'm pretty sure I've done all I want to with this game. At the suggestion of @gameblabla , there's even a "2-player co-op" mode (switch the Left Difficulty switch to A, and then player 2 can mess with the obstacles :D ).

Download here, if anyone wants to try it out with Stella. :)

New version! While still not complete, this is a (barely) playable version, until you game-over.

The bombs now make you spin around, and the hourglass powerup actually works! The hourglass will freeze your timer for a while, until the bar in the bottom right stops animating. (No, you cannot stack the effect with multiple hourglasses. ;) )

Download here, if anyone can try it out with Stella. :)
If anyone here remembers Wal-Rush! for the Atari 2600, and wishes that there were a better version, you will soon get your wish!

(This is just a crappy 15fps gif; the real thing is 60fps.)

I'm starting work on a sequel that I call Wal-Rush! 2: Tick Tusk, because it has a huge emphasis on time. My plan is to have a timer that goes down as you play and kills you if it expires, but can be stopped or increased if you collect certain collectibles. This will be the key to playing for a long time and getting a high score.

I have not coded the functions of the objects yet, but I'll explain my plan for them. The air mine will explode on contact and take away your time. The fish will give you 10 points, and add a few seconds to the timer. The clock will give you 50 points and completely refill your timer. The hourglass will give you 100 points, and stop the timer from decreasing (or increasing!) for a while.

Also, the collectibles sometimes move in WAVES! I love this effect :D

If you want a download of the program, ask and you shall receive. Same for the source code (in bAtari BASIC). ;)
Consoles / Re: Graphics-hacking Super Mario Bros.
February 20, 2018, 05:57:36 PM
Ask @MateoConLechuga for that. ;)
Consoles / Re: Graphics-hacking Super Mario Bros.
February 20, 2018, 11:00:28 AM

Since I've last updated here, I have made many more graphics changes (not all of them that I was wanting to, though). However, the biggest new thing I've added is this:

Now, both before each level AND when going in pipes, Mario flashes his trademark peace sign! You have no idea how much ASM hacking I had to do to get it to this state :P

Download link in the first post!
ln( is the natural logarithm, log base e (= 2.71828182845...).

Web has to do with graphing iterations of a function in Seq mode, and is admittedly of little use to programmers.

Time has a similar use to Web, but it graphs sequences as series of points.

Menu( does take a stupid amount of storage, yes, but to be fair, making your own menu often takes more (not always, though!).

Lbl and Goto are used to jump to places in the program. Lbl marks points in the program with one or two character names (which can include 0-9, A-Z, and theta), and Goto jumps directly to those points.

GarbageCollect is a command (usually triggered automatically) that clears up "garbage" data in the archive, which can build up if you archive and unarchive things often.

sin(, cos(, and tan( (as well as the many variants you will find in the catalog with 2ND+0) are trigonometric functions. cos( represents an X value on the unit circle, sin( represents a Y value on the unit circle, and tan( is the sin( value divided by the cos( value (which can result in an error if cos(X)=0!).

For future reference, TI-BASIC Developer is a good resource for any information you need about a command. :)
Quote from: mazhat on January 22, 2018, 09:51:37 PM
Not that it makes a difference, but you can write "While 5=5" as just "While 5".
You'll save yourself a whole two bytes!

While 1, even!
I think what would help you here is the command getKey. It returns the last key pressed as a number based roughly on what row and column it's on on the keyboard (and 0 if nothing). For instance, the sin( key is in the 5th row and 2nd column, so you would check in this instance if getKey = 52. (In practice, you're almost always gonna want to store this to a variable and instead check that.)

The arrow keys are a bit more complicated. Up, left, and right are considered in the second row, and down is considered in the third row. So left is 24, up is 25, right is 26, and down is 34.

Also, any particular reason you have a While 5=5 loop?
Hm, interesting. I did a similar project to yours in middle school for my own amusement, using the same method as well. In my junior year, in the tail end of 2016 I made a new scheme for a similar idea, and a year later I made a game with this same engine. I'll see if I can show you what I did to improve my system through the years.

What I ended up doing for processing string input is taking each space-delimited word and looking it up in a little "table" of sorts (which also has synonyms and some misspellings), and checking for a certain list of words in order to give a response. This allows much flexibility in what one can enter.
For example, "WHAT ARE YOU CALLED" might be transformed into "398C" after the words are looked up, as would "WAT R YA CALLED" or "WUTZ R U CALLD". Checking to see if it was transformed into "398C" checks for those and more with one command.

Keep in mind, this was my own method, and perhaps this would be either too hard or too overkill for your purposes. A simpler way to allow a bit more flexibility with input is to do the following:
" "+Str1+" "->Str1
If inString (Str1," HI "):Then
Disp "HEY, NERD."

assuming Str1 contains your input. This would allow the same response for "HI", "HI THERE", "OH HI ERMINE", and much more, but not "I LIKE THIS" (a string that simply has H and I in that order).

As far as producing different outputs, you might want to look into randomized output. Come up with a bunch of different responses, and then do this:
If inString(Str1," HI "):Then
If R=1:Disp "HEY, NERD."
If R=2:Disp "OH, HI."
If R=3:Disp "YO, DUDE."

This code has a 1/5 chance of returning "HEY, NERD.", "OH, HI.", "YO, DUDE.", etc. There are quite a few ways of optimizing this, but for now I'll leave this as an exercise to the reader ;)

One last thing to consider: you cannot possibly code for every possible input individually, but the chatbot should respond to anything inputted to it. To handle this, perhaps code in some catch-all messages for when no pattern was matched. Here's the way I'd do that:

If inString(Str1," HI "):Then
"HI code here
Goto E

Repeat 1
"catch-all code here
Lbl E

This jumps past any other command checking so it doesn't respond twice, and it allows for the chatbot to respond to literally anything, even if it doesn't understand it.

I hope this helps you improve ERMINE!
Powered by EzPortal