⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chuan.java

📁 用java面向对象的思想写的一个仿照windows下的那个蜘蛛纸牌的小游戏
💻 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 + -