| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -11,3 +11,23 @@ cargo run | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					``` | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					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 |