📄 gamecanvas.java
字号:
int sanvalue[] = {
100, 100, 100, 100
};
int sanvalue1[] = {
100, 100, 100, 100
};
int san[] = {
0, 0, 0, 0
};
int san2[] = {
0, 0, 0, 0
};
int i1 = 0;
int i2 = 0;
int m = 0;
int n = 0;
if(exeTing)
break;
for(int i = 0; i <= 13; i++)
huvalue[i] = value2[i];
if(doChi2 || doPeng2)
huvalue[13] = 100;
else
huvalue[13] = tag;
huvalue[14] = value[t];
sort(14, huvalue);
int i = 0;
while(i <= 13)
{
if(huvalue[i] != 100 && huvalue[i] == huvalue[i + 1])
{
duivalue[m] = i;
i += 2;
m++;
continue;
}
if(huvalue[i] == 1000)
break;
i++;
}
i = 0;
while(i <= 12)
{
if(huvalue[i] != 100 && huvalue[i] == huvalue[i + 1] && huvalue[i + 1] == huvalue[i + 2])
{
sanvalue[n] = i;
san[n] = 1;
i += 3;
n++;
continue;
}
if(huvalue[i] == 100)
break;
i++;
}
if(m == 0)
{
exeTing = false;
} else
{
for(int h = 0; h <= m - 1; h++)
{
if(exeTing)
break;
for(int j = 0; j <= 14; j++)
huvalue1[j] = huvalue[j];
for(int j = 0; j <= 3; j++)
{
san2[j] = san[j];
sanvalue1[j] = sanvalue[j];
}
huvalue1[duivalue[h]] = 100;
huvalue1[duivalue[h] + 1] = 100;
for(i = 0; i <= 3; i++)
if(sanvalue1[i] == duivalue[h])
{
sanvalue1[i] = 100;
san2[i] = 0;
}
sort(3, sanvalue1);
int y = 0;
for(i = 0; i <= 3; i++)
if(san2[i] == 1)
y++;
if(y == 1)
{
san2[0] = 1;
san2[1] = 0;
san2[2] = 0;
san2[3] = 0;
} else
if(y == 2)
{
san2[0] = 1;
san2[1] = 1;
san2[2] = 0;
san2[3] = 0;
} else
if(y == 3)
{
san2[0] = 1;
san2[1] = 1;
san2[2] = 1;
san2[3] = 0;
} else
if(y == 4)
{
san2[0] = 1;
san2[1] = 1;
san2[2] = 1;
san2[3] = 1;
}
int san1[] = {
0, 0, 0, 0
};
int mm = san2[3] * 2 * 2 * 2 + san2[2] * 2 * 2 + san2[1] * 2 + san2[0];
for(i = 0; i <= san2[3] * 2 * 2 * 2 + san2[2] * 2 * 2 + san2[1] * 2 + san2[0]; i++)
{
if(exeTing)
break;
for(int j = 0; j <= 14; j++)
huvalue2[j] = huvalue1[j];
for(int j = 0; j <= 3; j++)
if(san1[j] == 1)
{
huvalue2[sanvalue1[j]] = 100;
huvalue2[sanvalue1[j] + 1] = 100;
huvalue2[sanvalue1[j] + 2] = 100;
}
for(int j = 0; j <= 14; j++)
{
if(huvalue2[j] >= 61 && huvalue2[j] <= 67)
break;
if(huvalue2[j] != 100 && huvalue2[j] < 61)
{
boolean exit1 = false;
boolean exit2 = false;
for(int x = j + 1; x <= 14; x++)
if(huvalue2[x] == huvalue2[j] + 1)
{
i1 = x;
exit1 = true;
} else
if(huvalue2[x] == huvalue2[j] + 2)
{
i2 = x;
exit2 = true;
}
if(exit1 && exit2)
{
huvalue2[j] = 100;
huvalue2[i1] = 100;
huvalue2[i2] = 100;
}
}
}
int l = 0;
for(int j = 0; j <= 14; j++)
if(huvalue2[j] == 100)
l++;
if(l == 14)
exeTing = true;
if(exeTing)
{
for(int j = 0; j <= 14; j++)
if(huvalue2[j] != 100)
tag = huvalue2[j];
for(int j = 0; j <= 14; j++)
{
if(value2[j] != tag)
continue;
value2[j] = 100;
break;
}
isTing = true;
hutag = value[t];
computerpasspaint(g);
coverdraw(g, 100, 17, 25, 5, ting, 100, 17);
}
san1[0] = san1[0] + 1;
for(int j = 0; j <= 2; j++)
if(san1[j] == 2)
{
san1[j + 1] = san1[j + 1] + 1;
san1[j] = 0;
}
}
}
}
}
}
private void computerpass(Graphics g)
{
ispass2 = false;
int feng[] = new int[14];
int feng1[] = new int[14];
int tiao[] = new int[14];
int tong[] = new int[14];
int wan[] = new int[14];
for(int i = 0; i <= 13; i++)
{
feng[i] = 0;
feng1[i] = 0;
tiao[i] = 0;
tong[i] = 0;
wan[i] = 0;
}
int fengNO = 0;
int tiaoNO = 0;
int tongNO = 0;
int wanNO = 0;
if(isTing)
{
value2[13] = 100;
computerpasspaint(g);
} else
{
for(int i = 0; i <= 13; i++)
if(value2[i] >= 61 && value2[i] <= 67)
{
feng[fengNO] = value2[i];
feng1[fengNO] = value2[i];
fengNO++;
} else
if(value2[i] >= 1 && value2[i] <= 9)
{
tiao[tiaoNO] = value2[i];
tiaoNO++;
} else
if(value2[i] >= 21 && value2[i] <= 29)
{
tong[tongNO] = value2[i];
tongNO++;
} else
if(value2[i] >= 41 && value2[i] == 49)
{
wan[wanNO] = value2[i];
wanNO++;
}
for(int i = 0; i <= 11; i++)
{
if(ispass2)
break;
if(i == 0)
{
tingdraw(g);
if(isTing)
{
sort2();
break;
}
sort2();
} else
if(i == 1)
{
for(int k = 0; k <= 12; k++)
{
for(int j = k + 1; j <= 13; j++)
if(feng[k] == feng[j] && feng[k] != 100)
{
feng1[k] = 100;
feng1[j] = 100;
}
}
for(int k = 0; k <= 13; k++)
{
if(feng1[k] == 100)
continue;
tag = feng1[k];
for(int j = 0; j <= 13; j++)
{
if(value2[j] != feng1[k])
continue;
value2[j] = 100;
break;
}
computerpasspaint(g);
ispass2 = true;
break;
}
} else
if(i == 2)
bi1draw(g, tiao);
else
if(i == 3)
bi2draw(g, tiao);
else
if(i == 4)
bi1draw(g, tong);
else
if(i == 5)
bi2draw(g, tong);
else
if(i == 6)
bi1draw(g, wan);
else
if(i == 7)
bi2draw(g, wan);
else
if(i == 8)
kadraw(g, tiao);
else
if(i == 9)
kadraw(g, tong);
else
if(i == 10)
kadraw(g, wan);
else
if(i == 11)
{
tag = value2[0];
value2[0] = 100;
computerpasspaint(g);
ispass2 = true;
}
}
}
}
private void bi1draw(Graphics g, int a[])
{
if(a[0] != 100 && a[1] == 100 || a[0] != 100 && a[1] != 100 && a[1] - a[0] >= 2)
{
tag = a[0];
for(int j = 0; j <= 13; j++)
{
if(value2[j] != a[0])
continue;
value2[j] = 100;
break;
}
computerpasspaint(g);
ispass2 = true;
}
}
private void bi2draw(Graphics g, int b[])
{
int a = 0;
if(b[0] != 100 && b[1] != 100)
{
for(int j = 0; j <= 13; j++)
{
if(b[j] == 100)
{
a = j - 1;
break;
}
if(b[13] == 100)
continue;
a = 13;
break;
}
if(b[a] - b[a - 1] >= 2)
{
tag = b[a];
for(int j = 0; j <= 13; j++)
{
if(value2[j] != b[a])
continue;
value2[j] = 100;
break;
}
computerpasspaint(g);
ispass2 = true;
}
}
}
private void kadraw(Graphics g, int b[])
{
int c[] = {
100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
100, 100, 100
};
for(int j = 0; j <= 12; j++)
if(b[j] != 100 && b[j + 1] != 100)
c[j] = b[j + 1] - b[j];
for(int j = 0; j <= 11; j++)
{
if(c[j] < 2 || c[j + 1] < 2 || c[j] == 100 || c[j + 1] == 100)
continue;
tag = b[j + 1];
for(int k = 0; k <= 13; k++)
{
if(value2[k] != tag)
continue;
value2[k] = 100;
break;
}
computerpasspaint(g);
ispass2 = true;
break;
}
}
private void computerpasspaint(Graphics g)
{
grounddraw(g, tagx2, tagy2, 8, 14);
passx2 = 119 - (passID - 1 - changeID2) * 9;
passy2 = 37;
if(passx2 >= -124 && passx2 <= -7)
{
passy2 = passy2 - 14;
passx2 = passx2 + 126;
} else
if(passx2 >= -250 && passx2 <= -133)
{
passy2 = 37;
passx2 = passx2 + 252;
} else
if(passx2 >= -376 && passx2 <= -259)
{
passy2 = passy2 - 14;
passx2 = passx2 + 378;
}
drawpai(g, passx2, passy2, tag);
}
private void computerDo(Graphics g)
{
if(isTing)
{
hudraw2(g);
if(!hu2)
{
finish();
if(isFinish)
finishdraw(g);
else
if(score1 >= 1500 || noHu == 12)
{
tag = hutag;
value2[13] = hutag;
hudraw2(g);
} else
{
handdraw2(g);
hudraw2(g);
if(hu2)
{
fan = fan + 1;
} else
{
computerpass(g);
sort2();
noHu++;
}
}
}
} else
{
for(int i = 0; i <= 4; i++)
{
doGang2 = false;
doPeng2 = false;
doChi2 = false;
if(i == 0)
{
hudraw2(g);
if(hu2)
break;
}
if(i == 1)
{
gangdraw2(g);
if(!doGang2)
continue;
computerpass(g);
sort2();
break;
}
if(i == 2)
{
pengdraw2(g);
if(!doPeng2)
continue;
computerpass(g);
sort2();
break;
}
if(i == 3)
{
chidraw2(g);
if(!doChi2)
continue;
computerpass(g);
sort2();
break;
}
if(i != 4)
continue;
finish();
if(isFinish)
{
finishdraw(g);
} else
{
handdraw2(g);
computerpass(g);
sort2();
}
break;
}
}
}
private void hudraw2(Graphics g)
{
exeHu(value2);
if(exeHu)
{
exeHu = false;
hu2 = true;
int k = 0;
drawpai(g, tagx2, normaly2, tag);
for(int i = 0; i <= 13; i++)
{
if(value2[i] != 100)
{
drawpai(g, normalx2[i], normaly2, value2[i]);
continue;
}
if(value2[i] == 100)
break;
}
grounddraw(g, 0, 15, 128, 98);
fan = fan2;
countScore(g);
score2 = score2 + 10 * fan;
score1 = score1 - 10 * fan;
g.setColor(255);
g.setFont(bigFont);
g.drawString("+" + 10 * fan, 70, 30, 20);
g.drawString("=" + score2, 70, 45, 20);
g.drawString("-" + 10 * fan, 70, 70, 20);
g.drawString("=" + score1, 70, 85, 20);
doHu = true;
zhuang = false;
}
}
private void countScore(Graphics g)
{
boolean duiduihu = false;
boolean qing = false;
boolean hun = false;
int value6[] = {
100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
100, 100, 100, 100
};
int value8[] = {
100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
100, 100, 100, 100
};
int value7[] = {
100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
100, 100
};
if(hu2)
{
sort2();
for(int i = 0; i <= 13; i++)
value6[i] = value2[i];
value6[13] = tag;
for(int i = 0; i <= 11; i++)
value7[i] = value5[i];
} else
{
for(int i = 0; i <= 13; i++)
value6[i] = value1[i];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -