📄 bobble.java
字号:
nA++;
return 0;
}
} else
if(mD < 21 && aA[j2 + 1] > 0 && aA[j2 - 1] > 0 && (aA[5 + 6 * bY] == -1 && j2 == j - 6 || aA[5 + 6 * bY] != -1 && j2 == j - 6 - 1))
{
aA[j2] = aM;
bY = l1;
bX = i2;
sbA();
nA++;
return 0;
}
}
if(bX > 0 && bX < 5 - i && mD > 21)
{
int k2;
if(aA[5 + 6 * bY] == -1)
k2 = aX - 8;
else
k2 = aX - 0;
if(k2 % 16 >= 13 && k2 % 16 <= 15 && aA[j + 1] > 0)
{
aA[j] = aM;
sbA();
nA++;
return 0;
}
} else
if(bX > 0 && bX < 5 - i && mD < 21)
{
int l2;
if(aA[5 + 6 * bY] == -1)
l2 = aX - 8;
else
l2 = aX - 0;
if(l2 % 16 >= 0 && l2 % 16 <= 2 && aA[j - 1] > 0)
{
aA[j] = aM;
sbA();
nA++;
return 0;
}
}
return byte0;
}
public static final void dtR(int i)
{
int ai[] = new int[60];
for(int j = 0; j < 60; j++)
ai[j] = aA[j];
i = i / 2 + 3;
if(i > 7)
i = 7;
int i1 = 0;
for(int k = 0; k < 6; k++)
{
int j1;
while((j1 = (rA.nextInt() >>> 1) % i + 1) == i1) ;
if(j1 == 7 && (ai[k] & 0xf) == j1)
j1 = (rA.nextInt() >>> 1) % 6 + 1;
if(j1 == 7 && ai[5] == -1 && k > 0 && (ai[k - 1] & 0xf) == j1)
j1 = (rA.nextInt() >>> 1) % 6 + 1;
if(j1 == 7 && ai[5] != -1 && (ai[k + 1] & 0xf) == j1)
j1 = (rA.nextInt() >>> 1) % 6 + 1;
i1 = j1;
aA[k] = j1;
nA++;
}
i1 = 1;
for(int k1 = 0; i1 < 10; k1++)
{
for(int l = 0; l < 6; l++)
aA[l + 6 * i1] = ai[l + 6 * k1];
i1++;
}
if(aA[11] != -1)
{
nA--;
aA[5] = -1;
}
sbA();
}
public static int bom()
{
int ai[] = new int[60];
for(int i = 0; i < 60; i++)
ai[i] = aA[i];
int k = sNB(bX + 6 * bY);
if(k >= 3)
{
nA -= k;
} else
{
for(int j = 0; j < 60; j++)
aA[j] = ai[j];
k = 0;
}
return k;
}
public static int drp()
{
int k = 0;
for(int i = 0; i < 60; i++)
if(aA[i] > 0 && (aA[i] & 0x40) != 64 && !sND(i))
{
aA[i] |= 0x10;
aA[i] &= 0x18ffff;
k++;
}
for(int j = 59; j >= 0; j--)
if(aA[j] > 0)
{
if((aA[j] & 0x40) == 64)
aA[j] &= 0xffffffbf;
if((aA[j] & 0x10) == 16)
{
int l = 0;
if(aA[((j / 6) * 6 + 6) - 1] == -1)
l = 1;
if((aA[j] & 0x80000) > 0 && aA[j + 6 + l] > 0 && (aA[j + 6 + l] & 0x10) == 0)
{
aA[j] &= 0xffffffef;
k--;
}
if((aA[j] & 0x100000) > 0 && aA[j + 5 + l] > 0 && (aA[j + 5 + l] & 0x10) == 0)
{
aA[j] &= 0xffffffef;
k--;
}
}
}
nA -= k;
return k;
}
private static int sNB(int i)
{
int j2 = 0;
int j = 0;
if(aA[((i / 6) * 6 + 6) - 1] == -1)
j = 1;
if((aA[i] & 0xff00) >= 256)
{
if((aA[i] & 0x10) != 16)
{
aA[i] |= 0x10;
j2++;
}
for(int k2 = 256; k2 < 16384; k2 <<= 1)
{
int k = aA[i] & 0xff00 & k2;
aA[i] &= ~k;
if(k == 256)
{
int l = (i - 7) + j;
j2 += sNB(l);
} else
if(k == 512)
{
int i1 = (i - 6) + j;
j2 += sNB(i1);
} else
if(k == 1024)
{
int j1 = i + 1;
j2 += sNB(j1);
} else
if(k == 2048)
{
int k1 = i + 6 + j;
j2 += sNB(k1);
} else
if(k == 4096)
{
int l1 = i + 5 + j;
j2 += sNB(l1);
} else
if(k == 8192)
{
int i2 = i - 1;
j2 += sNB(i2);
}
}
}
return j2;
}
private static boolean sND(int i)
{
if(aA[i] == -1)
return true;
if(i >= 0 && i < 6)
return true;
if((aA[i] & 0x40) == 64)
return true;
boolean flag = false;
int j = 0;
if(aA[((i / 6) * 6 + 6) - 1] == -1)
j = 1;
for(int l1 = 0x10000; l1 < 0x400000; l1 <<= 1)
{
int k = aA[i] & 0xff0000 & l1;
if(k == 0x10000)
{
aA[i] &= ~k;
int l = (i - 7) + j;
flag = sND(l);
aA[i] |= k;
} else
if(k == 0x20000)
{
aA[i] &= ~k;
int i1 = (i - 6) + j;
flag = sND(i1);
aA[i] |= k;
} else
if(k == 0x40000)
{
aA[i] &= ~k;
int j1 = i + 1;
flag = sND(j1);
aA[i] |= k;
} else
if(k == 0x200000)
{
aA[i] &= ~k;
int k1 = i - 1;
flag = sND(k1);
aA[i] |= k;
}
if(!flag)
continue;
aA[i] |= 0x40;
break;
}
return flag;
}
public static void cBA(int i)
{
int j1 = 0;
if(aA[((i / 6) * 6 + 6) - 1] == -1)
j1 = 1;
if((aA[i] & 0x10000) == 0x10000)
{
int j = (i - 7) + j1;
aA[j] &= 0xfff7ffff;
}
if((aA[i] & 0x20000) == 0x20000)
{
int k = (i - 6) + j1;
aA[k] &= 0xffefffff;
}
if((aA[i] & 0x40000) == 0x40000)
aA[i + 1] &= 0xffdfffff;
if((aA[i] & 0x80000) == 0x80000)
{
int l = i + 6 + j1;
aA[l] &= 0xfffeffff;
}
if((aA[i] & 0x100000) == 0x100000)
{
int i1 = i + 5 + j1;
aA[i1] &= 0xfffdffff;
}
if((aA[i] & 0x200000) == 0x200000)
aA[i - 1] &= 0xfffbffff;
aA[i] = 0;
}
private static void sCk()
{
cL = 0;
for(int k = 8; k >= 0; k--)
{
int l = k * 6;
if((aA[l] & 0xf) > 0)
{
aG = 0;
if(aA[l + 5] == -1)
aG = 1;
for(int i = 0; i < 60; i++)
if((l = sCs(l)) < 0)
return;
}
}
for(int i1 = 0; i1 < 6; i1++)
{
if(aA[i1] == -1)
break;
if((aA[i1] & 0xf) > 0)
{
aG = 2;
for(int j = 0; j < 60; j++)
if((i1 = sCs(i1)) < 0)
return;
}
}
if((cL & 0x10) == 0)
cL = 1;
}
private static int sCs(int i)
{
int k = i;
aG -= 3;
if(aG < 0)
aG += 6;
if(aA[k] > 0)
cL |= 1 << (aA[k] & 0xf) - 1;
for(int l = 5; l-- >= 0;)
{
aG--;
if(aG < 0)
aG += 6;
int j = 0;
if(aA[((i / 6) * 6 + 6) - 1] == -1)
j = 1;
if(aG == 0)
k = (i - 7) + j;
else
if(aG == 1)
k = (i - 6) + j;
else
if(aG == 2)
k = i + 1;
else
if(aG == 3)
k = i + 6 + j;
else
if(aG == 4)
k = i + 5 + j;
else
if(aG == 5)
k = i - 1;
if(j != 1 ? i > ((i / 6) * 6 + 6) - 1 : i > ((i / 6) * 6 + 6) - 2)
break;
if(k < 0)
{
k = i;
for(k++; ++k <= 5;)
if((aA[k] & 0xf) > 0)
{
aG = 2;
return k;
}
break;
}
if(k >= 60)
return -1;
if((aA[k] & 0xf) > 0)
return k;
}
return -1;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -