What would be a logical step up from the archery game? Preferably something that doesn't require much imagination (so no text adventure).

Click to expand...

Good job on the game

The next logical step would be to make the game more complex.
For instance, instead of just having the target be X distance away, give it a left and right position so that the player has to enter the angle to turn also (Power=10, Angle=25, 30° to the left).
If the player misses, have the target advance and moves left or right toward him some random amount before the next shot. If the target reaches the player, the player "dies".
See if the player gets the target or the target gets the player (call it a zombie instead of a "target" )

Then ... add multiple zombies attacking.

Also, I saw your comment about methods returning void (or nothing).
This means it returns no value to whatever called it. You will also get an error if you try to get a return value from a void method.

Another thing to keep in mind, as I stated above, is that when you look at code just because a method call does not use it's return value, does not mean it does not return anything.

For instance, the Show method of the MessageBox class in C# returns a value of type DialogResult. If you don't care what that value is, you can call the method and just let it pitch the result or use it if you need it.

Code:

MessageBox.Show("Text for messgae box"); // Don't need result
or
DialogResult MyResult = MessageBox.Show("Text for message box"); // Save result for later

A void method isn't a bully, it's just so broke it can't afford to give anything back

Also, Java is not dead. It's used by a lot of people for it's cross-platform capabilities.
for instance, Minecraft is written in Java.

That's why a large number of corporations have programs written in Java (some of these programs make billions each year in revenue)? Java is hardly dead, and it isn't going to be going away for a looong time.

As for what to develop next Kreij is right - it is much better to improve on and add to an existing program if you want to try more complex things, at least until you can't think of any more ways to add to it.

Currently I'm going through the different kind of data structures (array, bitset etc.). After that I'm going to learn basic swing and remake "Fate/stay night" with place-holders for all the audio, text and images. That ought to help in getting used to the syntax.

When learning the different data structures, take the time to learn not only how they work but where they are a "best fit".

If you need a data structure to hold a bunch of strings you could use an array, but depending upon what you are doing (like maybe adding and remove them) a List of string may be more appropriate because it will execute faster and is inherently dynamic in size.

Human Error said:

As for what to develop next Kreij is right - it is much better to improve on and add to an existing program if you want to try more complex things, at least until you can't think of any more ways to add to it.

Click to expand...

You mean after writing your first "Hello World" program you should not jump right into making a 3D shooter?

Java doesn't support void type variables (AFAIK) but other languages do. For instance I wanted a function to retrieve private variables from a class instance in C++. The traditional way to do this is with a template, which is a type of generic specific to C++. (Java [J2SE 5.0+] also supports generics.) I intend to create a generic but for now I'm prototyping the behavior using void:

What that function does is allow you to pass in a variable of several different types, then request a variable by name and retrieve the desired value from the object instance. It would be invoked like this:

When learning the different data structures, take the time to learn not only how they work but where they are a "best fit".

Click to expand...

Not only that, but if razaron learns how to build his own data structures he can fit data structures to code rather than fit code to data structures. I'm pretty sure that sounds more confusing than I want it to be.

Not only that, but if razaron learns how to build his own data structures he can fit data structures to code rather than fit code to data structures. I'm pretty sure that sounds more confusing than I want it to be.

Click to expand...

We may want to give raz a little time to let the basics sink in before we give him an aneurysm trying to figure out delegates, generics, llambda expressions, etc.

Ok, sorry for the other post, but anyway i don't know why none suggested any videoshttp://www.youtube.com/watch?v=Hl-zzrqQoSE
Thenewboston is well known for teaching
If i was you i would learn all the videos than come here again after learning that much
@streetfighter 2
I have not seen a program like the one in my signature.... yet

This results in a stackoverflow error.
If I remove " && halffact1==0.75 && halffact2==0.75 && halffact3==0.75" from the "checkGrid()" method then it results in an array full of zeros.
What am I doing wrong?

I'm not sure but it looks like the checkGrid method is returning itself (which would cause a stack overflow because you are not specifying that it return the local boolean variable by the same name (this.checkGrid).

To call a method in Java you must have "()" at the end of the name even if there are no parameters.
Today is not your day, lol.

EDIT: The method checkGrid() returns a boolean named checkGrid, the method primaryGrid() returns an array named primaryGrid and the method secondaryGrid() returns an array called secondaryGrid. I realize this is confusing. That's just how I like it...

You are right. Today has not been my best day. lol
Oh well, it's not the first time.

I know you need to include the parenthesis when calling a method, but I was thinking that when you return checkGrid (without the parenthesis) it may be returning a pointer to the method instead of the value of the local checkGrid variable.

I probably just need some sleep so I can once again seperate different programming language syntax in real time.

The cosine and sine make them mathematically equivalent. The theta values are different but the cos(theta) and sin(theta) values are the same. Check it on a calculator.
Also, 360 * (time/1000) == (360*time)/1000. Think of them as fractions.