欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言實(shí)現(xiàn)三子棋

 更新時(shí)間:2020年04月08日 10:12:01   作者:S.K.Cu  
這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)三子棋,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

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

題目:C語言實(shí)現(xiàn)三子棋

問題分析:首先用到數(shù)組,存儲(chǔ)信息。棋盤的信息和棋子的信息
打印棋盤
讀取棋子的位置
判斷是否連子
打印棋盤
然后重復(fù)

代碼如下:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
//數(shù)組沙盤
char Global_Gobang[10][10];
int Global_line, Global_pow;
int Global_player;
int Global_Count=0;
//初始化棋盤
void Initi_Gobang(){
 for (int i = 0; i < 10; i++){
 for (int j = 0; j < 10; j++){
 Global_Gobang[i][j] = '+';
 }
 }
}
//畫出棋盤
void Draw_Gobang(){
 for (int i = 0; i < 10; i++){
 for (int j = 0; j < 10; j++){
 printf("%c ", Global_Gobang[i][j]);
 }
 printf("\n");
 }
}
//在位置上下棋
void Play_Gobang(int player, int line, int row){
 // int flag= Check_Gobang();

 while (player == 0 || player == 1)
 {
 if (player == 0)
 {
 if (Global_Gobang[line - 1][row - 1] != 'o' && Global_Gobang[line - 1][row - 1] != '@'){
 Global_Gobang[line - 1][row - 1] = 'o';
 break;
 } 
 else
 {
 printf("這個(gè)位置已經(jīng)有棋子,請(qǐng)重新輸入");
 scanf("%d%d", &Global_line, &Global_pow);
 Play_Gobang(Global_player, Global_line, Global_pow);
 break;
 }
 }
 else if (player == 1)
 {
 if (Global_Gobang[line - 1][row - 1] != 'o' && Global_Gobang[line - 1][row - 1] != '@'){
 Global_Gobang[line - 1][row - 1] = '@';
 break;
 } 
 else
 {
 printf("這個(gè)位置已經(jīng)有棋子,請(qǐng)重新輸入");
 scanf("%d%d", &Global_line, &Global_pow);
 Play_Gobang(Global_player, Global_line, Global_pow);
 break;
 }
 }

 }
}
//輸入棋子的位置
void Input_Gobang(){
 if (Global_player == 1){
 printf("請(qǐng)1號(hào)玩家輸入棋子的位置");
 }
 else if (Global_player == 0)
 {
 printf("請(qǐng)2號(hào)玩家輸入棋子的位置");
 }
 scanf("%d %d", &Global_line, &Global_pow);
 system("cls");//刷新界面
}
int Check_Gobang(){
 //i j 為行列的表示,flag為判斷棋盤是否滿了的標(biāo)志,flag=0,代表滿了
 int i, j, flag = 0;
 //判斷行是否成立
 for (i = 0; i < 10; i++)
 for (j = 0; j < 8; j++)
 if (Global_Gobang[i][j]!='+' && Global_Gobang[i][j] == Global_Gobang[i][j + 1] && Global_Gobang[i][j] == Global_Gobang[i][j + 2])
 return 1;
 //判斷列是否成立
 for (i = 0; i < 10; i++)
 for (j = 0; j < 8; j++)
 if (Global_Gobang[i][j] != '+' &&Global_Gobang[j][i] == Global_Gobang[j + 1][i] && Global_Gobang[i][j] == Global_Gobang[j + 2][i])
 return 1;
 //判斷主對(duì)角線是否成立1
 for (i = 0; i < 8; i++)
 for (j = 0; j < 8; j++)
 if (Global_Gobang[i][j] != '+' &&Global_Gobang[j][i] == Global_Gobang[j + 1][i + 1] && Global_Gobang[i][j] == Global_Gobang[j + 2][i + 2])
 return 1;
 //判斷副對(duì)角線是否成立2
 for (i = 2; i < 10; i++)
 for (j = 2; j < 10; j++)
 if (Global_Gobang[i][j] != '+' &&Global_Gobang[j][i] == Global_Gobang[j - 1][i - 1] && Global_Gobang[i][j] == Global_Gobang[j - 2][i - 2])
 return 1;
 for (i = 0; i < 10; i++){
 for (j = 0; j < 10; j++){
 if (Global_Gobang[i][j] == '+')
 flag = 1;
 }
 }
 if (flag == 0)
 return 0;
}
//
int Playing_Gobang(){
 Global_Count++;
 if (Global_Count % 2 == 1)
 Global_player = 1;
 else
 Global_player = 0;
 if (Check_Gobang() == 1){
 if (Global_player == 1){
 printf("玩家2號(hào)贏得勝利,游戲結(jié)束\n");
 return 1;
 }
 else{
 printf("玩家1號(hào)贏得勝利,游戲結(jié)束\n");
 return 1;
 }
 }
 else if (Check_Gobang() == 0)
 {
 printf("棋盤已滿,游戲結(jié)束\n");
 }
 Input_Gobang();
 Play_Gobang(Global_player, Global_line, Global_pow);
 Draw_Gobang();
}

