用C语言做扫雷游戏结果出现了这个,为什么全变成-1了呢。。。。。
//扫雷.cpp:定义控制台应用程序的入口点。//#include"stdafx.h"#include<stdlib.h>#include<time.h>int_tmai...
// 扫雷.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <stdlib.h>#include <time.h>int _tmain(int argc, _TCHAR* argv[]){ srand(time(0)); int bombnumber = rand()%5+1; int bombarray[5][2] = {0}; for(int i=0;i< bombnumber;i++) { int Xpos = rand()%5 + 1; int Ypos = rand()%5 + 1; for(int j=0; j < bombnumber; j++) { if(Xpos == bombarray[j][0]&& Ypos == bombarray[j][1] ) { i--; continue; } else { bombarray[j][0]=Xpos; bombarray[j][1]=Ypos; } } } //地图数组 int Mappos[7][7] = {0}; //雷的布局数组 int bombpos[7][7] = {0}; for(int i=0;i<bombnumber;i++) { int Xpos=bombarray[i][0]; int Ypos=bombarray[i][1]; Mappos[Xpos][Ypos]=-1; bombpos[Xpos][Ypos]=1; } for(int i=1;i<=5;i++) { for(int j=1;j<=5;j++) { if(Mappos[i][j]=-1) { continue; } Mappos[i][j] = bombpos[i-1][j-1]+ bombpos[i-1][j]+ bombpos[i-1][j+1]+ bombpos[i][j-11]+ bombpos[i][j+1]+ bombpos[i+1][j-1]+ bombpos[i+1][j]+ bombpos[i+1][j+1]; } } int Mapmask[7][7]={0};A: for(int i=1;i<=5;i++) { for(int j=1;j<=5;j++) { if(Mapmask[i][j]==1) { printf("%d ",Mappos[i][j]); } else { printf("* "); } } printf("\n"); } int x,y; printf("请输入你认为不是雷的坐标: "); scanf("%d %d",&x,&y); Mapmask[x][y]=1; if(Mappos[x][y]==-1) { printf("你踩到雷了\n"); for(int i=1;i<=5;i++) { for(int j=1;j<=5;j++) { printf("%d ",Mappos[i][j]); } printf("\n"); } printf("\n"); goto B; } else goto A;B: return 0;}
展开
2016-06-07
展开全部
你好!你在赋值的时候,就是 -1 ,所以显示 -1
更多追问追答
追问
int Mappos[7][7] = {0};
int bombpos[7][7] = {0};
for(int i=0;i<bombnumber;i++)
{
int Xpos=bombarray[i][0];
int Ypos=bombarray[i][1];
Mappos[Xpos][Ypos]=-1;
bombpos[Xpos][Ypos]=1;
赋值是这一段啊,但是为什么会全是-1呢
追答
Mappos[Xpos][Ypos]=-1;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询