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

📄 piecesselect.java

📁 一个简单的Java Swing 游戏Blokus~方块圈地~Eclipse3.0 Project
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
					//System.out.print(gr[i][j] + " ");
					if(gr[i][j] == 1){
						br[(int)cy + i][(int)rx + j] = temp.getpColor();
					}
				}
			}
			setCanPut(false);
			game.setBoardGrid(br);
			temp.setOnBoard(true);
			game.setPOnMouse(false);
			setOnMouse(false);
			//game.repaint();
			finishP = true;
			//System.out.println("InputSe:" + this.turn);
		}else{
			setCanPut(false);
			finishP = false;
			System.out.println("InputSe:" + this.turn);
			return 0;
		}
		return 1;
	}
	
	//鼠标滚轮事件
	public void mouseWheelMoved(MouseWheelEvent e){
		int x = e.getX();
		int y = e.getY();
		//System.out.println("aa");
		if(e.getWheelRotation() > 0 && onMouse == true){
			Pieces t = this.temp;
			int[][] gr = t.getGrid();
			int s = t.getScore();
			int[][] tr = new int[s][s];
			for(int i = 0; i < s; i ++)
				for(int j = 0; j < s; j ++)
					tr[j][s - 1 - i] = gr[i][j];
			t.setGrid(tr);
			game.setPx(x);
			game.setPy(y);
			game.setTemp(t);
			game.setCir(1);
			game.repaint();
		}
		else if(e.getWheelRotation() < 0 && onMouse == true){
			Pieces t = this.temp;
			int[][] gr = t.getGrid();
			int s = t.getScore();
			int[][] tr = new int[s][s];
			for(int i = 0; i < s; i ++)
				for(int j = 0; j < s; j ++)
					tr[s - 1 - j][i] = gr[i][j];
			t.setGrid(tr);
			game.setPx(x);
			game.setPy(y);
			game.setTemp(t);
			game.setCir(1);
			game.repaint();
		}
	}
	
	
	public void mouseEntered(MouseEvent e){
		
	}
	
	public void mouseExited(MouseEvent e){
		
	}
	
	public void mousePressed(MouseEvent e){
		
	}
	
	public void mouseReleased(MouseEvent e){
		
	}
	
	public void setOnMouse(boolean onMouse){
		this.onMouse = onMouse;
	}
	
	public boolean getOnMouse(){
		return onMouse;
	}
	
	private void setCanPut(boolean can){
		this.canPut = can;
	}
	
	private void setTemp(Pieces temp){
		this.temp = temp;
	}
	
	private Pieces getTemp(){
		return temp;
	}
	
	//自动运行
	private void autoRun(int tr){
		LinkedList l = new LinkedList();
		Random r = new Random();
		
		boolean finish = false;
		
		int ro = 0;
		int rd = 0;
		int[][] boardT = new int[21][21];
		int[] b3 = new int[2]; b3[0] = 0; b3[1] = 0;
		int[] b4 = new int[5]; b4[0] = 0; b4[1] = 0; b4[2] = 0; b4[3] = 0; b4[4] = 0;
		int[] b5 = new int[12];
		
		int[] c2 = new int[6]; 
		c2[0] = 0; c2[1] = 0; c2[2] = 0; c2[3] = 0; c2[4] = 0; c2[5] = 0;
		
		for(int i = 0; i < 12; i ++)
			b5[i] = 10 + i;
		
		for(int i = 0; i < 21; i ++)
			for(int j = 0; j < 21; j ++)
				boardT[i][j] = game.getBoardGrid()[i][j];
		
		rd = r.nextInt(5);
		for(int i = 0; i < 6; i ++){
			if((rd + i) > 5)
				c2[i] = c1[(rd + i ) - 6]; 
			else
				c2[i] = c1[rd + i];
		}
		
		rd = r.nextInt(1);
		b3[0] = a3[rd];
		b3[1] = a3[1 - rd];
		
		rd = r.nextInt(4);
		for(int i = 0; i < 5; i ++){
			if((rd + i) > 4)
				b4[i] = a4[(rd + i ) - 5]; 
			else
				b4[i] = a4[rd + i];
		}
		
		rd = r.nextInt(11);
		for(int i = 0; i < 12; i ++){
			if((rd + i) > 11)
				b5[i] = a5[(rd + i ) - 12]; 
			else
				b5[i] = a5[rd + i];
			//System.out.print(b5[i]+" ");
		}
		//System.out.println();
		
		switch(tr){
		case 1: l = game.getBluePieces().getImagePieces();
			break;
		case 2: l = game.getYellowPieces().getImagePieces();
			break;
		case 3: l = game.getRedPieces().getImagePieces();
			break;
		case 4: l = game.getGreenPieces().getImagePieces();
			break;
		default: {
			System.out.println("Default");
			l = game.getBluePieces().getImagePieces();
			}
			break;
		}
		
		for(int i = 0; i < 12; i ++){
			Iterator ite = l.iterator();
			while(ite.hasNext() && finish == false){
				Pieces p = (Pieces)ite.next();
				ro = 0;
				if(p.getTypeNo() == b5[i] && p.getOnBoard() == false && p.getInUse() == true){					
					while( finish == false && ro < 6){
						if(checkBoard(p,boardT,c2[ro]) == true){
							p.setOnBoard(true);
							finish = true;
						}
						ro ++;
					}					
					/*if(checkBoard(p,boardT,c2[0]) == true && finish == false){
						System.out.println(b5[i]);
						p.setOnBoard(true);
						finish = true;
					}
					else if(checkBoard(p,boardT,c2[1]) == true && finish == false){
						System.out.println(b5[i]);
						p.setOnBoard(true);
						finish = true;
					}
					else if(checkBoard(p,boardT,c2[2]) == true && finish == false){
						System.out.println(b5[i]);
						p.setOnBoard(true);
						finish = true;
					}
					else if(checkBoard(p,boardT,c2[3]) == true && finish == false){
						System.out.println(b5[i]);
						p.setOnBoard(true);
						finish = true;
					}
					else if(checkBoard(p,boardT,c2[4]) == true && finish == false){
						System.out.println(b5[i]);
						p.setOnBoard(true);
						finish = true;
					}
					else if(checkBoard(p,boardT,c2[5]) == true && finish == false){
						System.out.println(b5[i]);
						p.setOnBoard(true);
						finish = true;
					}*/
				}
			}
		}
		
		if(finish == false)
		for(int i = 0; i < 5; i ++){
			Iterator ite = l.iterator();
			while(ite.hasNext() && finish == false){
				Pieces p = (Pieces)ite.next();
				ro = 0;
				if(p.getTypeNo() == b4[i] && p.getOnBoard() == false && p.getInUse() == true){					
					while(finish == false && ro < 6){
						if(checkBoard(p,boardT,c2[ro]) == true){
							p.setOnBoard(true);
							finish = true;
						}
						ro ++;
					}
					
					/*if(checkBoard(p,boardT,c2[0]) == true && finish == false){
						System.out.println(b4[i]);
						p.setOnBoard(true);
						finish = true;
					}
					else if(checkBoard(p,boardT,c2[1]) == true && finish == false){
						System.out.println(b4[i]);
						p.setOnBoard(true);
						finish = true;
					}
					else if(checkBoard(p,boardT,c2[2]) == true && finish == false){
						System.out.println(b4[i]);
						p.setOnBoard(true);
						finish = true;
					}
					else if(checkBoard(p,boardT,c2[3]) == true && finish == false){
						System.out.println(b4[i]);
						p.setOnBoard(true);
						finish = true;
					}
					else if(checkBoard(p,boardT,c2[4]) == true && finish == false){
						System.out.println(b4[i]);
						p.setOnBoard(true);
						finish = true;
					}
					else if(checkBoard(p,boardT,c2[5]) == true && finish == false){
						System.out.println(b4[i]);
						p.setOnBoard(true);
						finish = true;
					}*/
				}
			}
		}
		
		if(finish == false)
		for(int i = 0; i < 2; i ++){
			Iterator ite = l.iterator();
			while(ite.hasNext() && finish == false){
				Pieces p = (Pieces)ite.next();
				ro = 0;
				if(p.getTypeNo() == b3[i] && p.getOnBoard() == false && p.getInUse() == true){					
					while(finish == false && ro < 6){
						if(checkBoard(p,boardT,c2[ro]) == true){
							p.setOnBoard(true);
							finish = true;
						}
						ro ++;
					}
					
					/*if(checkBoard(p,boardT,c2[0]) == true && finish == false){
						System.out.println(b3[i]);
						p.setOnBoard(true);
						finish = true;
					}
					else if(checkBoard(p,boardT,c2[1]) == true && finish == false){
						System.out.println(b3[i]);
						p.setOnBoard(true);
						finish = true;
					}
					else if(checkBoard(p,boardT,c2[2]) == true && finish == false){
						System.out.println(b3[i]);
						p.setOnBoard(true);
						finish = true;
					}
					else if(checkBoard(p,boardT,c2[3]) == true && finish == false){
						System.out.println(b3[i]);
						p.setOnBoard(true);
						finish = true;
					}
					else if(checkBoard(p,boardT,c2[4]) == true && finish == false){
						System.out.println(b3[i]);
						p.setOnBoard(true);
						finish = true;
					}
					else if(checkBoard(p,boardT,c2[5]) == true && finish == false){
						System.out.println(b3[i]);
						p.setOnBoard(true);
						finish = true;
					}*/
				}
			}
		}
		
		if(finish == false)
		for(int i = 0; i < 1; i ++){
			Iterator ite = l.iterator();
			while(ite.hasNext() && finish == false){
				Pieces p = (Pieces)ite.next();
				ro = 0;
				if(p.getTypeNo() == a2 && p.getOnBoard() == false && p.getInUse() == true){					
					while(finish == false && ro < 6){
						if(checkBoard(p,boardT,c2[ro]) == true){
							p.setOnBoard(true);
							finish = true;
						}
						ro ++;
					}
					
					/*if(checkBoard(p,boardT,c2[0]) == true && finish == false){
						System.out.println(a2);
						p.setOnBoard(true);
						finish = true;
					}
					else if(checkBoard(p,boardT,c2[1]) == true && finish == false){
						System.out.println(a2);
						p.setOnBoard(true);
						finish = true;
					}
					else if(checkBoard(p,boardT,c2[2]) == true && finish == false){
						System.out.println(a2);
						p.setOnBoard(true);
						finish = true;
					}
					else if(checkBoard(p,boardT,c2[3]) == true && finish == false){
						System.out.println(a2);
						p.setOnBoard(true);
						finish = true;
					}
					else if(checkBoard(p,boardT,c2[4]) == true && finish == false){
						System.out.println(a2);
						p.setOnBoard(true);
						finish = true;
					}
					else if(checkBoard(p,boardT,c2[5]) == true && finish == false){
						System.out.println(a2);
						p.setOnBoard(true);
						finish = true;
					}*/
				}
			}
		}
		
		if(finish == false)
		for(int i = 0; i < 1; i ++){
			Iterator ite = l.iterator();
			while(ite.hasNext() && finish == false){
				Pieces p = (Pieces)ite.next();
				if(p.getTypeNo() == a1 && p.getOnBoard() == false && p.getInUse() == true){					
					if(checkBoard(p,boardT,c2[0]) == true && finish == false){
						//System.out.println(a1);
						p.setOnBoard(true);
						finish = true;
					}
				}
			}
		}
		
		if(finish == true)
			switch(tr){
			case 1: {turn = 2; game.setYl(180); game.repaint();}
				break;
			case 2: {turn = 3; game.setYl(360); game.repaint();}
				break;
			case 3: {turn = 4; game.setYl(540); game.repaint();}
				break;
			case 4: {turn = 1; game.setYl(0); game.repaint();}
				break;
			default:
				break;
			}
		else
			switch(tr){
			case 1: {turn = 2; skipB = true; game.setYl(180); game.repaint();}
				break;
			case 2: {turn = 3; skipY = true; game.setYl(360); game.repaint();}
				break;
			case 3: {turn = 4; skipR = true; game.setYl(540); game.repaint();}
				break;
			case 4: {turn = 1; skipG = true; game.setYl(0); game.repaint();}
				break;
			default:
				break;
			}
		
		if(skipB == true && skipY == true && skipR == true && skipG == true){
			end = true;
		}
	}
	
	//检查棋盘
	private boolean checkBoard(Pieces p, int[][] boardT,int type){
		int[][] gridT;//= new int[p.getScore()][p.getScore()];
		int minR = 0,minC = 0,maxR = 0,maxC = 0;
		int minBr = 0, minBc = 0, maxBr = 0, maxBc = 0, mit = 0;
		gridT = makeTempMatrix(p,type);
		boolean canP = true;
		minR = minRow(gridT,1);
		minC = minColum(gridT,1);
		maxR = maxRow(gridT,1);
		maxC = maxColum(gridT,1);
		
		if(p.getpColor() == 1){
			maxBr = maxRow(boardT,1);
			maxBc = maxColum(boardT,1);
			mit = (maxBr + maxBc) / 4;
			if(maxBr > 10 && maxBc > 10)
				mit = 10;
			//System.out.println("mit:" + mit);
			for(int i = mit; i < 20 - maxR; i ++)
				for(int j = mit; j < 20 - maxC; j ++)
					if(boardT[i][j] == 0){
						if(canDo(p,boardT,gridT,i,j) == true){
							for(int k = 0; k < p.getScore(); k ++)
								for(int h = 0; h < p.getScore(); h ++)
									if(gridT[k][h] == 1){
										if(game.getBoardGrid()[i + k][j + h] != 0){
											canP = false;
											//break;
											return false;
											//game.getBoardGrid()[i + k][j + h] = p.getpColor();
											}	
									}
							for(int k = 0; k < p.getScore(); k ++)
								for(int h = 0; h < p.getScore(); h ++){
									if(gridT[k][h] == 1 && canP == true){
										game.getBoardGrid()[i + k][j + h] = p.getpColor();
									}
								}
							return true;
						}
					}
			for(int i = mit; i < 20 - maxR; i ++)
				for(int j = 0; j < mit; j ++)
					if(boardT[i][j] == 0){
						if(canDo(p,boardT,gridT,i,j) == true){
							for(int k = 0; k < p.getScore(); k ++)
								for(int h = 0; h < p.getScore(); h ++)
									if(gridT[k][h] == 1){
										if(game.getBoardGrid()[i + k][j + h] != 0){
											canP = false;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -