/* Representaзгo
0 1 2
| | |
0 1 2 -- 0
3 4 5 -- 1
6 7 8 -- 2
9 10 11 -- 3
12 13 14 -- 4
15 16 17 -- 5
18 19 20 -- 6
21 22 23 -- 7
*/
new Colunas = 3, Linhas = 8;
new Item = random((8 * 3) - 1);
/*
Exemplos:
*Caso a var Item for igual a 5 retorna
Linha = 1
Coluna = 2
*Caso a var Item for igual a 6 retorna
Linha = 2
Coluna = 0
*/
// 21 como exemplo
new linha = 21 / 3;
new coluna = 21 % 3;
0 1 2
{0,1,2}, // 0
{3,4,5}, // 1
{6,7,8}, // 2
{9,10,11}, // 3
{12,13,14} // 4
};
new item = random((sizeof(itens) * sizeof(itens[])) - 1);
new linha = item / 3;
new coluna = item % 3;
printf("Linha: %d Coluna: %d Item: %d",linha,coluna,itens[linha][coluna]);
Linha: 2 Coluna:2 Item: 8
Se for sempre desta forma crescente, acrescentando 1, й sу dividir o valor pelo nъmero de colunas.
O valor inteiro й a linha e o resto й a coluna. PHP код:
PHP код:
Код:
Linha: 2 Coluna:2 Item: 8 |
new Colunas = 3, item = random((8 * 3) - 1);
new linha = item < Colunas ? 0 : floatround(item / Colunas, floatround_floor),
coluna = item < Colunas ? item : item % Colunas;
printf("Linha: %i - Coluna: %i - Item: %i", linha, coluna, item);
///
item = random((8 * 3) - 1);
linha = item < Colunas ? 0 : floatround(item / Colunas, floatround_floor);
coluna = item < Colunas ? item : item % Colunas;
printf("Linha: %i - Coluna: %i - Item: %i", linha, coluna, item);
///
item = random((8 * 3) - 1);
linha = item < Colunas ? 0 : floatround(item / Colunas, floatround_floor);
coluna = item < Colunas ? item : item % Colunas;
printf("Linha: %i - Coluna: %i - Item: %i", linha, coluna, item);
[19:54:58] Linha: 0 - Coluna: 2 - Item: 2 [19:54:58] Linha: 2 - Coluna: 0 - Item: 6 [19:54:58] Linha: 0 - Coluna: 1 - Item: 1 |
Entendi, era isso mesmo. Obrigado +Rep
Terei de usar o mйtodo floatround_floor para pegar o valor da linha correto? Pois preciso de nъmeros inteiros. |
Nгo, por que ao usar a variбvel inteira o valor quebrado da divisгo й desprezado.
|