int main(){
 Initi_Gobang();
 Draw_Gobang();
 while (Global_Count<=100)
 if (Playing_Gobang() == 0 || Playing_Gobang() == 1)
 break;
 system("pause");
 return 0;
}

結(jié)果如下:

更多有趣的經(jīng)典小游戲?qū)崿F(xiàn)專題,分享給大家:

C++經(jīng)典小游戲匯總

python經(jīng)典小游戲匯總

python俄羅斯方塊游戲集合

JavaScript經(jīng)典游戲 玩不停

java經(jīng)典小游戲匯總

javascript經(jīng)典小游戲匯總

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

相關(guān)文章

  • C++ push_back()函數(shù)使用詳解

    C++ push_back()函數(shù)使用詳解

    這篇文章主要介紹了C++ push_back()函數(shù)使用詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • 從匯編看c++中extern關(guān)鍵字的使用

    從匯編看c++中extern關(guān)鍵字的使用

    本篇文章介紹了,在c++中extern關(guān)鍵字的使用概述,需要的朋友參考下
    2013-05-05
  • c++??復(fù)制消除問題解決示例詳析

    c++??復(fù)制消除問題解決示例詳析

    這篇文章主要為大家介紹了c++??復(fù)制消除問題解決示例詳析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • 用貪心法求解背包問題的解決方法

    用貪心法求解背包問題的解決方法

    本篇文章是對(duì)用貪心法求解背包問題的解決方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • VC中控制臺(tái)程序創(chuàng)建窗口的實(shí)例方法

    VC中控制臺(tái)程序創(chuàng)建窗口的實(shí)例方法

    在本篇文章里小編給大家分享的是關(guān)于VC中控制臺(tái)程序創(chuàng)建窗口的實(shí)例方法及相關(guān)代碼內(nèi)容,有需要的朋友學(xué)習(xí)下吧。
    2021-12-12
  • C++插入排序算法實(shí)例詳解

    C++插入排序算法實(shí)例詳解

    這篇文章主要為大家詳細(xì)介紹了C++插入排序算法實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • C語言中條件判斷的正確使用姿勢(shì)

    C語言中條件判斷的正確使用姿勢(shì)

    在C語言中,有三種條件判斷結(jié)構(gòu):if語句、if-else語句和switch語句,這篇文章主要來和大家講解一下它們的正確使用姿勢(shì),需要的可以參考一下
    2023-05-05
  • C++中Qt的安裝與配置步驟詳解

    C++中Qt的安裝與配置步驟詳解

    Qt是一種C++編程框架,用于構(gòu)建圖形用戶界面(GUI)應(yīng)用程序和嵌入式系統(tǒng),無論是初學(xué)者還是經(jīng)驗(yàn)豐富的開發(fā)者,Qt都為構(gòu)建高質(zhì)量、可維護(hù)的應(yīng)用程序提供了豐富的工具和支持,本文主要給大家介紹了C++中Qt的安裝與配置步驟,需要的朋友可以參考下
    2023-12-12
  • C++命名空間使用詳細(xì)介紹

    C++命名空間使用詳細(xì)介紹

    考慮一種情況,當(dāng)我們有兩個(gè)同名的人,Zara,在同一個(gè)班里。當(dāng)我們需要對(duì)它們進(jìn)行區(qū)分我們必須使用一些額外的信息和它們的名字,比如它們生活在不同的區(qū)域或者興趣愛好什么的,在C++程序中也會(huì)遇到同樣的情況,所以命名空間就此產(chǎn)生
    2022-09-09
  • 詳解C++編程中數(shù)組的基本用法

    詳解C++編程中數(shù)組的基本用法

    這篇文章主要介紹了C++編程中數(shù)組的基本用法,包括數(shù)組的初始化等基本知識(shí),需要的朋友可以參考下
    2016-01-01

最新評(píng)論