标签:dm7 dba png sed height pre 地方 ott org
bug现象: 图一
图一 ,代码分析
Snake.prototype.move=function (food,map) { // 头先移动, switch (this.direction) { case "right": this.body[0].x +=1; break; case "left": this.body[0].x -=1; break; case "top": this.body[0].y -=1; break; case "bottom": this.body[0].y +=1; break; } var i=this.body.length-1; for(i;i>0;i--){ this.body[i].x=this.body[i-1].x;//第二节X坐标==第一节X坐标 this.body[i].y=this.body[i-1].y; }
// 运行的结果
/* this.body=[
{x:4,y:2,color:"red"},
{x:2,y:2,color:"orange"},
{x:1,y:2,color:"orange"}
];
this.body=[
0 {x:4,y:2,color:"red"},
1 {x:4,y:2,color:"orange"},
2 {x:2,y:2,color:"orange"}
];
*/
图二正确
图二代码分析
Snake.prototype.move=function (food,map) { var i=this.body.length-1; for(i;i>0;i--){ this.body[i].x=this.body[i-1].x;//第二节X坐标==第一节X坐标 this.body[i].y=this.body[i-1].y; } // 头后移动 switch (this.direction) { case "right": this.body[0].x +=1; break; case "left": this.body[0].x -=1; break; case "top": this.body[0].y -=1; break; case "bottom": this.body[0].y +=1; break; } /* 运行结果 this.body=[ {x:3,y:2,color:"red"}, {x:2,y:2,color:"orange"}, {x:1,y:2,color:"orange"} ]; this.body=[ 0 {x:4,y:2,color:"red"}, 1 {x:3,y:2,color:"orange"}, 2 {x:2,y:2,color:"orange"} ]; */
结论:
1,bug逻辑错误导致,提醒了自己特别是在学习东西,清楚逻辑实现原理,数据哪里产生,哪里有在用。
2,调试能力得到极大锻炼,这次从发现现象,到不断尝试背后的原因,最后开始在文件中写测试代码,最后准确找到出错的地方,前后经历了1个小时左右。
3,错误并不可怕,可怕的是不犯错误,一点问题都没有。经验,这次不会,犯错了,把它攻克了那你就会了。
标签:dm7 dba png sed height pre 地方 ott org
原文地址:https://www.cnblogs.com/dengfei201766/p/9406249.html