mirror of
				https://github.com/fooflington/wordsearch.git
				synced 2025-11-03 22:09:03 +00:00 
			
		
		
		
	working webapp
This commit is contained in:
		
							
								
								
									
										3
									
								
								uk/org/mafoo/wordsearch/Direction.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								uk/org/mafoo/wordsearch/Direction.java
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,3 @@
 | 
			
		||||
package uk.org.mafoo.wordsearch;
 | 
			
		||||
 | 
			
		||||
enum Direction { N, NE, E, SE, S, SW, W, NW; };
 | 
			
		||||
@@ -1,8 +1,9 @@
 | 
			
		||||
package uk.org.mafoo.wordsearch;
 | 
			
		||||
 | 
			
		||||
import java.io.*;
 | 
			
		||||
import java.util.*;
 | 
			
		||||
 | 
			
		||||
class GridFactory {
 | 
			
		||||
public class GridFactory {
 | 
			
		||||
 | 
			
		||||
	static Random rnd = new Random();
 | 
			
		||||
	static final int MAX_TRIES = 500;
 | 
			
		||||
@@ -46,105 +47,19 @@ class GridFactory {
 | 
			
		||||
		return chars[drng.getDistributedRandomNumber()];
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public static void main(String[] args) {
 | 
			
		||||
	public static void main(String[] args) throws IOException {
 | 
			
		||||
		// Test invocation
 | 
			
		||||
		char[][] g = makeGrid(new String[] {
 | 
			
		||||
			"Aberdeenshire", 
 | 
			
		||||
			"Anglesey", 
 | 
			
		||||
			"Angus", 
 | 
			
		||||
			"Antrim", 
 | 
			
		||||
			"Argyll", 
 | 
			
		||||
			"Armagh", 
 | 
			
		||||
			"Ayrshire", 
 | 
			
		||||
			"Banffshire", 
 | 
			
		||||
			"Bedfordshire", 
 | 
			
		||||
			"Berkshire", 
 | 
			
		||||
			"Berwickshire", 
 | 
			
		||||
			"Brecknockshire", 
 | 
			
		||||
			"Buckinghamshire", 
 | 
			
		||||
			"Buteshire", 
 | 
			
		||||
			"Caernarfonshire", 
 | 
			
		||||
			"Caithness", 
 | 
			
		||||
			"Cambridgeshire", 
 | 
			
		||||
			"Cardiganshire", 
 | 
			
		||||
			"Carmarthenshire", 
 | 
			
		||||
			"Cheshire", 
 | 
			
		||||
			"Clackmannanshire", 
 | 
			
		||||
			"Cornwall", 
 | 
			
		||||
			"Cromartyshire", 
 | 
			
		||||
			"Cumberland", 
 | 
			
		||||
			"Denbighshire", 
 | 
			
		||||
			"Derbyshire", 
 | 
			
		||||
			"Devon", 
 | 
			
		||||
			"Dorset", 
 | 
			
		||||
			"Down", 
 | 
			
		||||
			"Dumbartonshire", 
 | 
			
		||||
			"Dumfriesshire", 
 | 
			
		||||
			"Durham", 
 | 
			
		||||
			"East Lothian", 
 | 
			
		||||
			"Essex", 
 | 
			
		||||
			"Fermanagh", 
 | 
			
		||||
			"Fife", 
 | 
			
		||||
			"Flintshire", 
 | 
			
		||||
			"Glamorgan", 
 | 
			
		||||
			"Gloucestershire", 
 | 
			
		||||
			"Hampshire", 
 | 
			
		||||
			"Herefordshire", 
 | 
			
		||||
			"Hertfordshire", 
 | 
			
		||||
			"Huntingdonshire", 
 | 
			
		||||
			"Invernessshire", 
 | 
			
		||||
			"Kent", 
 | 
			
		||||
			"Kincardineshire", 
 | 
			
		||||
			"Kirkcudbrightshire", 
 | 
			
		||||
			"Lanarkshire", 
 | 
			
		||||
			"Lancashire", 
 | 
			
		||||
			"Leicestershire", 
 | 
			
		||||
			"Lincolnshire", 
 | 
			
		||||
			"Londonderry", 
 | 
			
		||||
			"Merionethshire", 
 | 
			
		||||
			"Middlesex", 
 | 
			
		||||
			"Midlothian", 
 | 
			
		||||
			"Monmouthshire", 
 | 
			
		||||
			"Montgomeryshire", 
 | 
			
		||||
			"Morayshire", 
 | 
			
		||||
			"Nairnshire", 
 | 
			
		||||
			"Norfolk", 
 | 
			
		||||
			"Northamptonshire", 
 | 
			
		||||
			"Northumberland", 
 | 
			
		||||
			"Nottinghamshire", 
 | 
			
		||||
			"Orkney", 
 | 
			
		||||
			"Oxfordshire", 
 | 
			
		||||
			"Peeblesshire", 
 | 
			
		||||
			"Pembrokeshire", 
 | 
			
		||||
			"Perthshire", 
 | 
			
		||||
			"Radnorshire", 
 | 
			
		||||
			"Renfrewshire", 
 | 
			
		||||
			"Rossshire", 
 | 
			
		||||
			"Roxburghshire", 
 | 
			
		||||
			"Rutland", 
 | 
			
		||||
			"Selkirkshire", 
 | 
			
		||||
			"Shetland", 
 | 
			
		||||
			"Shropshire", 
 | 
			
		||||
			"Somerset", 
 | 
			
		||||
			"Staffordshire", 
 | 
			
		||||
			"Stirlingshire", 
 | 
			
		||||
			"Suffolk", 
 | 
			
		||||
			"Surrey", 
 | 
			
		||||
			"Sussex", 
 | 
			
		||||
			"Sutherland", 
 | 
			
		||||
			"Tyrone", 
 | 
			
		||||
			"Warwickshire", 
 | 
			
		||||
			"West Lothian", 
 | 
			
		||||
			"Westmorland", 
 | 
			
		||||
			"Wigtownshire", 
 | 
			
		||||
			"Wiltshire", 
 | 
			
		||||
			"Worcestershire", 
 | 
			
		||||
			"Yorkshire", 
 | 
			
		||||
		}, Integer.parseInt(args[0]), Integer.parseInt(args[1]));
 | 
			
		||||
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
 | 
			
		||||
		String s;
 | 
			
		||||
		List<String> words = new ArrayList<String>();
 | 
			
		||||
 | 
			
		||||
		while ((s = in.readLine()) != null && s.length() != 0) {
 | 
			
		||||
			words.add(s);
 | 
			
		||||
		}
 | 
			
		||||
		char[][] g = makeGrid(words, Integer.parseInt(args[0]), Integer.parseInt(args[1]));
 | 
			
		||||
		dump2d(g);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	private enum Direction { N, NE, E, SE, S, SW, W, NW; };
 | 
			
		||||
	private static Direction[] directions = new Direction[] { Direction.N, Direction.NE, Direction.E, Direction.SE, Direction.S, Direction.SW, Direction.W, Direction.NW };
 | 
			
		||||
	private static Direction getDirection() {
 | 
			
		||||
		return directions[rnd.nextInt(directions.length-1)];
 | 
			
		||||
@@ -236,7 +151,7 @@ class GridFactory {
 | 
			
		||||
		return x;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public static char[][] makeGrid(String[] words, int height, int width) {
 | 
			
		||||
	public static char[][] makeGrid(List<String> words, int height, int width) {
 | 
			
		||||
		char[][] grid = new char[height][width];
 | 
			
		||||
 | 
			
		||||
		// Place words at random?
 | 
			
		||||
@@ -252,6 +167,8 @@ class GridFactory {
 | 
			
		||||
					}
 | 
			
		||||
					tries++;
 | 
			
		||||
					// System.out.println("[" + word + "] Crossed over... retrying");
 | 
			
		||||
				} finally {
 | 
			
		||||
					// Nothing
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user