JS:如何在算术上突出显示x / y坐标的菱形选择? [英] JS: how to algorithmically highlight a diamond-shaped selection of x/y coordinates?

查看:145
本文介绍了JS:如何在算术上突出显示x / y坐标的菱形选择?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如果给出了一个阵列数组,创建了一个n x n的贴图,有没有办法循环一个算法来突显形成钻石形状的瓦片? (关键问题是不要硬编码,所以它可以适用于任何大小的地图)

If given an array of arrays creating an n x n map of tiles, is there a way to loop through an algorithm that would highlight tiles which form a diamond shape? (the key problem is not to hardcode it, so it could work for any sized map)

例如:如果地图是5x5的像这样的瓷砖:

For example: if the map was 5x5 tiles like so:

XXXXX  
XXXXX  
XXXXX  
XXXXX  
XXXXX  

算法如何突出显示钻石形状,如下所示:

How could an algorithm highlight a diamond shape like so:

XXOXX  
XOOOX  
OOOOO  
XOOOX  
XXOXX  


推荐答案

[工作示例] strong>

[Working example]

function diamond(arr) {
  var len = arr.length;
  var mid = Math.floor(len / 2);
  for (var i = 0; i < len; i++) {
    var d = Math.abs(i - mid);
    for (var j = d; j < len - d; j++) {
      arr[i][j] = arr[i][j] = 1;
    }
  }
  return arr;
}

请注意,您尚未定义甚至预期的行为数字

这篇关于JS:如何在算术上突出显示x / y坐标的菱形选择?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