JAVA小游戏之扫雷的源代码

老师讲的扫雷小游戏,因为基础还不扎实,所以还写不出扫雷游戏,大家可以看看尝试去写写。

————————————————————————————————————
//测试类
package com.titan.test;

import java.util.Scanner;

import com.titan.core.Game;

public class Test1 {
	public static void main(String[] args) {
		 //获得游戏核心类的对象
		 Game g=new Game();
		 //调用添加格子对象的方法3
		 g.addGrid();
		 //布雷方法调用
		 g.setMine();
		 //添加雷数的调用
		 g.setNumber();
		 
		 Scanner s=new Scanner(System.in);
		 g.paint();
		 while(true){
			 System.out.println("请输入X坐标");
			 int x=s.nextInt();
			 System.out.println("请输入Y坐标");
			 int y=s.nextInt();
			 g.stamp(x, y);
			 //调用绘制界面的方法
			 g.paint();
		 }		 
	}
}
————————————————————————————————————
//游戏核心类
package com.titan.core;

import java.awt.Point;
import java.util.Random;

import com.titan.bean.Grid;

/**
 * 游戏核心类
 * @author Administrator
 * 雷区(游戏界面)
 */
public class Game {
	
	//定义一个存放格子对象的二维数组
	Grid[][] grid=new Grid[9][9];
	
	//定义一个存放雷数的属性
	int count=10;
	//定义一个随机数工具的属性
	Random r=new Random();
	
	//添加格子对象到二维数组中
	public void addGrid(){
		//通过循环的方式来为二维数组中添加格子对象
		for(int i=0;i=0 && p.y>=0 && p.x<9 && p.y<9){
							//判断当前有效范围内的格子是否是雷
							if(grid[p.x][p.y].getContent()=='*'){
								sum++;
							}
						}
					}
				}
				
				//判断雷数的计数器是否发生改变,如果改变就将值填充到
				//当前坐标的格子当中
				if(sum>0){
					grid[i][j].setContent((char)(48+sum));
				}
			}
		}
	}
	
	
	//踩雷
	public void stamp(int x,int y){
		//判断当前位置是否存在雷
		if(grid[x][y].getContent()=='*'){
			System.out.println("游戏结束");
		}else{
			//将当前的格子内容状态改成已打开
			grid[x][y].setState(true);
			//判断当前的格子内容必须是空格的时候才执行辐射
			if(grid[x][y].getContent()==' '){
				//获得当前格子的8个方向坐标对象
				Point[] point=getPoint(x,y);
				//循环遍历获得每个方向的对象
				for(int k=0;k=0 && p.y>=0 && p.x<9 && p.y<9){
						//判断当前方向的格子内容是否为空格,如果为空格
						//就执行辐射操作  --递归调用
						if(grid[p.x][p.y].getContent()==' ' 
									&& grid[p.x][p.y].isState()==false){
							stamp(p.x,p.y);
						}else if(grid[p.x][p.y].getContent()!=' '){
							//如果当前位置为数字就将数字显示出来
							grid[p.x][p.y].setState(true);
						}
					}
				}
			}
		}
	}
}
————————————————————————————————————
//格子类
package com.titan.bean;

import java.awt.Point;

/**
 * 格子类
 * @author Administrator
 * 格子的内容、格子的状态、格子的坐标
 */
public class Grid {
	//格子内容
	char content;
	//格子状态
	boolean state;
	//格子的坐标
	Point point;
	public char getContent() {
		return content;
	}
	public void setContent(char content) {
		this.content = content;
	}
	public boolean isState() {
		return state;
	}
	public void setState(boolean state) {
		this.state = state;
	}
	public Point getPoint() {
		return point;
	}
	public void setPoint(Point point) {
		this.point = point;
	} 
}





你可能感兴趣的:(Java学习,扫雷,游戏,源代码,java)