问题不是与特定的编程语言有关,而是与简约的代码和抽象有关。
我有3行3列的数组 - 想象一下你会玩Tic-Tac-Toe(或者是顽皮和十字架)。
当按下一个键(在电话上)时,在与按下的键对应的位置(键9为板[2] []中,向阵列添加0或1的值(X为1,O为0) 2])。
在构建GUI时,我需要将数组坐标映射到像素,如果: [0] [0] - 10,10 [0] [1] - 10,50 [0] [2] - 10,90 ... [2] [2] - 90,90
绘图将在嵌套循环中遍历数组时发生,但我仍然坚持如何在尽可能少的代码行中写入0 = 10,1 = 50和2 = 90之间的映射。
一种方法是为每种情况使用一个开关。另一个是使用if。
还有其他想法可以用更少的行来写这个吗?
谢谢!
答案 0 :(得分:1)
for ( y = 0; y < 3; ++y )
{
for ( x = 0; x < 3; ++x )
{
pos_x = x * 40 + 10;
pos_y = y * 40 + 10;
// Draw...
}
}
答案 1 :(得分:1)
for(var i = 0; i < 3; i++) {
for(var j = 0; j < 3; j++) {
int xPos = i * 40 + 10;
int yPos = j * 40 + 10;
//set accordingly
}
}
答案 2 :(得分:0)
使用您的索引值作为乘数,即90 = 2 * 40 + 10,50 = 1 * 40 + 10