Sign in to follow this  

Can anyone give me an simple, yet challenging, Java project to work on?

This topic is 3858 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I'm finishing my AP Computer Science class as a senior in High School. I've always known more Java and general programming than the class has to offer because of how much self-study I do. Usually I come up with ideas of things to create as practice, but now I'm kind of lost. I'm not sure what to create. I haven't really done any graphics in Java except for a Pong applet, but I'm really not interested in applets for now. Are there any non-graphic projects I can do as practice? I just really need to find something that interests me, and something I can keep upgrading to make better and better for practice. Thanks for reading, and thanks for any suggestions.

Share this post


Link to post
Share on other sites
Someone mentioned an RSS client before, but it seems to be too much of stuff I haven't really learned.
And I know I could theoretically study these kind of things on my own, and then create it, but I just don't feel ready for things like that.
I don't feel ready for anything graphical or network based yet.

But thanks for the suggestion.

Share this post


Link to post
Share on other sites
A MUD would be very interesting, and something I would be passionate about.
The only problem is that it's multiplayer over a network, isn't it?
I have no experience with any networking things. I suppose I could learn how to get users to connect to a MUD server and such, but it would take a lot of studying.

But I feel up to it.
I'll start looking for tutorials and such.

Thanks a lot for the suggestion.

*EDIT*
On second thought, maybe I can create a single player MUD. So... a SUD?
Anyway, it could just be a text RPG that plays like a MUD. Text based, separate rooms, NPCs, quests, monsters, etc.
That seems to be more of my level.
This sounds fun.

Share this post


Link to post
Share on other sites
Your telling us that you are ready for more, but then don't want to step out of your comfort zone and learn more.

If you keep repeating the things you already know, you won't learn anything new.

So I challenge you to take a leap and go for something simple in 2d, or else something like reading/writeing to a database, or something.

Just something really simple to learn the concept. Like store some different character data on a database and then pull the information up based on user input.

I personally just started Java, so I have no idea on how to do this stuff, but I think it's the next step for you.

Take your text based 'guess the number' game to the next level, and make 2d images the user can click on, or some other 2d graphical version of one of your existing text based projects.

While repeating your existing knowledge will reinforce what you already know, it won't broaden your experience.

If you want something 'easy' you could try your idea of a 'sud' or a choose your own adventure story. Even with this, I would try to take it to the next level and use a database of some sort, even if its just a CSV text file.

Share this post


Link to post
Share on other sites
If you don't mind the more boring, theoretical stuff:

Implement a trie.

Implement a way to read in a file, a (whitespace-delimited) word at a time, storing all the words into a trie. (This might take the form of a constructor like Trie(InputStream is).) Use the trie to sort the words. (But note that your trie implementation should *not* assume that there isn't any whitespace in the stored items!)

Add a 'replacement' field to the nodes of the trie. This is only used by terminal nodes. Update the reading procedure: assume two words per line - word to search for, and the corresponding replacement. Implement search-and-replace:


Current match = "".
For each character in input text:
Append character to current match.
If current match is not a prefix found in the trie:
Output the current match.
Else if current match corresponds to a terminal node in the trie:
Output the corresponding replacement.


Finally, fix that algorithm to account for the fact that words in the "search" set might be prefixes of one another. :) (You should try to find the longest word possible; but if you find a short word and then try and fail to extend the match, you'll need to backtrack.)

Then for the next project, write a regular expression engine. ;) (Actually, a really bare-bones RE engine is probably *easier* than the above project in terms of implementation, but it's fairly advanced conceptually, and you'll appreciate the experience of the trie project.)

Share this post


Link to post
Share on other sites

This topic is 3858 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this