C言語開発による掃海ゲームの実現
本論文の実例はC言語による掃海ゲームの具体的なコードを共有しています。参考にしてください。具体的な内容は以下の通りです。
簡単な説明:
スキャンする場所を入力します。
雷ならゲームは失敗です。
雷ではない位置を全部掃除したら、ゲームが勝利します。
主な詳細
1、初期化(プレーヤーの地雷除去図、地雷配置図)
展示された地図(プレイヤーが見られる地図)showMap
もっと面白い経典ミニゲームはテーマを実現して、みんなに共有します。
C++クラシックミニゲームまとめ
pythonクラシックミニゲームまとめ
pythonテトリスゲーム集合
JavaScript経典ゲームは遊んで止まらないです。
java経典の小さいゲームのまとめ
javascript経典ミニゲームのまとめ
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。
簡単な説明:
スキャンする場所を入力します。
雷ならゲームは失敗です。
雷ではない位置を全部掃除したら、ゲームが勝利します。
主な詳細
1、初期化(プレーヤーの地雷除去図、地雷配置図)
展示された地図(プレイヤーが見られる地図)showMap
for (int row = 0; row < ROW; row++){
for (int col = 0; col < COL; col++){
showMap[row][col] = '*';
}
}
地雷のレイアウトマップ(プレイヤーには見えない地図)mineMap
for (int row = 0; row < ROW; row++){
for (int col = 0; col < COL; col++){
mineMap[row][col] = '*';
}
}
int count = 0;
while (count<MINECOUNT){
int row = rand() % 9;
int col = rand() % 9;
mineMap[row][col] = 'L';
count++;
}
}
3、地図を印刷する
void print(char Map[ROW][COL]){
printf(" |0|1|2|3|4|5|6|7|8|
");
for (int row = 0; row < ROW; row++){
printf("%d |", row);
for (int col = 0; col < COL; col++){
printf("%c ", Map[row][col]);
}
printf("
");
}
}
5、プレーヤーはスキャンする位置情報を入力します。(9*9格子の中の特定の位置)
void Input(char showMap[ROW][COL], char mineMap[ROW][COL], int* row, int* col){
while (1){
printf(" :");
scanf("%d %d", row, col);
if (((*row) < 0) || ((*row) >= ROW)
|| ((*col) < 0) || ((*col) >= COL)){
printf(" ");
continue;
}
if (showMap[*row][*col] == '*'){
showMap[*row][*col] = ' ';
break;
}
}
}
7、ある位置が地雷であるかどうかを判断する
// 1 ; 0
int isMine(char mineMap[ROW][COL], int row, int col){
if (mineMap[row][col] == 'L'){
return 1;
}
return 0;
}
9、ある位置の近くの地雷の個数
int MineNerborhood(char mineMap[ROW][COL], int row, int col){
if (row < 0 || row >= ROW
|| col < 0 || col >= COL){
return '0';
}
int count = 0;
for (int r = row - 1; r <= row + 1; r++){
for (int c = col - 1; c <= col + 1; c++){
if (mineMap[r][c] == 'L'){
count++;
}
}
}
return count + '0';
}
ソースコード:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define ROW 9
#define COL 9
#define MINECOUNT 10
void Input(char showMap[ROW][COL], char mineMap[ROW][COL], int* row, int* col){
while (1){
printf(" :");
scanf("%d %d", row, col);
if (((*row) < 0) || ((*row) >= ROW)
|| ((*col) < 0) || ((*col) >= COL)){
printf(" ");
continue;
}
if (showMap[*row][*col] == '*'){
showMap[*row][*col] = ' ';
break;
}
}
}
// 1 ; 0
int isMine(char mineMap[ROW][COL], int row, int col){
if (mineMap[row][col] == 'L'){
return 1;
}
return 0;
}
//
void init(char showMap[ROW][COL], char mineMap[ROW][COL]){
for (int row = 0; row < ROW; row++){
for (int col = 0; col < COL; col++){
showMap[row][col] = '*';
}
}
for (int row = 0; row < ROW; row++){
for (int col = 0; col < COL; col++){
mineMap[row][col] = '*';
}
}
int count = 0;
while (count<MINECOUNT){
int row = rand() % 9;
int col = rand() % 9;
mineMap[row][col] = 'L';
count++;
}
}
void print(char Map[ROW][COL]){
printf(" |0|1|2|3|4|5|6|7|8|
");
for (int row = 0; row < ROW; row++){
printf("%d |", row);
for (int col = 0; col < COL; col++){
printf("%c ", Map[row][col]);
}
printf("
");
}
}
//(row,col)
int MineNerborhood(char mineMap[ROW][COL], int row, int col){
if (row < 0 || row >= ROW
|| col < 0 || col >= COL){
return '0';
}
int count = 0;
for (int r = row - 1; r <= row + 1; r++){
for (int c = col - 1; c <= col + 1; c++){
if (mineMap[r][c] == 'L'){
count++;
}
}
}
return count + '0';
}
//
void game(){
srand(time(0));
//
char showMap[ROW][COL];
//
char mineMap[ROW][COL];
//
init(showMap, mineMap);
//print(mineMap);
//
int notMineCount = 0;
printf(" !
");
while (1){
//
print(showMap);
//
int row, col;
Input(showMap, mineMap, &row, &col);
//
if (isMine(mineMap, row, col) == 1){
printf(" , !
");
print(mineMap);
break;
}
//
showMap[row][col]=MineNerborhood(mineMap, row, col);
notMineCount++;
//
if (notMineCount == ROW*COL - MINECOUNT){
print(mineMap);
printf(" !
");
break;
}
}
}
int menu(){
printf("===================
");
printf("1.
");
printf("0.
");
printf("===================
");
printf(" :");
int choice;
scanf("%d", &choice);
return choice;
}
int main(){
while (1){
int choice = menu();
if (choice == 1){
game();
}else if (choice==0){
break;
}else{
printf(" ,
");
}
}
system("pause");
return 0;
}
実行結果:もっと面白い経典ミニゲームはテーマを実現して、みんなに共有します。
C++クラシックミニゲームまとめ
pythonクラシックミニゲームまとめ
pythonテトリスゲーム集合
JavaScript経典ゲームは遊んで止まらないです。
java経典の小さいゲームのまとめ
javascript経典ミニゲームのまとめ
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。