| 
					
					
						
							
						
					
					
				 | 
				@ -11,3 +11,23 @@ cargo run | 
			
		
		
	
		
			
				 | 
				 | 
				``` | 
				 | 
				 | 
				``` | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				To exit the simulation, press q, ESC or Ctrl+c. | 
				 | 
				 | 
				To exit the simulation, press q, ESC or Ctrl+c. | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				## Tests | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				A few tests can be run with: | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				```sh | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				cargo test | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				``` | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				## Benchmarks | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				`cargo bench` runs benchmarks. Their results are available under `target/criterion/report/index.html`. | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				## Simulation | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				* The world is a simple two-dimensional rectangle with integer positions | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				* Agents can occupy the same space | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				* Agents can make one move per simulation step, either by trying to move by at most one unit in both directions or by trying to tag another actor | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				* Agents need to be at most one unit away in both directions from others in order to tag them | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				* Agents act at the same time and their actions are validated against the previous state |