C语言实现扫雷游戏
2017-10-06 00:08
696 查看
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<windows.h>
char map[10][10]={
{'k','1','2','3','4','5','6','7','8','9'},
{'1','n','o','p','o','n','n','n','n','n'},
{'2','n','o','o','o','n','o','o','o','n'},
{'3','n','n','n','o','o','T','p','o','n'},
{'4','n','o','o','T','p','T','o','o','n'},
{'5','n','o','p','T','o','o','n','o','o'},
{'6','n','o','o','o','n','o','T','e','p'},
{'7','n','n','n','n','n','o','p','p','T'},
{'8','o','o','o','o','o','T','T','e','T'},
{'9','o','p','o','o','p','o','n','o','p'}
};
//初始化地图
void Initmap()
{
for(int i=0;i<10;i++)
{
for(int j=0;j<10;j++)
{
switch(map[i][j])
{
case 'p':printf("■");break;
case 'n':printf("■");break;
case 'o':printf("■");break;
case 'T':printf("■");break;
case 'e':printf("■");break;
default: printf("%c ",map[i][j]);
}
if(j==9) printf("\n");
}
}
}
//画地图
void drawmap()
{
for(int i=0;i<10;i++)
{
for(int j=0;j<10;j++)
{
switch(map[i][j])
{
case 'j':printf(" ");break;
case 'r':printf("1 ");break;
case 's':printf("2 ");break;
case 'q':printf("3 ");break;
case 'p':printf("■");break;
case 'n':printf("■");break;
case 'o':printf("■");break;
case 'T':printf("■");break;
case 'e':printf("■");break;
default:printf("%c ",map[i][j]);break;
}
if(j==9) printf("\n");
}
}
}
//游戏判断
void judge(int m,int n)
{
switch(map[m]
)
{
case 'n':map[m]
='j';break;
case 'o':map[m]
='r';break;
case 'T':map[m]
='s';break;
case 'e':map[m]
='q';break;
}
}
//打印游戏失败界面
void lostgame()
{
puts("k 1 2 3 4 5 6 7 8 9");
puts("1 □□□□□□□□□");
puts("2 □□□□□□□□□");
puts("3 □□□□□□□□□");
puts("4 □□□□□□□□□");
puts("5 □□Game Over!□□");
puts("6 □□□□□□□□□");
puts("7 □□□□□□□□□");
puts("8 □□□□□□□□□");
puts("9 □□□□□□□□□");
}
//玩游戏
void main()
{
system("title 扫雷游戏V-1.0");//设置标题
system("mode con cols=32 lines=18");
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
system("color 18");
char a,b;
int m,n;
Initmap();
while(1)
{
a=getch();
b=getch();
m=(int)(a-'0');
n=(int)(b-'0');
system("CLS");
if(map[m]
=='p') {lostgame();break;}
judge(m,n);
drawmap();
}
getche();
}
#include<conio.h>
#include<stdlib.h>
#include<windows.h>
char map[10][10]={
{'k','1','2','3','4','5','6','7','8','9'},
{'1','n','o','p','o','n','n','n','n','n'},
{'2','n','o','o','o','n','o','o','o','n'},
{'3','n','n','n','o','o','T','p','o','n'},
{'4','n','o','o','T','p','T','o','o','n'},
{'5','n','o','p','T','o','o','n','o','o'},
{'6','n','o','o','o','n','o','T','e','p'},
{'7','n','n','n','n','n','o','p','p','T'},
{'8','o','o','o','o','o','T','T','e','T'},
{'9','o','p','o','o','p','o','n','o','p'}
};
//初始化地图
void Initmap()
{
for(int i=0;i<10;i++)
{
for(int j=0;j<10;j++)
{
switch(map[i][j])
{
case 'p':printf("■");break;
case 'n':printf("■");break;
case 'o':printf("■");break;
case 'T':printf("■");break;
case 'e':printf("■");break;
default: printf("%c ",map[i][j]);
}
if(j==9) printf("\n");
}
}
}
//画地图
void drawmap()
{
for(int i=0;i<10;i++)
{
for(int j=0;j<10;j++)
{
switch(map[i][j])
{
case 'j':printf(" ");break;
case 'r':printf("1 ");break;
case 's':printf("2 ");break;
case 'q':printf("3 ");break;
case 'p':printf("■");break;
case 'n':printf("■");break;
case 'o':printf("■");break;
case 'T':printf("■");break;
case 'e':printf("■");break;
default:printf("%c ",map[i][j]);break;
}
if(j==9) printf("\n");
}
}
}
//游戏判断
void judge(int m,int n)
{
switch(map[m]
)
{
case 'n':map[m]
='j';break;
case 'o':map[m]
='r';break;
case 'T':map[m]
='s';break;
case 'e':map[m]
='q';break;
}
}
//打印游戏失败界面
void lostgame()
{
puts("k 1 2 3 4 5 6 7 8 9");
puts("1 □□□□□□□□□");
puts("2 □□□□□□□□□");
puts("3 □□□□□□□□□");
puts("4 □□□□□□□□□");
puts("5 □□Game Over!□□");
puts("6 □□□□□□□□□");
puts("7 □□□□□□□□□");
puts("8 □□□□□□□□□");
puts("9 □□□□□□□□□");
}
//玩游戏
void main()
{
system("title 扫雷游戏V-1.0");//设置标题
system("mode con cols=32 lines=18");
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
system("color 18");
char a,b;
int m,n;
Initmap();
while(1)
{
a=getch();
b=getch();
m=(int)(a-'0');
n=(int)(b-'0');
system("CLS");
if(map[m]
=='p') {lostgame();break;}
judge(m,n);
drawmap();
}
getche();
}