php生成随机颜色,并且相邻元素颜色不同
php 随机 php 随机
如题,是这种布局形式1 2 3
4 5 6
7 8 9
相邻元素颜色不同,还有就是,比如5的话,跟1 3 7 9 的颜色也要不同,请问这个如何实现,生成随机颜色可以的,但是颜色不同如何实现呢。备选的颜色大概6种。谢谢
回复讨论(解决方案)
把规则再说清楚一些
所谓 相邻元素颜色不同 4和5是相邻的吗?如果是,仅有的6种颜色无法实现.重新描述下你的需求...如果不是,那你定义下你这里"相邻元素"的概念
把规则再说清楚一些
所谓 相邻元素颜色不同 4和5是相邻的吗?如果是,仅有的6种颜色无法实现.重新描述下你的需求...如果不是,那你定义下你这里"相邻元素"的概念
嗯,4,5是相邻的。。6种无法实现的话,可以增加的。
1 2 3
4 5 1
2 3 6
这个符合要求吗?
把规则再说清楚一些
所谓 相邻元素颜色不同 4和5是相邻的吗?如果是,仅有的6种颜色无法实现.重新描述下你的需求...如果不是,那你定义下你这里"相邻元素"的概念
嗯,4,5是相邻的。。6种无法实现的话,可以增加的。
限定使用有限种颜色和不限定颜色种类 实现起来应该是(可以)不一样的 前者是有限种可以计算出来 后者可以直接随机取然后判断如果不行再次随机取
1 2 1
3 4 3
1 2 1
四色地图?
算法我弱啊
我的想法是从左向右、从上向下遍历,填入数字(1~n),只要前面相邻(横竖斜)的格子出现过就跳过,没出现就选这个数
例如右上角,因为还没到第二行,相邻的就只有左边一个格子2,所以1~n中,1就直接符合了,填入右上角
1 2 3
4 5 1
2 3 6
这个符合要求吗?
这样符合的,但是这个样式是通过瀑布流加载的。高度不固定,所以很纠结。有可能中间的2 5 3都跟1接近!
1 2 3
4 5 1
2 3 6
这个符合要求吗?
页面使用的是masonry和infinitescroll,每排三个块,宽度固定,高度不定。然后要实现相邻的背景色不同,不知道具体如何实现呢?
如果#5也符合要求的话,那可以跟你说:单数行是1 2 1,双数行是3 4 3……循环就是了
$d = array(1,2,3,4,5,6);$a = array($d[rand(0, 5)]);$loop = 300; //用于防止死循环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) 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) continue; if(isset($a[$p-6]) && $a[$p-6] == $n) continue; $a[] = $n; break; }// $a[] = $n; //如果从case中移到这里,将导致错误结果!BUG}$t = array_map(function($r){ return join(',', $r);}, array_chunk($a, 3));print_r($t);
(
[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
)
任何连续三行都将满足你的需要
弄了几天,终于发现一个 php 的 bug
还是比较满意的
如果基本的语法结构都会出现问题的话,php 到了该进坟墓的时候了!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



Alipay PHP...

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

The application of SOLID principle in PHP development includes: 1. Single responsibility principle (SRP): Each class is responsible for only one function. 2. Open and close principle (OCP): Changes are achieved through extension rather than modification. 3. Lisch's Substitution Principle (LSP): Subclasses can replace base classes without affecting program accuracy. 4. Interface isolation principle (ISP): Use fine-grained interfaces to avoid dependencies and unused methods. 5. Dependency inversion principle (DIP): High and low-level modules rely on abstraction and are implemented through dependency injection.

How to automatically set the permissions of unixsocket after the system restarts. Every time the system restarts, we need to execute the following command to modify the permissions of unixsocket: sudo...

Article discusses late static binding (LSB) in PHP, introduced in PHP 5.3, allowing runtime resolution of static method calls for more flexible inheritance.Main issue: LSB vs. traditional polymorphism; LSB's practical applications and potential perfo

How to debug CLI mode in PHPStorm? When developing with PHPStorm, sometimes we need to debug PHP in command line interface (CLI) mode...

Sending JSON data using PHP's cURL library In PHP development, it is often necessary to interact with external APIs. One of the common ways is to use cURL library to send POST�...

Static binding (static::) implements late static binding (LSB) in PHP, allowing calling classes to be referenced in static contexts rather than defining classes. 1) The parsing process is performed at runtime, 2) Look up the call class in the inheritance relationship, 3) It may bring performance overhead.
