
-----------------------------------
cycro1234
Thu Jan 19, 2006 5:52 pm

Boggle game help
-----------------------------------
Hey all! 

I'm making a boggle game for school and I need some help. 

I have a 5 by 5 button grid and each button has a random letter on it. When the user clicks on a button, the letter on it is highlighted. In boggle, you can make words by connecting letters from adjacent squares. Here is an example of what I would have generated:

H R T S U
E N B W L
L C E C H
S L O W A
A R D I N

The word HELLO can be made by connecting the H in the upper left hand corner to the E underneath it, to the L underneath the E, then to the L digaonally down to the right from L, and finally to the O beside the L.

In my game, the user is able to click on any square and the corresponding letter gets highlighted. However, the user should ONLY be able to click on adjacent squares to their first click. So if the user clicks on H, they should ONLY be able to click on the adjacent R, N, and E. 

I've thought of one method of solving this problem, but I can't seem to make it work. When the user clicks on a box, all 8 adjacent squares around it obtain the value of 2 and the box clicked gets a value of 1. Then the next box the user clicks on must be one with a value of 2, if not, then nothing happens. As well, if the user clicks on a box but then decides to deselect it, all numbers that were changed are reset to 0. 

So if H is selected, this happens behind the scenes:  

H 2 T S U
2 2 B W L
L C E C H
S L O W A
A R D I N
H is assigned a value of 1.

Any ideas on how I could do this? Are there any other ways? Help would be appreciated. Thanks in advance.

-Cycro

-----------------------------------
rizzix
Thu Jan 19, 2006 6:10 pm


-----------------------------------
In developing an algorithm to solve Minesweeper I created this: http://www.compsci.ca/v2/viewtopic.php?t=7755

...in BeanShell (a java-ish scripting language)

I used this method to gather neighbouring "cell". You can use a similar approach.

in particular:    final int where (r,c) is your current Button's location

-----------------------------------
cycro1234
Thu Jan 19, 2006 6:21 pm


-----------------------------------
Alright, I'll see what I can do.

-----------------------------------
cycro1234
Thu Jan 19, 2006 7:49 pm


-----------------------------------
Thanks, but I still don't know what to do. 

I need to somehow track the location of each click so I can compare the current click to the previous click. 

So if the first click is on a box located at 3,3 the user can only click on the 8 boxes around it:

2,3
3,2
2,2
4,3
etc.

Then if the user click on another box, i need to get those coordinates and see if they match with the right ones.

-----------------------------------
rizzix
Thu Jan 19, 2006 8:41 pm


-----------------------------------
let each button have a state. (extend JButton). Once it's clicked change it's state.. (flag it), check if surrounding buttons are flaged. if it is... then it's a valid move (make sure to unflag those buttons right afterward).. if not it isin't.. 

just remember, never unflag the current button, only the surrounding ones, unless it's an invalid move.

-----------------------------------
wtd
Thu Jan 19, 2006 8:48 pm


-----------------------------------
Is that combination of logic and presentation, rizzix?  ;)

-----------------------------------
evogre3n
Thu Jan 19, 2006 9:34 pm


-----------------------------------
This is so not happening in my realm. Please do not provide him with an answer. Help him out but don't do the work for him.

-----------------------------------
rizzix
Thu Jan 19, 2006 9:50 pm


-----------------------------------
Is that combination of logic and presentation, rizzix?  ;)

eh? True. One should always create a separate model class and a view. But seriously I don't expect him to do that =/. Java basics are hard as it is already.

In fact no one here programs in proper MVC. Most teacher's don't know the pattern themselves, to teach it. It's hopeless.

-----------------------------------
evogre3n
Fri Jan 20, 2006 7:16 am


-----------------------------------
Could you guys go into more detail abot this MVC and creating seperate model class and views... i dont quite understand what you guys mean..

thanks

-----------------------------------
MysticVegeta
Sat Jan 21, 2006 10:57 pm


-----------------------------------
In developing an algorithm to solve Minesweeper I created this: http://www.compsci.ca/v2/viewtopic.php?t=7755

...in BeanShell (a java-ish scripting language)

I used this method to gather neighbouring "cell". You can use a similar approach.

in particular:    final int where (r,c) is your current Button's location
Yeah that minesweeper tick me off pretty hard but a nice recursion with a couple of if structures was enough. 
It took me 1.5 hours to code it!!! lol I was ashamed of myself when I made a solution that worked

well Robert, you could either check each cell separately or a conventient method to do it is, hint: run a loop from -1 to 1 ;)

-----------------------------------
evogre3n
Sun Jan 22, 2006 8:42 am


-----------------------------------
I already showed him that...

I told him to run a loop from -1 row and -1 col to +2row, +2col (getting the 9 squares around it)

That was simple enough.. thanks anyways

-----------------------------------
MysticVegeta
Sun Jan 22, 2006 1:34 pm


-----------------------------------
But you have to check for ArraysOutOfBoundsException since if the cell is in the top corner, grid [x][y-1] doesnt exist.

-----------------------------------
evogre3n
Sun Jan 22, 2006 9:32 pm


-----------------------------------
err?

may i introduce try catches to you?

int myInt 

The preceding will not cause an exception to terminate the program (Y)

-----------------------------------
MysticVegeta
Mon Jan 23, 2006 11:26 pm


-----------------------------------
Interesting concept, I didnt know it. Thanks.  :roll:

-----------------------------------
evogre3n
Tue Jan 24, 2006 7:57 am


-----------------------------------
err?

whats with the sarcasm...

Your previous post gives the impression you dont know it... sorry for trying to help. :o
