首先大家要去了解一下三消是什么东西,可以玩玩宝石迷阵了解一下规则。
第一步:首先是开局的建立,这个说来简单,也不太容易,就是保证别一开始创建的时候就有一堆应该消除的宝石。
组合排列大家一定都学过,没错,开局建立的时候要让整体遍历一下整张地图,看看这样随机创建会不会造成应该消除的现象存在。
就遍历来说,就是一个鉴定的建立,首先你要思考,怎样的情况下在这个点创造才不会存在消除的可能。譬如蓝+蓝+空,这个空就一定不会再被创建为蓝了,以此类推会有两种状况,一种是横可消,一种是竖着可消,所以判断起来不是很难,至于机制希望大家能够自己思考,从建立地图开始,而不是一上来就搞个怎么消除之类的。
我分享一下自己的建立机制,给大家参考一下:
for(i=60;i<=540;i+=60){
for(j=60;j<=540;j+=60){
A[i,j]=instance_create(i,j,oh)
A[i,j].kz=instance_create(i,j,object7);
if(i<=120){
if(j>120){if(A[i,j-120].kz.image_index=A[i,j-60].kz.image_index){do{A[i,j].kz.image_index=choose(0,1,2,3)}until(A[i,j].kz.image_index!=A[i,j-60].kz.image_index)}}
}
else{
if(j<=120){if(A[i-120,j].kz.image_index=A[i-60,j].kz.image_index){
do{A[i,j].kz.image_index=choose(0,1,2,3)}until(A[i,j].kz.image_index!=A[i-60,j].kz.image_index)}}
else{if(A[i-120,j].kz.image_index=A[i-60,j].kz.image_index||A[i,j-120].kz.image_index=A[i,j-60].kz.image_index)
do{A[i,j].kz.image_index=choose(0,1,2,3)}
until(A[i,j].kz.image_index!=A[i-60,j].kz.image_index&&A[i,j].kz.image_index!=A[i,j-60].kz.image_index)
}
}
}
}
我是通过背景来控制宝石的,kz(控制的意思)object7就是宝石物体,而image_index代表着宝石的颜色。这样创建可以避免一开始创建的时候存在大量应消除。通过二层嵌套创建9*9个宝石。这是只有四种颜色的情况.