java二维数组扫雷,C语言二维数组实现扫雷游戏

#include

//使用二维数组实现 扫雷

int main()

{

char ui[8][8]={

'+','+','+','+','+','+','+','+',

'+','+','+','+','+','+','+','+',

'+','+','+','+','+','+','+','+',

'+','+','+','+','+','+','+','+',

'+','+','+','+','+','+','+','+',

'+','+','+','+','+','+','+','+',

'+','+','+','+','+','+','+','+',

'+','+','+','+','+','+','+','+'

};

int map[8][8]={

0,0,0,0,0,0,0,0,

0,0,1,0,0,1,0,0,

0,0,0,0,1,0,0,0,

0,0,0,0,0,1,0,0,

0,0,1,0,0,0,0,0,

0,0,1,0,0,0,0,0,

0,1,0,1,1,0,0,0,

1,0,0,0,0,0,0,0

};

int p[8][2]={{-1,-1} ,{-1,0},{-1,1},{0,-1},{0,1},{1,-1},{1,0},{1,1}};

int i=0,j=0;

int h=0,l=0;

int h1=0,l1=0;

int n=0;//用来保存 雷的数量 计数

int win=0;

while(1)

{

printf(" 扫雷游戏\n");

for(i=0;i<8;i++)

{

for(j=0;j<8;j++)

{

printf("%c ",ui[i][j]);

}

printf("\n");

}

printf("请输入你要打开的位置 行 列:");

scanf("%d%d",&h,&l);

if(map[h-1][l-1]==1)

{

printf("踩到雷 游戏结束\n");

break;

}

h=h-1;

l=l-1;

//没有踩到雷的情况 判断周围有几个雷 并把数字显示在 界面上

//-1 -1 -1, 0 -1,+1 0 ,-1 0 ,+1 +1 ,-1 +1,0 +1 ,+1

//n=map[h-1][l-1]+map[h-1][l]+map[h-1][l+1]+map[h][l-1]+map[h][l+1]+map[h+1][l-1]+map[h+1][l+1]+map[h+1][l];

i=0;

while(i<8)

{

n=0;

h1=h;

l1=l;

h1= h1+p[i][0];

l1=l1+p[i][1];

if(h1>=0&&h1<8&&l1>=0&&l1<8)

{

if(map[h1][l1]==1)

{

n++;

}

}

i++;

}

//把得到的数字显示到 界面上 ui[h][l];

//把int数字转换成 字符

switch(n)

{

case 0:

ui[h][l]='0';

break;

case 1:

ui[h][l]='1';

break;

case 2:

ui[h][l]='2';

break;

case 3:

ui[h][l]='3';

break;

case 4:

ui[h][l]='4';

break;

case 5:

ui[h][l]='5';

break;

case 6:

ui[h][l]='6';

break;

case 7:

ui[h][l]='7';

break;

case 8:

ui[h][l]='8';

break;

}

win++;

if(win==54)

{

printf("获胜 游戏结束\n");

break;

}

}

return 0;

}

c语言二维数组传递

c语言二维数组传递,目前我总结三种方法,以及纠正一个不能使用的方法 /********************************* * 方法1: 第一维的长度可以不指定 * * 但必须指定第二维 ...

关于c语言二维数组与指针的个人理解及处理办法。

相信大家在学习C语言时,对一维数组和指针的理解应该是自信的,但是,我在学习过程中,看到网上一些博文,发现即便是参加工作的一些专业编程人员,突然碰到二维数组和指针的问题时,也可能会遇到难以处理的诡异问题 ...

C语言 二维数组复制、清零及打印显示

#include #include #include //二维整型数组打印显示 ],int row, ...

C语言二维数组作业

一.PTA实验作业 题目1:7-3 出生年 1. 本题PTA提交列表 2. 设计思路 1.声明一个函数different()用来计算一个年份的不同数字个数 2.定义y(y是来计算符合要求的年份的量), ...

C语言 二维数组(指针)动态分配和释放(转)

C 二维数组(指针)动态分配和释放 先明确下概念: 所谓32位处理器就是一次只能处理32位,也就是4个字节的数据,而64位处理器一次就能处理64位,即8个字节的数据.如果我们将总长128位的指令分别按 ...

C语言二维数组

上节讲解的数组可以看作是一行连续的数据,只有一个下标,称为一维数组.在实际问题中有很多数据是二维的或多维的,因此C语言允许构造多维数组.多维数组元素有多个下标,以确定它在数组中的位置.本节只介绍二维数 ...

C语言二维数组作为函数参数

设有整型二维数组a[3][4]如下:0   1   2   34   5   6   78   9  10  11 它的定义为:    int a[3][4]={{0,1,2,3},{4,5,6,7} ...

C语言二维数组作为函数的参数

前言:今天在实现装配线调度程序时候,用到了二维数组,并将其作为函数的参数.在写程序的时候,遇到一些问题,即二维数组做函数的参数应该如何正确表示.我写程序的错误如下程序所示: #include < ...

c语言二维数组与指针

问题,以下输出的结果是什么,区别在于哪? void main() { ][] = { ,,,,,,,,,,, }; //输出的3个地址都一样,差别在哪? printf("\n%x" ...

随机推荐

&lbrack;CareerCup&rsqb; 15&period;2 Renting Apartment II 租房之二

Write a SQL query to get a list of all buildings and the number of open requests (Requests in which ...

Zerojudge解题经验交流

题号:a001: 哈囉 背景知识:输出语句,while not eof 题号:a002: 簡易加法 背景知识:输出语句,while not eof,加法运算 题号:a003: 兩光法師占卜術 背景知识 ...

ADB操作多台设备

1.adb devices 查看所有连接设备. 2.adb -s shell 指定device来执行adb shell. 3.adb -s

Unity3d 使用DX11的曲面细分

Unity3d surface Shaderswith DX11 Tessellation Unity3d surface shader 在DX11上的曲面细分 I write this articl ...

Python笔记4-20151029

一.切片 L = [''Michael','Sarah','Tracy','Bob','Jack'] 取前N个元素,也就是索引为0-(N-1)的元素,可以用循环: >>> r = [ ...

剑指Offer-构建乘积数组

package Array; import sun.security.util.Length; /** * 构建乘积数组 * 给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,... ...

hdfs知识点《转》

HDFS知识点总结   学习完Hadoop权威指南有一段时间了,现在再回顾和总结一下HDFS的知识点. 1.HDFS的设计 HDFS是什么:HDFS即Hadoop分布式文件系统(Hadoop Dist ...

&lbrack;深度学习&rsqb; 权重初始化--Weight Initialization

深度学习中的weight initialization对模型收敛速度和模型质量有重要影响! 在ReLU activation function中推荐使用Xavier Initialization的变种 ...

vue element ui 导航刷新 is-active

JPA&plus;Hibernate 3&period;3 ——基本属性映射

1.数据库中字段的数据类型为longtext  存放二进制文本的注解方式 private byte[] file; //设置延迟初始化 @Lob @Basic(fetch=FetchType.LA ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值