網(wǎng)絡(luò)平臺怎么建立網(wǎng)站嗎寧波優(yōu)化網(wǎng)站排名軟件
我們先設(shè)計一個簡單的9*9棋盤并有10個雷的掃雷游戲。
1,可以用數(shù)組存放,如果有雷就用1表示,沒雷就用0表示。
?
2,排查(2,5)這個坐標時,我們訪問周圍的?圈8個位置黃色統(tǒng)計周圍雷的個數(shù)是1。排查(8,6)這個坐標時,就會越界。只需要擴大一圈數(shù)組即可。
一,游戲菜單的打印
利用函數(shù)與do while的知識
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
void menu()
{
?? ?printf("***********************\n");
?? ?printf("***** 1. play *********\n");
?? ?printf("***** 0. exit **********\n");
?? ?printf("***********************\n");
}
int main()
{
?? ?int input = 0;
?? ?do
?? ?{
?? ??? ?menu();
?? ??? ?printf("請選擇:>");
?? ??? ?scanf("%d", &input);
?? ??? ?switch (input)
?? ??? ?{
?? ??? ?case 1:
?? ??? ??? ?printf("開始\n");
?? ??? ??? ?break;
?? ??? ?case 0:
?? ??? ??? ?printf("退出游戲\n");
?? ??? ??? ?break;
?? ??? ?default:
?? ??? ??? ?printf("選擇錯誤,重新選擇\n");
?? ??? ??? ?break;
?? ??? ?}
?? ?} while (input);
?? ?return 0;
}
二,正片開始
1,棋盤

a.雷的信息用char mine[11][11];來表示,1表示雷,0表示非雷。
b.排查出的雷的信息用char show[11][11];來表示,初始化為*。
void game()
{
?? ?char mine[11][11];
?? ?char show[11][11];
}
如果是其他行數(shù)的話,例如15或者20,改起來就比較麻煩了,這時候就需要優(yōu)化一下代碼。
在game.h文件中聲明:
#define ROW 9
#define COL 9#define ROWS ROW+2
#define COLS COL+2
然后修改原來代碼:
void game()
{
?? ?char mine[ROWS][COLS];
?? ?char show[ROWS]COLS];
}
2,初始化棋盤
game.h
void InitBoard(char arr[ROWS][COLS], int rows,int cols,\char set);
game.c
void InitBoard(char arr[ROWS][COLS], int rows, int cols,char set)
{
?? ?int i = 0;
?? ??? ?for (i = 0; i <= ROWS; i++)
?? ??? ?{
?? ??? ??? ?int j = 0;
?? ??? ??? ?for (j = 0; j <= COLS; j++)
?? ??? ??? ?{
?? ??? ??? ??? ?arr[i][j] = "set";
?? ??? ??? ?}
?? ??? ?}
}
test.c
void game()
{
?? ?char mine[ROWS][COLS];
?? ?char show[ROWS][COLS];?? ?Initboard(mine, ROWS,COLS, "0");
?? ?Initboard(show, ROWS,COLS, "*");
}
3,打印棋盤
game.h
void Displayboard(char arr[ROWS][COLS], int row, int col);
game.c
int i = 0;
for (i = 0; i <= ROW; i++)
{
?? ?printf("%d", i);
}
printf("\n");
void Displayboard(char arr[ROWS][COLS], int row, int col)
{
?? ?int i = 0;
?? ?for (i = 1; i <= row; i++)
?? ?{
?? ??? ?int j = 0;
?? ??? ?printf("%d", i);
?? ??? ?for (j = 1; j <= col; j++)
?? ??? ?{
?? ??? ??? ?printf("%c", arr[i][j]);
?? ??? ?}
?? ??? ?printf("\n");
?? ?}
test.c
Displayboard(show, ROW, COL);
Displayboard(mine, ROW, COL);
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?