initial commit
This commit is contained in:
		
							
								
								
									
										7
									
								
								.vscode/settings.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								.vscode/settings.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					    "java.project.sourcePaths": ["src"],
 | 
				
			||||||
 | 
					    "java.project.outputPath": "bin",
 | 
				
			||||||
 | 
					    "java.project.referencedLibraries": [
 | 
				
			||||||
 | 
					        "lib/**/*.jar"
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										18
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
				
			|||||||
 | 
					## Getting Started
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Welcome to the VS Code Java world. Here is a guideline to help you get started to write Java code in Visual Studio Code.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Folder Structure
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The workspace contains two folders by default, where:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `src`: the folder to maintain sources
 | 
				
			||||||
 | 
					- `lib`: the folder to maintain dependencies
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Meanwhile, the compiled output files will be generated in the `bin` folder by default.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					> If you want to customize the folder structure, open `.vscode/settings.json` and update the related settings there.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Dependency Management
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The `JAVA PROJECTS` view allows you to manage your dependencies. More details can be found [here](https://github.com/microsoft/vscode-java-dependency#manage-dependencies).
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								bin/AriadneIterator$Accomplished.class
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								bin/AriadneIterator$Accomplished.class
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								bin/AriadneIterator$Starting.class
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								bin/AriadneIterator$Starting.class
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								bin/AriadneIterator.class
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								bin/AriadneIterator.class
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								bin/CreateSmallMaze.class
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								bin/CreateSmallMaze.class
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								bin/CreateSmallMazeTest.class
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								bin/CreateSmallMazeTest.class
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								bin/Room.class
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								bin/Room.class
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								lib/hamcrest-core-1.3.jar
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								lib/hamcrest-core-1.3.jar
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								lib/junit-4.13.2.jar
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								lib/junit-4.13.2.jar
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										72
									
								
								src/AriadneIterator.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										72
									
								
								src/AriadneIterator.java
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,72 @@
 | 
				
			|||||||
 | 
					import java.util.ArrayList;
 | 
				
			||||||
 | 
					import java.util.Iterator;
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					import java.util.Stack;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public class AriadneIterator implements Iterator<Room>{
 | 
				
			||||||
 | 
					    private Room entry;
 | 
				
			||||||
 | 
					    private Stack<Room> ariadnesThread;
 | 
				
			||||||
 | 
					    private List<Room> visited;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private State currentstate;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public AriadneIterator(Room entry) {
 | 
				
			||||||
 | 
					        this.entry = entry;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public boolean hasNext() {
 | 
				
			||||||
 | 
					        return cs.hasNext();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public Room next() {
 | 
				
			||||||
 | 
					        return ariadnesThread.peek();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void stepRetreating() {
 | 
				
			||||||
 | 
					        ariadnesThread.pop();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    public boolean hasMinotaur() {
 | 
				
			||||||
 | 
					        return ariadnesThread.peek().getMinotaur();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void step() {
 | 
				
			||||||
 | 
					        currentstate.step();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void init() {
 | 
				
			||||||
 | 
					        ariadnesThread = new Stack<>();
 | 
				
			||||||
 | 
					        ariadnesThread.push(entry);
 | 
				
			||||||
 | 
					        visited = new ArrayList<>();
 | 
				
			||||||
 | 
					        visited.add(entry);
 | 
				
			||||||
 | 
					        currentstate = new Starting();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private class Starting implements State {
 | 
				
			||||||
 | 
					        @Override
 | 
				
			||||||
 | 
					        public void step() {
 | 
				
			||||||
 | 
					            init();
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        @Override
 | 
				
			||||||
 | 
					        public boolean hasNext() {
 | 
				
			||||||
 | 
					           return false;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private class Accomplished implements State {
 | 
				
			||||||
 | 
					        @Override
 | 
				
			||||||
 | 
					        public void step() {
 | 
				
			||||||
 | 
					            stepRetreating();
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        public boolean hasNext() {
 | 
				
			||||||
 | 
					            return !ariadnesThread.empty();
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										16
									
								
								src/CreateSmallMaze.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								src/CreateSmallMaze.java
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
				
			|||||||
 | 
					public class CreateSmallMaze {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public static Room createSmallMaze() {
 | 
				
			||||||
 | 
					        Room a = new Room("a2");
 | 
				
			||||||
 | 
					        Room b = new Room("b2");
 | 
				
			||||||
 | 
					        b.addReachable(a);
 | 
				
			||||||
 | 
					        a = new Room("b1");
 | 
				
			||||||
 | 
					        a.setMinotaur(true);
 | 
				
			||||||
 | 
					        a.addReachable(b);
 | 
				
			||||||
 | 
					        b = new Room("a1");
 | 
				
			||||||
 | 
					        b.addReachable(a);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return b;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										23
									
								
								src/CreateSmallMazeTest.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								src/CreateSmallMazeTest.java
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
				
			|||||||
 | 
					import static org.junit.Assert.assertEquals;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import org.junit.Test;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public class CreateSmallMazeTest {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Room entry = CreateSmallMaze.createSmallMaze();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Test
 | 
				
			||||||
 | 
					    public void testSmallMaze() {
 | 
				
			||||||
 | 
					        AriadneIterator iter = new AriadneIterator(entry);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // Erstes next ruft nur init() auf sodass wir nun mit dem Iterator arbeiten können
 | 
				
			||||||
 | 
					        iter.next();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        assertEquals("a2", iter.next().getName());
 | 
				
			||||||
 | 
					        assertEquals("b2", iter.next().getName());
 | 
				
			||||||
 | 
					        assertEquals("b1", iter.next().getName());
 | 
				
			||||||
 | 
					        assertEquals("b2", iter.next().getName());
 | 
				
			||||||
 | 
					        assertEquals("a2", iter.next().getName());
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										28
									
								
								src/Room.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								src/Room.java
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,28 @@
 | 
				
			|||||||
 | 
					import java.util.HashSet;
 | 
				
			||||||
 | 
					import java.util.Set;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public class Room {
 | 
				
			||||||
 | 
					    private String name;
 | 
				
			||||||
 | 
					    private boolean minotaur;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private Set<Room> reachable;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public Room(String name) {
 | 
				
			||||||
 | 
					        this.name = name;
 | 
				
			||||||
 | 
					        minotaur = false;
 | 
				
			||||||
 | 
					        reachable = new HashSet<>();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void setMinotaur(boolean v) {
 | 
				
			||||||
 | 
					        minotaur = v;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void setName(String name) {
 | 
				
			||||||
 | 
					        this.name = name;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void addReachable(Room room) {
 | 
				
			||||||
 | 
					        reachable.add(room);
 | 
				
			||||||
 | 
					        room.addReachable(this);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user