Picture
Lesson #1-7: More Fun with Math

First, a quick review:
In Java, you will frequently see statements written like so:
Given that number is an integer... 
Picture

This tends to confuse many beginning programmers, because they are missing the fundamental purpose of the equal sign.

Like I've said before, the equal sign does not just state equality; instead, it is used to ASSIGN a value.
In other words, it doesn't just state that the operand on the left and the value on the right are equal. Instead, it says that the operand is now equal to the value - that the operand takes the value on the right side of the equal sign.

Interpreting the example above, you should think to yourself, 'number is now equal to number + 5.' 

This will save you a lot of headache.
If you understand this, here is a list of equivalent expressions that will save you some time in programming: 
Picture
Lesson #1-8: Randomization

Predictability makes for boring games. If you want games to challenge players, you will want to use randomization.
Let's use TUMBL as an example. For those of you who are not familiar with the game, click here.

1. Each row is generated randomly, meaning that the player will not be able to figure out a pattern that lets them stay alive longer.
2. Stars are generated randomly on the left or right side of the screen.
3. Power-ups appear randomly.
And so on.

So how do you integrate randomization to a game?

It's quite simple. Take a look at this example class: 
Picture
In this class named Randomization, we create a Random object called rand.
Let's break up this statement: 
Picture
think of this just like: 
Picture
You are creating a new object called rand using the type Random.

The second part of the statement: 
Picture
assigns a new Random object with a default seed (I will explain seed in a second) as the value of the newly-created rand.

In other words...
you are basically telling the computer:
"I want to create a Random object called rand. Use the Random class to create this new object."

If you are confused, that's okay. We will go into object creation and constructors in a lot more detail in the coming lessons.

Just know that:
Picture
creates a new Random object called rand (you can change this name). 


Mini Lesson : Imports 

When you copy and paste the following class into Eclipse: 

Figure 1: randomization class

// In this class, we will create a Random object called rand.

class Randomization {

   public static void main(String[] args{

      Random rand = new Random();
 
  }

}
You will see red squiggly lines below the word Random, indicating the presence of an error:
Picture
This error occurs because the "Random class" is not recognized by your current class, Randomization.

Earlier, I mentioned that the src folder contains all your Java code and that the JRE System Library contains importable code
that you can incorporate into your own projects.

Think of this Library as one containing "books" (Java classes). When you write an essay and you reference a book, you cite it.
Same with Java. When you use a "book" (Java classes) from the Library, you must state that you are using this "book."

This is accomplished by importing.
How do we import? It's pretty simple.

1. The easiest way is to press: 
Picture
This will automatically import the class that the compiler thinks you are most likely to use.

2. Another way is to put your mouse over the words that show an error (in this case Random) and click on the quick fix that suggests importing
the Random class from Java.util. 
Picture
Either way, when you successfully import, the error will disappear, and you will see the following above your class name: 
import java.util.Random;
- indicating that your class makes use of this Random class.

The full class, after importing, will look like this.

Figure 2: randomization class with imports

Picture
Well, now that we have a random object called rand, we can use it to randomize things.
The easiest method we will learn is: 
Picture
What does this method do?
When you call this from a random object such as rand like so: 
Picture
It will generate an integer between 0 and 10 (11 numbers).
Using this, you can simulate chance and probability.
How? We will go over probability and if statements tomorrow!

If you have any questions, contact me!

If you are learning from and enjoying the tutorials, please support Kilobolt Studios!
And Like us on Facebook to receive updates when a new lesson is posted! 

Picture
 


Comments

Reece
11/13/2012 7:35pm

Good stuff thank you!

I found a small typo when I tried to do the CTRL SHIFT O thing....

Figure 1: randomization class
// In this class, we will create a Random object called rand.

class Randomization {

public static void main(String[] args****there should be a ")" here****{


Thanks much!

Reply
http://www.skintagfree.com/ link
03/19/2013 11:23pm

After maths Java is the hardest for me to understand, Although i read many tutorials and books but i forget.
Hope this would help me.

Reply
Yash
04/02/2013 10:29am

please tell somebody what is the problem...
This is not giving any output....
class Randomization
{
static int sufer = 10;
public static void main(String[] args)
{
r();
}
public static void r()
{
Random rand = new Random();
rand.nextInt(sufer);
System.out.println(sufer);
}




}

Reply
Thiago Ruiz
04/06/2013 5:53pm

I think you didn't understand what the .nextInt() method does. Instead of passing your "sufer" variable as an argument you should do:

sufer = ran.nextInt(anotherVariable);

nextInt() is a method wich returns a int, the argument it takes just specify from where it will take the random number, if you pass 10 it will return from 0 to 9, if you pass 20 it will return from 0 to 19. The keyword here is return, you need to assign this return to something.
Use one variable to receive this return and one to use as the argument, if you use the same for both it will work, but is you call nextInt() another time, it will take as argument the random number you just generate

Reply
Albert Lopez
04/02/2013 1:03pm

i am having an issue with the lesson #1-8 section.

Here is my code:
class raondomize
{
public static void main(String[] args)
{
Random rand = new Random();
}
}

Here is my error:
Multiple markers at this line
- Random cannot be resolved
to a type
- Random cannot be resolved
to a type

I am become error.

Reply
albert lopez
04/02/2013 11:08pm

I'm dumb. I figured it out.

Reply



Leave a Reply

    Author

    James Cho is the lead developer at Kilobolt Studios. He is a college student at Duke University and loves soccer, music, and sharing knowledge.