📄 chuan.java
字号:
package turing;
import java.awt.Color;
import java.awt.Graphics2D;
import java.util.ArrayList;
import turing.Game.Screen;
public class Chuan {
//属性
private int chuanHao;
//包含关系
private ArrayList al;
//功能
public Chuan(int hao) {
al=new ArrayList();
chuanHao = hao;
}
public void xianShi(Graphics2D g2d,Screen s)
{
if(al.size()==0)
{
g2d.setColor(Color.WHITE);
g2d.drawRect(chuanHao*100,0,71,96);
}
else
{
for(int i=0;i<al.size();i++)
{
Zhang z=(Zhang)al.get(i);
z.xianShi(g2d,s,chuanHao*100,30*i);
}
}
}
public boolean anWo(int mx,int my)
{
if(al.size()==0&&(mx>=chuanHao*100&&mx<chuanHao*100+71&&my<96)) return true;;//改
return mx>=chuanHao*100 && mx<=chuanHao*100+71 && my<=96 + 30*(al.size()-1);
}
public boolean nengLin(int mx,int my)
{
//空了 不能拎
if(al.size()==0) return false;
//安的是反面,不能
Zhang z=(Zhang)al.get(my/30);
if(z.isZhengFan()==false) return false;
//颜色一致,点数相邻?
int ge=0;
for(int i=my/30 + 1;i<al.size();i++)
{
ge++;
Zhang zi=(Zhang)al.get(i);
if(zi.getSe()!=z.getSe() || z.getDian() - zi.getDian() !=ge)
{
return false;
}
}
return true;
}
public Lin linQi(int mx,int my)
{
int cong=my/30;
int dao=al.size()-1;
Lin lin=new Lin(this);
for(int i=cong;i<=dao;i++)
{
Zhang z=(Zhang)al.get(cong);
lin.jiaZhang(z);
al.remove(cong);
}
return lin;
}
public boolean nengFang(Lin lin)
{
if(al.size()==0) return true;
Zhang z1=(Zhang)lin.getAl().get(0);
Zhang z2=(Zhang)al.get(al.size()-1);
return z1.getSe()==z2.getSe() && z1.getDian()+1==z2.getDian();
}
public void bingRu(Lin lin)
{
ArrayList alLin=lin.getAl();
for(int i=0;i<alLin.size();i++)
{
Zhang z=(Zhang)alLin.get(i);
this.al.add(z);
}
lin=null;
}
public void huiGui(Lin lin)
{
bingRu( lin);
}
public void fanMoZhang()
{
if(al.size()==0) return;
Zhang z=(Zhang)al.get(al.size()-1);
z.setZhengFan(true);
}
public boolean nengXiao()
{
Zhang moZhang=(Zhang)al.get(al.size()-1);
if(moZhang.getDian()!=1 ) return false;
if(al.size()<13) return false;
int dian=1;
for(int i=al.size()-2;i>=al.size()-13;i--)
{
dian++;
Zhang z=(Zhang)al.get(i);
if(z.isZhengFan()==false) return false;
if(z.getSe()!= moZhang.getSe() || z.getDian()!=dian )
{
return false;
}
}
return true;
}
public void xiao()
{
for(int i=0;i<13;i++)
{
al.remove(al.size()-1);
}
}
public void jiaZhang(Zhang z)
{
al.add(z);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -