亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C語言實現(xiàn)三子棋小游戲(vs2013多文件)

 更新時間:2021年09月10日 15:27:03   作者:m0_53146328  
這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)三子棋小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文通過實例為大家分享了C語言實現(xiàn)三子棋小游戲的具體代碼,供大家參考,具體內(nèi)容如下

基本思路:

1.創(chuàng)建一個游戲選擇面板.

2.創(chuàng)建并初始化棋盤。

3.玩家落子并判定,電腦落子并判定。

4.判定結(jié)果 ,游戲結(jié)束!

代碼如下:

頭文件:

#pragma once
#include<stdio.h>
#include<windows.h>
#include<stdlib.h>
#include <time.h>
#pragma warning(disable:4996) 
 
extern void Game();//游戲代碼需要定義調(diào)用的函數(shù)
 
#define ROW 3//FOW、FOL代表三子棋邊界的長和寬
#define COL 3 
#define INIT  ' ' //INIT為空格的宏定義
#define WHITE 'X' //X在三字棋代表Player
#define BLACK 'O' //O在三字棋代表Computer
#define DRAW  'D' //DRAW代表平局
#define NEXT  'N' //NEXT代表繼續(xù) //MineClearence

各類函數(shù):

void InitBoard(char board[][COL], int row, int col)//棋盤初始化
{ 
 for (int i = 0; i < row; i++){  
  for (int j = 0; j < col; j++){   
   board[i][j] = INIT;  
  } 
 }
}
static void ShowBoard(char board[][COL], int row, int col)//顯示棋盤
{ 
 system("cls"); 
 printf(" "); 
 for (int i = 0; i < col; i++){  
  printf("%4d", i + 1); 
 } 
 printf("\n--------------\n"); 
 for (int i = 0; i < row; i++){  
  printf("%-2d", i + 1); //2  
  for (int j = 0; j < col; j++){   
   printf("| %c ", board[i][j]);   
  }  
  printf("\n--------------\n"); 
 }
}
static char IsEnd(char board[][COL], int row, int col)//最終結(jié)果
{ 
 for (int i = 0; i < row; i++){  
  if (board[i][0] == board[i][1] &&   
   board[i][1] == board[i][2] &&   
   board[i][0] != INIT){   
   return board[i][0];  
  } 
 }  
 for (int j = 0; j < COL; j++){  
  if (board[0][j] == board[1][j] &&   
   board[1][j] == board[2][j] &&   
   board[0][j] != INIT){   
   return board[0][j];  
  } 
 } 
 if (board[0][0] == board[1][1] &&  
  board[1][1] == board[2][2] &&  
  board[1][1] != INIT){  
  return board[1][1]; } 
 if (board[0][2] == board[1][1] &&  
  board[1][1] == board[2][0] &&  
  board[1][1] != INIT){  
  return board[1][1]; } 
 for (int i = 0; i < row; i++){  
  for (int j = 0; j < col; j++){   
   if (board[i][j] == INIT){    
    return NEXT;   
   }  
  } 
 } 
 return DRAW;
}
static void PlayerMove(char board[][COL], int row, int col)//玩家
{ int x = 0; int y = 0; 
 while (1){  
 printf("Please Enter Postion<x,y># ");  
 scanf("%d %d", &x, &y);  
 if (x < 1 || y < 1 || x > 3 || y > 3){   
  printf("Enter Postion Error!\n");   
  continue;  
 }  
 if (board[x - 1][y - 1] == INIT){   
  board[x - 1][y - 1] = WHITE;   
  break; 
 }  
 else{   
  printf("Postion Is Not Empty!\n");  
 } 
 }
}
static void ComputerMove(char board[][COL], int row, int col)//電腦
{ 
 while (1){  
  int x = rand() % row;  
  int y = rand() % col;  
  if (board[x][y] == INIT){   
   board[x][y] = BLACK;   
   break;  
  } 
 }
} 
void Game()
{ 
 char board[ROW][COL]; 
 InitBoard(board, ROW, COL); 
 srand((unsigned long)time(NULL)); 
 char result = 0; 
 while (1){  
  ShowBoard(board, ROW,COL);  
  PlayerMove(board, ROW,COL); 
  result = IsEnd(board, ROW, COL); 
  if (result != NEXT){  
   break;  
  }  
  ShowBoard(board, ROW, COL);  
  ComputerMove(board,ROW, COL);  
  result = IsEnd(board, ROW,COL); 
  if (result != NEXT){  
   break; 
  }
 }
  ShowBoard(board, ROW,COL);
  switch (result){ 
  case WHITE:  
   printf("You Win!\n"); 
   break; 
  case BLACK:  
   printf("You Lose!\n"); 
   break; 
  case DRAW:  
    printf("You == Computer!\n"); 
    break; 
  default: 
     printf("BUG!\n");  
     break; 
  }
} 

