[Ajuda] Cбlculo
#1

Tentei realizar um cбlculo para encontrar o nъmero da linha e o da coluna no qual o item pertence, mas nгo estou conseguindo.

Exemplo:
PHP код:

/* 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 3Linhas 8;
new 
Item random((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
*/ 
Se alguйm souber me ajudar agradeзo.
Reply
#2

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 код:
// 21 como exemplo
new linha 21 3;
new 
coluna 21 3
Script que fiz pra testar:

PHP код:
 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]); 
Output:

Код:
Linha: 2 Coluna:2 Item: 8
Reply
#3

Quote:
Originally Posted by arakuta
Посмотреть сообщение
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 код:
// 21 como exemplo
new linha 21 3;
new 
coluna 21 3
Script que fiz pra testar:

PHP код:
 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]); 
Output:

Код:
Linha: 2 Coluna:2 Item: 8
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.

@EDIT

Tive que adaptar um pouco o cуdigo

PHP код:
    new Colunas 3item random((3) - 1);
    new    
linha item Colunas floatround(item Colunasfloatround_floor), 
        
coluna item Colunas item item Colunas;
    
printf("Linha: %i - Coluna: %i - Item: %i"linhacolunaitem);
    
///
    
item random((3) - 1);
    
linha item Colunas floatround(item Colunasfloatround_floor); 
    
coluna item Colunas item item Colunas;
    
printf("Linha: %i - Coluna: %i - Item: %i"linhacolunaitem);
    
///
    
item random((3) - 1);
    
linha item Colunas floatround(item Colunasfloatround_floor); 
    
coluna item Colunas item item Colunas;
    
printf("Linha: %i - Coluna: %i - Item: %i"linhacolunaitem); 
Print
Quote:

[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

Reply
#4

Quote:
Originally Posted by EditPawn
Посмотреть сообщение
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.
Reply
#5

Quote:
Originally Posted by arakuta
Посмотреть сообщение
Nгo, por que ao usar a variбvel inteira o valor quebrado da divisгo й desprezado.
Eu dei um edit acima, mas nгo tinha visto sua resposta que nгo seria necessбrio usar floatround.

O cуdigo ficou funcional, obrigado me ajudou muito.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)