扫雷游戏【无界面】

来源:互联网 发布:南京广电网络营业厅 编辑:程序博客网 时间:2024/05/01 15:43

初学C语言,编写一个扫雷小游戏,无界面

效果图如下:

完整代码如下:

// HelloWorld.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <stdio.h>#include <stdlib.h>#include <time.h>int main(int argc, char* argv[]){//定义雷的个数int numBomb=-1;//创建随机种子,根据时间的不同随机数字也不同srand(time(0));//最多5颗地雷numBomb=rand()%5+1;//产生5颗雷的位置//每组有x,y两个元素值int arrayPos[5][2]={0};//随机产生雷的位置for(int i=0;i<numBomb;i++){int xPos=rand()%5+1;int yPos=rand()%5+1;//如果有雷的位置重合,放弃此次操作,重新产生一颗for(int j=0;j<5;j++){if(xPos==arrayPos[j][0]&&yPos==arrayPos[j][1]){i--;continue;}}arrayPos[i][0]=xPos;arrayPos[i][1]=yPos;}//地图数组int arrayMap[7][7]={0};//雷的布局数组int arrayBomb[7][7]={0};for(i=0;i<numBomb;i++){int xPos=arrayPos[i][0];int yPos=arrayPos[i][1];arrayBomb[xPos][yPos]=1;arrayMap[xPos][yPos]=-1;}i=1;for( ;i<6;i++){for(int j=1;j<6;j++){if(arrayMap[i][j]==-1){continue;}arrayMap[i][j]=arrayBomb[i][j-1]+arrayBomb[i+1][j+1]+arrayBomb[i+1][j]+arrayBomb[i+1][j-1]+arrayBomb[i][j+1]+arrayBomb[i-1][j-1]+arrayBomb[i-1][j]+arrayBomb[i-1][j+1];}}int isExit=0;int arrayMask[7][7]={0};while(isExit==0){for(int i=1;i<6;i++){ int j=1;for(;j<6;j++){if(arrayMask[i][j]==1){printf("%d\t",arrayMap[i][j]);}else{printf("*\t");}}printf("\n");}int choise=-1;printf("数组数字:1:雷,2:空地,3:退出游戏\n");scanf("%d",&choise);if(choise==3){isExit=1;continue;}int xPos=-1;int yPos=-1;printf("请输入坐标:x,y\n");scanf("%d%d",&xPos,&yPos);if(arrayMap[xPos][yPos]==-1&&choise==2){printf("你中雷了,游戏结束\n");for(int i=0;i<7;i++){for(int j=0;j<7;j++){printf("%3d",arrayMap[i][j]);}printf("\n");}isExit=1;}arrayMask[xPos][yPos]=1;}return 0;}


0 0