#include <conio.h>
#include <iostream.h>
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#define randomize() srand((unsigned) (time(NULL)))
#define random(x) (rand() %(x))
int Array[25],a,b; // 5x5 矩陣
void Check(int r, int c) // 檢查地雷
{
if (r>=0 && r<5 && c>=0 && c<5 && Array[5*r+c] != -1)
Array[5*r+c]++;
}
int main(int argc, char* argv[])
{
for(a=1;a<=25;a++){//印出1~25
printf("%3d",a);
if(a%5==0){
printf("\n");
}
}
for (int i=0; i<25; i++) // 初始化
Array[i] = 0;
srand((unsigned int)time(NULL));
for (i=0; i<3; i++) // 產生地雷
{
int s;
do
{
s = rand() * 25 / RAND_MAX;
} while (Array[s] == -1); // 重覆則繼續產生
Array[s] = -1; // 標示地雷
int r = s / 5;
int c = s % 5;
Check(r-1,c-1);
Check(r-1,c);
Check(r-1,c+1);
Check(r,c-1);
Check(r,c+1);
Check(r+1,c-1);
Check(r+1,c);
Check(r+1,c+1);
}
printf("請輸入1~25任一數字");
scanf("%d",&Array[25]);
for (int r=0; r<5; r++)//搜尋地雷
{
for (int c=0; c<5; c++)
{
int i = 5*r+c;
switch (Array[i])
{
printf("@ ");
break;
case -1:
printf("* ");
break;
default:
printf("%d ", Array[i]);
break;
}
}
printf("\n");
}
system("pause");
return 0;
}
以上是我用visualc++寫的
大致上都ok
但如果輸入數字後 就顯示全部 我想把他變成輸入數字後
就搜尋數字週圍八格的數字然後顯示週圍八個位址的資料 請問要如何寫呢?
[此贴子已经被作者于2005-12-31 13:16:09编辑过]