Table of Contents

dsr0

powers of two base math

Base 2^1 is 2 2^2 is 4 2^3 is 8 and so on and so forth.

Along with the conversions game mode, other modes should include addition, subtraction, and multiplication. These should all be in the same base already, as a conversion on top of that would be hectic.

powers of two base conversions

For powers of two base conversion, or any type of conversions in bash scripts, it would behoove one to make use of the ibase / obase commands. With them, they can make the conversions of numbers for you. This is helpful for generating prompts and keys alike.

The goal of the conversions game mode should be for the player to be prompted with a number in one base, and be instructed to find the answer in another base (also prompted).

Can use shuf -i alongside an array to randomly generate a base

checking time

By using “date +%r” in the command line you can get the current time which you can use later.

date +%r will give you the time in this format: HH:MM:SS AM/PM

date +%s will give you the time in seconds since the Unix epoch. If you want to use date +%s to get the current minutes, you can divide the output of date +%s by 60; if you want to use date +%s to get the current seconds, you can use the modulus operation (%60).

state file: keeping score across sessions

The best way to keep track of a users score across sessions is to use a file. For simplicity let's call it “info.txt” and assume we are doing this in BASH.

You can either create this file manually for every new user or have the program do it for you! Here is an example of the program doing it:

if [[ ! -f "info.txt" ]] ; then
    touch info.txt
fi

So that may be a lot at once to take in, so let's break it down. This line checks if the file exists, and when combined with an if statement it will do what is in the if statement if the file DOES NOT EXIST*.

    ! -f "info.txt"

This line will make the file

    touch info.txt

Too make our future selves happy lets set up where the data will be put in the file. Things we need:

You can make the code do this by “echoing” into your text file. Here is an example of how to do that (tip: put this in your previous if statement):

    echo "Access Time:" >> info.txt
    echo "Amount Played:" >> info.txt
    echo "Amount Right:" >> info.txt
    echo "Amount Wrong:" >> info.txt

Again let's break that down. Here we are redirecting the output of “echo” to our file info.txt with the «.

    echo "Access Time:" >> info.txt

Inside your program you can use commands like grep, sed, cat, cut, tr, and head to name a few in order to write to and replace the text in info.txt. And don't forget that in BASH you can use | to pipe/connect commands together!