91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用C語言怎么實現掃雷游戲

發布時間:2021-05-27 18:29:36 來源:億速云 閱讀:167 作者:Leah 欄目:編程語言

使用C語言怎么實現掃雷游戲?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

關于掃雷優化

1.核心思想:使用兩個二維數組進行設計,一個用于顯示,一個用于后臺雷的布置。
2.使用宏常量,后期可以任意修改游戲難度。
3.關于掃雷拓展模塊,目前使用的方法比較low,若周圍均沒有,則全部顯示。
4.剩余位置數使用全局變量count,必須考慮拓展之后count變化。

有待改進之處

1.需設計標記雷的步驟,增加用戶體驗。
2.拓展方式有待改進。
3.界面布局仍需要進行優化。

掃雷游戲代碼

#include<stdio.h>
#include<stdlib.h>
#include<Windows.h>
#include<string.h>
#include<time.h>
#define ROW 12
#define COL 12
#define MINE_NUM 15
#define TOTAL 100
#pragma warning(disable:4996)
int count = TOTAL;
void inter(){
 printf("=======================\n");
 printf("=======游戲菜單========\n");
 printf("======1.開始游戲=======\n");
 printf("========2.退出=========\n");
 printf("=======================\n");
 printf("請輸入您的選擇: \n");
}
int GetRandIndex(int start, int end){
 return rand() % (end - start + 1) + start;
}
void layout(char mine[][COL], int row, int col){
 srand((unsigned long)time(NULL));
 int count = 0;
 while (count<MINE_NUM){
 int x = GetRandIndex(1, 10);
 int y = GetRandIndex(1, 10);
 if (mine[x][y] == '0'){
 mine[x][y] = '1';
 count++;
 }
 }
}
 
void Board(char board[][COL], int row, int col){
 printf(" ");
 int i = 1;
 for (; i <= 10; i++)
 {
 printf(" %d ", i);
 }
 printf("\n----");
 for (i = 1; i <= 29; i++)
 {
 printf("-");
 }
 printf("\n");
 for (i = 1; i <= 10; i++)
 {
 printf("%2d|",i);
 int j = 1;
 for (; j <= 10; j++){
 printf(" %c|", board[i][j]);
 }
 printf("\n");
 int k = 1;
 for (k = 1; k <= 11; k++)
 {
 printf("---");
 }
 printf("\n");
 }
 }
 
char GetMines(char mine[][COL],int row,int col){
 return mine[row - 1][col - 1] + mine[row - 1][col] + mine[row - 1][col + 1]\
 + mine[row][col - 1] + mine[row][col + 1]\
 + mine[row + 1][col - 1] + mine[row + 1][col] + mine[row +1][col + 1]-7*'0';
}
void expand(char mine[ROW][COL], char board[ROW][COL], int x, int y){
 if ((x >= 1) && (y >= 1) && (x <= ROW) && (y <= COL))
 {
 if (GetMines(mine, x, y) == '0')
 {
 if (x > 1 && x < 10 && y>1 && y < 10)
 {
 count = count - 8;
 }
 else if((x==1&&y==1)||(x==10&&y==10) || (x == 1 && y == 10) || (x == 10 && y == 1)) {
 count -= 3;
 }
 else {
 count -= 5;
 }
 board[x - 1][y - 1] = GetMines(mine, x-1, y-1);
 board[x - 1][y] = GetMines(mine, x - 1, y);
 board[x - 1][y + 1] = GetMines(mine, x - 1, y + 1);
 board[x][y - 1] = GetMines(mine, x , y - 1);
 board[x][y + 1] = GetMines(mine, x , y + 1);
 board[x + 1][y - 1] = GetMines(mine, x + 1, y - 1);
 board[x + 1][y] = GetMines(mine, x + 1, y);
 board[x + 1][y + 1] = GetMines(mine, x + 1, y + 1);
 }
 }
}
void Game(){
 char mine[ROW][COL]; 
 char board[ROW][COL];  
 memset(mine,'0',sizeof(mine));
 memset(board, '*', sizeof(board));
 layout(mine, ROW, COL);
 Board(mine, ROW, COL);
 int x = 0;
 int y = 0;
 while (1){
 int i = 0;
 Board(board, ROW, COL);
 printf("請選擇您要排除的位置: ");
 scanf("%d %d", &x, &y);
 if (x >= 1 && x <= ROW - 2 && y >= 1 && y <= COL - 2){
 if (mine[x][y] == '0'){
 char num = GetMines(mine,x,y);
 board[x][y] = num;
 expand(mine, board, x, y);
 Board(board, ROW, COL);
 count--;
 if (count == MINE_NUM)
 {
 Board(board, ROW, COL);
 printf("你贏了!\n");
 break;
 }
 }
 else{
 printf("您輸了!\n");
 Board(mine, ROW, COL);
 break;
 }
 printf("還有%d個位置 \n", count);
 }
 else{
 printf("你輸入的坐標有誤,請重新輸入!\n");
 }
 }
}
int main(){
 int quit = 0;
 int select = 0;
 while (!quit){
 inter();
 scanf("%d", &select);
 switch (select)
 {
 case 1:
 Game();
 Sleep(5000);
 system("cls");
 break;
 case 2:
 printf("再見!\n");
 quit = 1;
 break;
 default:
 printf("您的輸入不正確,請重新輸入!\n");
 break;
 }
 }
 system("pause");
 return 0;
}

相關運行樣例

使用C語言怎么實現掃雷游戲

使用C語言怎么實現掃雷游戲

使用C語言怎么實現掃雷游戲

看完上述內容,你們掌握使用C語言怎么實現掃雷游戲的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

麻栗坡县| 阿荣旗| 太原市| 安陆市| 安西县| 海晏县| 永德县| 沐川县| 洛浦县| 宝丰县| 盘锦市| 本溪| 西华县| 宁海县| 和林格尔县| 抚顺县| 罗平县| 普兰店市| 永善县| 邯郸市| 南江县| 沙河市| 丹巴县| 黔南| 丰台区| 垣曲县| 栖霞市| 巴青县| 贵德县| 礼泉县| 晋中市| 阜城县| 龙陵县| 瑞丽市| 龙门县| 桑植县| 南丰县| 张家港市| 嵊州市| 岑巩县| 蓬莱市|