Sunday, May 5, 2024

A geek’s guide to a high score

By Daris Howard

When my wife, Donna, and I were first married, we were given an old TI computer. The games on it were very limited, but so were our finances.

I was majoring in both computer science and mathematics, and had very little time for any outside activities. Donna was happy to have any time I could share with her. Often this included playing a game on that old computer called exploding bananas.

In this game, two giant, King Kong size apes each climbed different skyscraper. Then, controlled by the people playing the game, the apes threw exploding bananas at each other. The goal was to blow out a wedge in the opponents building so that it tipped over before yours did. Basically, it was a precursor to Angry Birds.

One day we were given a new game. It was a math game where numbers fell from the sky and had a math operation between them: addition, subtraction, multiplication, or division. A person had to type in the correct value before it hit the ground, or they stacked up, ending the game when the numbers reached the top of the screen.

Though Donna has never played a lot of games, she enjoyed this one and was getting very good at it. She had gotten up to around 2,000 points on it, an incredible score. That’s when she challenged me to see if I could do better. After doing math all day, the last thing I wanted to do was more math. But she kept teasing me about it, and I finally decided to take her challenge. But I was programming in machine code at the time, and I chose to deal with her challenge differently than she expected.

One day, while she was away at the grocery store, I turned the computer on and played a very short game, only gaining 23 points before letting the computer finish off the game and record my score. My 23 points looked stupid compared to her 2,000, but it gave me what I needed.

I went in and copied the machine code file for the score to a backup in case I made a mistake. I then looked through the bits of the original program file, searching for our names represented in binary ASCII code bytes of ones and zeros. Once I found them, I analyzed the bytes around them and determined which bytes represented my score and which bytes represented hers.

By changing the bits in my score appropriately, I gave myself the highest score possible of 2,147,483,647. By changing hers, I gave her a score of -1.

Once they were changed, I saved the file. It was time to check and see if it did what I expected. I ran the game and the scores were just as I planned. Now was the hardest part, not giving away that I had done something while I waited for her to play the game.

Donna returned home from shopping, and it was all I could do to keep myself from grinning while I continued to study. Finally came the moment when she sat down to play. When the screen with the previous games’ scores popped up at the beginning, she gasped. She spun around and glared at me. “What did you do?”

“I beat your score,” I answered calmly.

“But how did you get a score that high?” she asked.

“I’m just good at math,” I answered.

“Yeah, right,” she replied sarcastically. “And I know it’s impossible to get a negative score playing the game, so how come mine is negative?”

“You’re just special ,” I answered.

She then demanded I tell her what I had done. When I finished, she said, “If you want dinner tonight, you better change it back, right now!”

And I did, though I still retain the highest score for creativity.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

online wholesale business for goods from
China