SOURCE

console 命令行工具 X clear

                    
>
console
let map;
let mapwidth = 30;
let dt = [];
let dtcolr=[];
let manPosX = 0;
let manPosY = 5;

let beecolor = [];
let mancolor = 0;


function preload() {
	
}


function setup() {
	createCanvas(600, 480);
	map = new Map(16,16);
	beecolor[0] = color(255, 204, 0);
	beecolor[1] = color(255, 0, 0);
	beecolor[2] = color(0, 204, 0);
	beecolor[3] = color(0, 0, 255);
	beecolor[4] = color(0, 255, 255);
	frameRate(5);
}


function draw() {
	background(255);
	noFill();
	strokeWeight(1); 
	rect(0,0, 480, 480);
	map.update();
	map.draw();
}

class Map{
	constructor(ln,col){
		this.ln = ln;
		this.col = col;
		for(let i = 0; i < ln; i++)
		{
			for(let j = 0; j < col; j++)
			{
				dt[i*col+j] = 0;
			}
		}
		for(let i=0;i<16;i++){
			dt[i]=3;
		}
		
		dt[25] = 3;dt[27] = 3;dt[29] = 3;dt[31] = 3;dt[32] = 3;
		
		for(let i=34;i<40;i++){
			dt[i]=3;
		}
		dt[41] = 3;dt[43] = 3;dt[45] = 3;dt[47] = 3;dt[48] = 3;dt[50] = 3;dt[55] = 3;
		dt[57] = 3;dt[59] = 3;dt[61] = 3;dt[63] = 3;
		for(let i=66;i<72;i++){
			dt[i]=3;
		}
		dt[64] = 3;dt[73] = 3;dt[75] = 3;dt[77] = 3;dt[79] = 3;dt[80] = 3;
		dt[89] = 3;dt[91] = 3;dt[93] = 3;dt[95] = 3;
		for(let i=96;i<103;i++){
			dt[i]=3;
		}
		dt[107] = 3;dt[123] = 3;dt[139] = 3;dt[95] = 3;
		dt[109] = 3;dt[125] = 3;dt[141] = 3;dt[95] = 3;dt[157] = 3;dt[173] = 3;
		dt[111] = 3;dt[127] = 3;dt[143] = 3;
		dt[159] = 3;dt[175] = 3;dt[191] = 3;dt[207] = 3;dt[223] = 3;
		for(let i=146;i<156;i++){
			dt[i]=3;
		}
		for(let i=178;i<190;i++){
			dt[i]=3;
		}
		for(let i=208;i<221;i++){
			dt[i]=3;
		}
		for(let i=240;i<256;i++){
			dt[i]=3;
		}
		dt[112] = 3;dt[128] = 3;dt[144] = 3;dt[160] = 3;dt[176] = 3;
		dt[192] = 3;
		dt[224] = 3;
		dt[manPosY*col+manPosX] = 2;
	}
	/* 根据键盘输入修改man的位置与方向 */
	update(){
		if (keyCode === LEFT_ARROW) 
		{
			if(manPosY===0){}
			else
			{
				dt[manPosY*this.col+manPosX] = 0;
				manPosY = manPosY - 1;
				if(dt[manPosY*this.col+manPosX] === 3)
				{
					manPosY = manPosY + 1;
					
				}
				else
				{
					if(dt[manPosY*this.col+manPosX] === 1)
					{
					}
				}
				dt[manPosY*this.col+manPosX] = 2;
			}
		}

		if (keyCode === RIGHT_ARROW) 
		{
			if(manPosY===(this.ln-1)){}
			else
			{
				dt[manPosY*this.col+manPosX] = 0;
				manPosY = manPosY + 1;
				if(dt[manPosY*this.col+manPosX] === 3)
				{
					manPosY = manPosY - 1;
					
				}
				else
				{
					if(dt[manPosY*this.col+manPosX] === 1)
					{
					}
					
				}
				dt[manPosY*this.col+manPosX] = 2;
			}
		}
	
		if (keyCode === UP_ARROW) 
		{
			if(manPosX===0){}
			else
			{
				dt[manPosY*this.col+manPosX] = 0;
				manPosX = manPosX - 1;
				if(dt[manPosY*this.col+manPosX] === 3)
				{
					manPosX = manPosX + 1;
					
				}
				else
				{
					if(dt[manPosY*this.col+manPosX] === 1)
					{
					}
				}
				dt[manPosY*this.col+manPosX] = 2;
			}
		}
	
		if (keyCode === DOWN_ARROW) 
		{
			if(manPosX===(this.col-1)){}
			else
			{
				dt[manPosY*this.col+manPosX] = 0;
				manPosX = manPosX + 1;
				if(dt[manPosY*this.col+manPosX] === 3)
				{
					manPosX = manPosX - 1;
					
				}
				else
				{
					if(dt[manPosY*this.col+manPosX] === 1)
					{
					}
				}
				dt[manPosY*this.col+manPosX] = 2;
			}
		}
		keyCode = 0;
	}

	draw(){
		for(let i = 0; i < this.ln; i++)
		{
			for(let j = 0; j < this.col; j++)
			{
				
				if(dt[i*this.col+j] ===0)
				{
			
				}
				else if(dt[i*this.col+j] ===2)
				{
					stroke(beecolor[mancolor]); 
					fill(beecolor[mancolor]);
					strokeWeight(1); 
					circle(i*mapwidth+mapwidth/2, j*mapwidth+mapwidth/2,mapwidth-3);	
				}
				else
				{

					stroke('pink'); 
					fill('pink');
					strokeWeight(1); 
					rect(i*mapwidth, j*mapwidth, mapwidth, mapwidth);
				} 
			}
		}
	}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.1.9/p5.min.js"></script>