进入游戏随机生成一张不能自消的地图
This commit is contained in:
parent
adcd237cad
commit
d684e12e93
@ -36,7 +36,6 @@ func (this *configureComp) Init(service core.IService, module core.IModule, comp
|
||||
})
|
||||
configure.RegisterConfigure(game_block, cfg.NewGameBlock, this.LoadGameBlock)
|
||||
|
||||
this.GetGameConsumeintegralReward(100)
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -61,7 +61,8 @@ func (this *MapData) InitMap(module *Entertainment) {
|
||||
for i := 0; i < Width*Height; i++ {
|
||||
this.Plat[i] = this.CreateGride(int32(i))
|
||||
}
|
||||
this.SetMap() // 方便测试固定地图
|
||||
this.SetIndelibilityPlat()
|
||||
//this.SetMap() // 方便测试固定地图
|
||||
}
|
||||
|
||||
// 交换2个元素(参数 oid )
|
||||
@ -591,15 +592,13 @@ func (this *MapData) SetMap() {
|
||||
pos++
|
||||
}
|
||||
}
|
||||
this.SetIndelibilityPlat()
|
||||
}
|
||||
|
||||
// 校验当前地图 有没有能消除的
|
||||
func (this *MapData) CheckAndRefreshPlat() (bEliminate bool) {
|
||||
bEliminate = false
|
||||
for k, v := range this.Plat {
|
||||
if k < 10 {
|
||||
continue
|
||||
}
|
||||
if v.Color == 0 {
|
||||
continue
|
||||
}
|
||||
@ -612,7 +611,7 @@ func (this *MapData) CheckAndRefreshPlat() (bEliminate bool) {
|
||||
if k1 == k2 { // 校验k3 左边和右边
|
||||
if true {
|
||||
pos := k + 2
|
||||
if pos%Width-1 >= 0 { // 左
|
||||
if pos/Width-1 >= 0 { // 左
|
||||
p := this.Plat[pos-Width].Color
|
||||
if p == k1 {
|
||||
bEliminate = true
|
||||
@ -658,7 +657,6 @@ func (this *MapData) CheckAndRefreshPlat() (bEliminate bool) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -701,7 +699,6 @@ func (this *MapData) CheckAndRefreshPlat() (bEliminate bool) {
|
||||
bEliminate = true
|
||||
return
|
||||
}
|
||||
|
||||
}
|
||||
if pos%Height+1 < Height { // 上
|
||||
p := this.Plat[pos+1].Color
|
||||
@ -718,7 +715,6 @@ func (this *MapData) CheckAndRefreshPlat() (bEliminate bool) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -781,3 +777,34 @@ func (this *MapData) CheckAndRefreshPlat() (bEliminate bool) {
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// 生成一个不能消除的地图
|
||||
func (this *MapData) SetIndelibilityPlat() {
|
||||
for k, v := range this.Plat {
|
||||
if v.Color == 0 {
|
||||
continue
|
||||
}
|
||||
x := int32(k % Height) // x
|
||||
|
||||
if x+2 < Height {
|
||||
k1 := this.Plat[k].Color
|
||||
k2 := this.Plat[k+1].Color
|
||||
k3 := this.Plat[k+2].Color
|
||||
if k1 == k2 && k2 == k3 {
|
||||
this.Plat[k+2].Cid = (k3+1)%5 + 1
|
||||
this.Plat[k+2].Color = (k3+1)%5 + 1
|
||||
}
|
||||
}
|
||||
|
||||
if k+2*Width < Total {
|
||||
k1 := this.Plat[k].Color
|
||||
k2 := this.Plat[k+Width].Color
|
||||
k3 := this.Plat[k+2*Width].Color
|
||||
|
||||
if k1 == k2 && k2 == k3 {
|
||||
this.Plat[k+2*Width].Cid = (k3+1)%5 + 1
|
||||
this.Plat[k+2*Width].Color = (k3+1)%5 + 1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -85,8 +85,11 @@ func Test_Main(t *testing.T) {
|
||||
m := new(entertainment.MapData)
|
||||
m.InitMap(nil)
|
||||
m.SetMap()
|
||||
m.SetIndelibilityPlat()
|
||||
m.Debugf()
|
||||
m.CheckAndRefreshPlat()
|
||||
if m.CheckAndRefreshPlat() {
|
||||
fmt.Println("xxxx")
|
||||
}
|
||||
//var szMap []*pb.MapData
|
||||
// if bSwap, m := m.AiSwapGirde(); bSwap {
|
||||
// szMap = append(szMap, m...)
|
||||
|
Loading…
Reference in New Issue
Block a user