Php generates random colors, and the colors of adjacent elements are different. php random
Such as the question, is the layout form
1 2 3
4 5 6
7 8 9
The color of adjacent elements is different. for example, if the value is 5, the color of the element is different from that of the value 1, 3, 7, and 9. how can we generate a random color, but how can we achieve different colors. There are about 6 alternative colors. Thank you.
Reply to discussion (solution)
Clarify the rules
Is the color of adjacent elements 4 and 5 adjacent to each other? If yes, the only six colors cannot be implemented. redescribe your requirements... if not, then you define the concept of "adjacent elements" here.
Clarify the rules
Is the color of adjacent elements 4 and 5 adjacent to each other? If yes, the only six colors cannot be implemented. redescribe your requirements... if not, then you define the concept of "adjacent elements" here.
Well, 4 and 5 are adjacent .. If six cannot be implemented, it can be added.
1 2 3
4 5 1
2 3 6
Does this meet the requirements?
Clarify the rules
Is the color of adjacent elements 4 and 5 adjacent to each other? If yes, the only six colors cannot be implemented. redescribe your requirements... if not, then you define the concept of "adjacent elements" here.
Well, 4 and 5 are adjacent .. If six cannot be implemented, it can be added.
The difference between limited colors and unrestricted colors should be (yes). The former can be calculated based on the finite colors. The latter can be randomly obtained directly and then determined if it cannot be obtained again.
1 2 1
3 4 3
1 2 1
Four-color map?
Weak algorithms
My idea is to traverse from left to right, from top to bottom, and fill in numbers (1 ~ N), as long as the grid adjacent to the front (horizontal and vertical) appears, it will be skipped. if it does not appear, select this number.
For example, in the upper right corner, because there is not the second row, only one Grid 2 on the left is adjacent, so 1 ~ In n, 1 will be met directly, and fill in the upper right corner
1 2 3
4 5 1
2 3 6
Does this meet the requirements?
But this style is loaded through the waterfall stream. The height is not fixed, so it is very tangled. It is possible that the 2, 5, and 3 in the middle are close to 1!
1 2 3
4 5 1
2 3 6
Does this meet the requirements?
The pages use masonry and infinitescroll. each row contains three blocks, with fixed width and fixed height. Then we need to implement different adjacent background colors. I don't know how to implement them?
If #5 also meets the requirements, you can say: the singular row is 1 2 1, the double row is 3 4 3 ...... Loop.
$ D = array (300,); $ a = array ($ d [rand (0, 5)]); $ loop =; // used to prevent endless loops while (count ($ a) <210 & $ loop --) {$ p = count ($ a); $ n = $ d [0]; $ d [] = array_shift ($ d); switch ($ p % 3) {case 1: if ($ a [$ P-1] ==$ n) continue; if (isset ($ a [$ P-3]) & $ a [$ P-3] ==$ n) continue; $ a [] = $ n; break; case 2: if ($ a [$ P-1] =$ n) continue; if (isset ($ a [$ P-2]) & $ a [$ P-2] ==$ n) continue; if (isset ($ a [$ P-3]) & $ a [$ P-3] == N) continue; if (isset ($ a [$ P-6]) & $ a [$ P-6] =n n) continue; if (isset ($ a [$ P-8]) & $ a [$ P-8] ==$ n) continue; $ a [] = $ n; break; case 0: if (isset ($ a [$ P-3]) & $ a [$ P-3] ==$ n) continue; if (isset ($ a [$ P-4]) & $ a [$ P-4] =n n) continue; if (isset ($ a [$ P-6]) & $ a [$ P-6] ==$ n) continue; $ a [] = $ n; break;} // $ a [] = $ n; // if it is removed from the case, an error is returned! BUG} $ t = array_map (function ($ r) {return join (',', $ r) ;}, array_chunk ($ a, 3 )); print_r ($ t );
Array
(
[0] => 1, 2, 3
[1] => 4, 5, 6
[2] => 2, 3, 4
[3] => 5, 6, 1
[4] => 3, 4, 5
[5] => 6, 1, 2
[6] => 4, 5, 6
[7] => 1, 2, 3
[8] => 5, 6, 1
[9] => 2, 3, 4
[10] => 6, 1, 2
[11] => 3, 4, 5
[12] => 1, 2, 3
[13] => 4, 5, 6
[14] => 2, 3, 4
[15] => 5, 6, 1
[16] => 3, 4, 5
[17] => 6, 1, 2
[18] => 4, 5, 6
[19] => 1, 2, 3
[20] => 5, 6, 1
[21] => 2, 3, 4
[22] => 6, 1, 2
[23] => 3, 4, 5
[24] => 1, 2, 3
[25] => 4, 5, 6
[26] => 2, 3, 4
[27] => 5, 6, 1
[28] => 3, 4, 5
[29] => 6, 1, 2
[30] => 4, 5, 6
[31] => 1, 2, 3
[32] => 5, 6, 1
[33] => 2, 3, 4
[34] => 6, 1, 2
[35] => 3, 4, 5
[36] => 1, 2, 3
[37] => 4, 5, 6
[38] => 2, 3, 4
[39] => 5, 6, 1
[40] => 3, 4, 5
[41] => 6, 1, 2
[42] => 4, 5, 6
[43] => 1, 2, 3
[44] => 5, 6, 1
[45] => 2, 3, 4
[46] => 6, 1, 2
[47] => 3, 4, 5
[48] => 1, 2, 3
[49] => 4, 5, 6
[50] => 2, 3, 4
[51] => 5, 6, 1
[52] => 3, 4, 5
[53] => 6, 1, 2
[54] => 4, 5, 6
[55] => 1, 2, 3
[56] => 5, 6, 1
[57] => 2, 3, 4
[58] => 6, 1, 2
[59] => 3, 4, 5
[60] => 1, 2, 3
[61] => 4, 5, 6
[62] => 2, 3, 4
[63] => 5, 6, 1
[64] => 3, 4, 5
[65] => 6, 1, 2
[66] => 4, 5, 6
[67] => 1, 2, 3
[68] => 5, 6, 1
[69] => 2, 3, 4
)
Any three rows in a row will meet your needs.
After several days, I finally found a php bug.
Still satisfied
If there are problems with the basic syntax structure, it is time for php to enter the grave!