java_制作五子棋的第三天

目录

  • 概况
  • 缺陷
  • 单击开始
  • 棋子储存
  • 下黑白棋
  • 获胜

概况

今天主要实现了确认开始,单击开始键,棋子的储存以及黑白两色棋子的下,以及获胜方法.

缺陷

游戏结束后还可以继续游戏,无法重置.

单击开始

通过添加布尔类型值(判断是否开始),添加一个标签,并将标签放在指定位置,单击时完成方法.

JLabel startgame=new JLabel();
		startgame.setBounds(620, 215, 120, 50);
		startgame.addMouseListener(new MouseListener() {
			
			public void mouseReleased(MouseEvent arg0) {
				// TODO Auto-generated method stub
				
			}
			
			public void mousePressed(MouseEvent arg0) {
				// TODO Auto-generated method stub
				JOptionPane.showMessageDialog(null, "可以开始游戏了");
				main.this.start=true;

棋子储存

主要通过一个二维数组,记录坐标.int allchess[][]=new int[10][10];//声明数组 if(allchess[index_x][index_y]==0){ if(isblack){ allchess[index_x][index_y]=1; this.isblack=false; } else if(isblack==false){allchess[index_x][index_y]=2;

对二维数组进行赋值,分别用1,2代替颜色,同时不能覆盖原来棋子,因此必须先判断是否在0处,若为0方能下.

下黑白棋

for(int i=0;i<allchess.length;i++){
				for(int j=0;j<allchess[i].length;j++){
					System.out.print(allchess[i][j]);
					
					if(allchess[i][j]==1){
						g.setColor(Color.white);
						g.fillOval(i*50+110-15, j*50+100-15, 30, 30);}
					else if(allchess[i][j]==2){
						g.setColor(Color.black);
						g.fillOval(i*50+110-15, j*50+100-15, 30, 30);}

获胜

获胜主要有三种赢的方法,横竖或斜.横分为左连五个或者右连五个,同理可得竖即为上下,斜着同理得四种获胜方法.

public boolean checkwin() {
		//获取当前棋子颜色
		int color =this.allchess[this.index_x][this.index_y];
		int count=1;
		int num=1;
		while(color==this.allchess[this.index_x-num][this.index_y]){
			count++;
			num++;
		}
		num=1;
		while(color==this.allchess[this.index_x+num][this.index_y]){
			count++;
			num++;}
		num=1;
		while(color==this.allchess[this.index_x][this.index_y+num]){
			count++;
			num++;}
		num=1;
		while(color==this.allchess[this.index_x][this.index_y-num]){
			count++;
			num++;}
		num=1;
		while(color==this.allchess[this.index_x+num][this.index_y+num]){
			count++;
			num++;}
		num=1;
		while(color==this.allchess[this.index_x+num][this.index_y-num]){
			count++;
			num++;}
		num=1;
		while(color==this.allchess[this.index_x-num][this.index_y+num]){
			count++;
			num++;}
		num=1;
		while(color==this.allchess[this.index_x-num][this.index_y-num]){
			count++;
			num++;}
		if(count>=5){
			return true;
		}		
		
		return false;
	}


	
	

你可能感兴趣的:(#,java基础,java,java,开发语言,后端)