摘要:本文主要向大家介绍了JAVA语言练习,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。
本文主要向大家介绍了JAVA语言练习,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。
要为扫雷游戏布置地雷,扫雷游戏的扫雷面板可以用二维int数组表示。如某位置为地雷,则该位置用数字-1表示,
如该位置不是地雷,则暂时用数字0表示。
编写程序完成在该二维数组中随机布雷的操作,程序读入3个参数:布雷面板的行数(r),列数(c),布置的地雷个数(n),
且要满足0<n<r*c*0.75(即布置地雷的最大密度为75%),程序运行后将n个地雷随机地布置在r*c的二维数组,布置完成后进行扫雷游戏。
import java.util.*;
public class Minesweeper {
public static void main(String[] args) {
Scanner scn = new Scanner(System.in);
//输入行和列
int r = Integer.parseInt(scn.nextLine());
int c = Integer.parseInt(scn.nextLine());
if(r<2 || c<2)
{
System.out.println("输入的行列无效。");
return;
}
//定义一个二维数组来布雷
int[][] a = new int[r][c];
Random rnd = new Random();
//随机给出雷的个数
int n = rnd.nextInt((int)(r*c*0.75));
System.out.println("雷的个数:"+n);
while(n>0)
{
//随机的布雷,随机产生雷所在行和列
int rr = rnd.nextInt(r);
int cc = rnd.nextInt(c);
if(a[rr][cc]!=-1)
{
a[rr][cc]=-1;
n--;
}
}
//扫雷
for(int i=0;i<r;i++)
{
for(int j=0;j<c;j++)
{
int lei=0;
if(a[i][j] == 0)
{
if(i-1>=0 && j-1>=0 && a[i-1][j-1]==-1)
lei++;
if(i-1>=0 && a[i-1][j]==-1)
lei++;
if(j<c-1)
{
if(i-1>=0 && a[i-1][j+1]==-1)
lei++;
if(a[i][j+1]==-1)
lei++;
}
if(j-1>=0 && a[i][j-1]==-1)
lei++;
if(i<r-1)
{
if(j-1>=0 && a[i+1][j-1]==-1)
lei++;
if(a[i+1][j]==-1)
lei++;
}
if(i<r-1 && j<c-1)
{
if(i+1>=1 && j+1>=1 && a[i+1][j+1]==-1)
lei++;
}
a[i][j]=lei;
}
}
}
//输出
for(int i=0;i<r;i++)
{
for(int j=0;j<c;j++)
{
System.out.print(a[i][j]+"\t");
}
System.out.println();
}
}
}
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注编程语言JAVA频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号