游戲選擇面板(主函數(shù)) 

#include "game.h"
static void Menu()
{
 printf("|-------------  開始游戲 -------------|\n");
 printf("+-------------  1. Play  -------------+\n");
 printf("+-------------  0. Exit  -------------+\n");
}
 
int main()
{
 int select = 0;
 int quit = 0;
 while (!quit){
 Menu();
 printf("Please Select#");
 scanf("%d",&select);
 
 switch (select){
 case 1:
  Game();
  break;
 case 0:
  quit = 1;
  break;
 default:
  printf("Enter Error, Try Again!\n");
  break;
  }
 
 }
 printf("bye!\n");
 system("pause");
 return 0;
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C語言實現(xiàn)三子棋小游戲詳解

    C語言實現(xiàn)三子棋小游戲詳解

    這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)三子棋小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • C語言內(nèi)存泄漏常見情況及解決方案詳解

    C語言內(nèi)存泄漏常見情況及解決方案詳解

    這篇文章主要為大家介紹了C語言內(nèi)存泄漏常見情況及解決方案詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • C++單例模式的懶漢模式和餓漢模式詳解

    C++單例模式的懶漢模式和餓漢模式詳解

    這篇文章主要為大家詳細(xì)介紹了C++懶漢模式和餓漢模式,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • C語言代碼實現(xiàn)簡易三子棋游戲

    C語言代碼實現(xiàn)簡易三子棋游戲

    這篇文章主要為大家詳細(xì)介紹了C語言代碼實現(xiàn)簡易三子棋游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • C++中using的三種用法舉例詳解

    C++中using的三種用法舉例詳解

    最近在使用中,發(fā)現(xiàn)了一種以前沒學(xué)過的using用法,于是在這里,將using的幾種用法總結(jié)一下,下面這篇文章主要給大家介紹了關(guān)于C++中using的三種用法,需要的朋友可以參考下
    2023-02-02
  • C++虛函數(shù)及虛函數(shù)表簡析

    C++虛函數(shù)及虛函數(shù)表簡析

    這篇文章主要介紹了C++虛函數(shù)及虛函數(shù)表,內(nèi)容非常詳細(xì),思路清晰,需要的朋友可以參考下
    2015-08-08
  • 在C++?Qt中實現(xiàn)異步散列器的代碼示例

    在C++?Qt中實現(xiàn)異步散列器的代碼示例

    在很多工作中,我們需要計算數(shù)據(jù)或者文件的散列值,例如登錄或下載文件,而在?Qt?中,負(fù)責(zé)這項工作的類為?QCryptographicHash,本文給大家介紹了在C++?Qt中實現(xiàn)異步散列器的代碼示例,需要的朋友可以參考下
    2024-09-09
  • C語言中怎么在main函數(shù)開始前執(zhí)行函數(shù)

    C語言中怎么在main函數(shù)開始前執(zhí)行函數(shù)

    C語言中怎么在main函數(shù)開始前執(zhí)行函數(shù)呢?下面小編就大家詳細(xì)的介紹一下。需要的朋友可以過來參考下,希望對大家有所幫助
    2013-10-10
  • C++實現(xiàn)LeetCode(18.四數(shù)之和)

    C++實現(xiàn)LeetCode(18.四數(shù)之和)

    這篇文章主要介紹了C++實現(xiàn)LeetCode(18.四數(shù)之和),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C++實現(xiàn)哈夫曼樹的方法

    C++實現(xiàn)哈夫曼樹的方法

    這篇文章主要為大家詳細(xì)介紹了C++實現(xiàn)哈夫曼樹的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04

最新評論