精华内容
下载资源
问答
  • 本文实例为大家分享了C语言编写五子棋游戏的具体代码,供大家参考,具体内容如下一、构建棋盘首先可以用一个二维数组来构建棋盘,下标表示位置,内容表示黑子白子或者空位。当数组内容为1时,该位置为白字,当数组为...

    本文实例为大家分享了C语言编写五子棋游戏的具体代码,供大家参考,具体内容如下

    一、构建棋盘

    首先可以用一个二维数组来构建棋盘,下标表示位置,内容表示黑子白子或者空位。当数组内容为1时,该位置为白字,当数组为0时,该位置为白子,空位输出+

    int w[11][11], flag = 0;

    int a, b;

    for (int k = 0; k < 11; k++)

    printf("第%d列\t", k);

    printf("\n");

    for (int i = 0; i < 11; i++) {

    for (int j = 0; j < 11; j++) {

    if (w[i][j] == 0) printf("黑\t");

    else if (w[i][j] == 1) printf("白\t");

    else printf("+\t");

    }

    printf("第%d行\n\n", i);

    }

    二、判断位置超范围与错误输入

    当输入的棋子坐标超出范围或者该位置已经存在棋子,则再次输入棋子坐标。其中flag作为标志作为判别黑手白手的标志。

    if (flag == 0) {

    printf("黑色下棋\n");

    scanf("%d %d", &a, &b);

    while (a < 0 || a>10 || b < 0 || b>10) {

    printf("此位置超出范围,请重新输入:");

    scanf("%d %d", &a, &b);

    }

    while (w[a][b] == 0 || w[a][b] == 1)

    {

    printf("此位置已有棋子,请重新输入:");

    scanf("%d %d", &a, &b);

    }

    flag = 1;

    w[a][b] = 0;

    }

    else {

    printf("白色下棋\n");

    scanf("%d %d", &a, &b);

    while (a < 0 || a>10 || b < 0 || b>10) {

    printf("此位置超出范围,请重新输入:");

    scanf("%d %d", &a, &b);

    }

    while (w[a][b] == 0 || w[a][b] == 1)

    {

    printf("此位置已有棋子,请重新输入:");

    scanf("%d %d", &a, &b);

    }

    三、判断胜负

    在五子棋中,出现五个棋子排成一排或者一列或者斜排即可判为胜出。每当落下一个棋子,对该棋子前后上下斜排五个棋子进行判别,超过五个连续的一样颜色的棋子则胜出。

    int A = 1, B = 1, jieguo = 0, C = 1, D = 1;

    int x = 1, y = 1, m = 1, n = 1;

    if (w[a][b] == 1) {

    for (int i = 1; i < 5; i++) {

    if (w[a][b + i] == 1) A++;

    else break;

    }

    for (int i = 1; i < 5; i++) {

    if (w[a][b - i] == 1) A++;

    else break;

    }

    for (int i = 1; i < 5; i++)

    {

    if (w[a+i][b] == 1) C++;

    else break;

    }

    for (int i = 1; i < 5; i++)

    {

    if (w[a - i][b] == 1) C++;

    else break;

    }

    if (A > 4 || C > 4) jieguo = 1;//白棋胜利标志

    else {

    for (int i = 1; i < 5; i++) {

    if (w[a+i][b + i] == 1) x++;

    else break;

    }

    for (int i = 1; i < 5; i++) {

    if (w[a-i][b - i] == 1) x++;

    else break;

    }

    for (int i = 1; i < 5; i++)

    {

    if (w[a + i][b-i] == 1) y++;

    else break;

    }

    for (int i = 1; i < 5; i++)

    {

    if (w[a - i][b+i] == 1) y++;

    else break;

    }

    if (x > 4 || y > 4) jieguo = 1;

    }

    }

    if (w[a][b] == 0) {

    for (int i = 1; i < 5; i++) {

    if (w[a][b + i] == 0) B++;

    else break;

    }

    for (int i = 1; i < 5; i++) {

    if (w[a][b - i] == 0) B++;

    else break;

    }

    for (int i = 1; i < 5; i++)

    {

    if (w[a + i][b] == 0) D++;

    else break;

    }

    for (int i = 1; i < 5; i++)

    {

    if (w[a - i][b] == 0) D++;

    else break;

    }

    if (B > 4 || D > 4) jieguo = 2;//黑棋胜利标志

    else {

    for (int i = 1; i < 5; i++) {

    if (w[a + i][b + i] == 0) m++;

    else break;

    }

    for (int i = 1; i < 5; i++) {

    if (w[a - i][b - i] == 0) m++;

    else break;

    }

    for (int i = 1; i < 5; i++)

    {

    if (w[a + i][b - i] == 0) n++;

    else break;

    }

    for (int i = 1; i < 5; i++)

    {

    if (w[a - i][b + i] == 0) n++;

    else break;

    }

    if (m > 4 || n > 4) jieguo = 2;

    }

    }

    程序完成

    四、演示结果

    624daa42b6bf40e65affff75a91a1b63.png

    五、源代码

    int main() {

    int w[11][11], flag = 0;

    int a, b;

    while (1) {

    if (flag == 0) {

    printf("黑色下棋\n");

    scanf("%d %d", &a, &b);

    while (a < 0 || a>10 || b < 0 || b>10) {

    printf("此位置超出范围,请重新输入:");

    scanf("%d %d", &a, &b);

    }

    while (w[a][b] == 0 || w[a][b] == 1)

    {

    printf("此位置已有棋子,请重新输入:");

    scanf("%d %d", &a, &b);

    }

    flag = 1;

    w[a][b] = 0;

    }

    else {

    printf("白色下棋\n");

    scanf("%d %d", &a, &b);

    while (a < 0 || a>10 || b < 0 || b>10) {

    printf("此位置超出范围,请重新输入:");

    scanf("%d %d", &a, &b);

    }

    while (w[a][b] == 0 || w[a][b] == 1)

    {

    printf("此位置已有棋子,请重新输入:");

    scanf("%d %d", &a, &b);

    }

    flag = 0;

    w[a][b] = 1;

    }

    int A = 1, B = 1, jieguo = 0, C = 1, D = 1;

    int x = 1, y = 1, m = 1, n = 1;

    if (w[a][b] == 1) {

    for (int i = 1; i < 5; i++) {

    if (w[a][b + i] == 1) A++;

    else break;

    }

    for (int i = 1; i < 5; i++) {

    if (w[a][b - i] == 1) A++;

    else break;

    }

    for (int i = 1; i < 5; i++)

    {

    if (w[a+i][b] == 1) C++;

    else break;

    }

    for (int i = 1; i < 5; i++)

    {

    if (w[a - i][b] == 1) C++;

    else break;

    }

    if (A > 4 || C > 4) jieguo = 1;//白棋胜利标志

    else {

    for (int i = 1; i < 5; i++) {

    if (w[a+i][b + i] == 1) x++;

    else break;

    }

    for (int i = 1; i < 5; i++) {

    if (w[a-i][b - i] == 1) x++;

    else break;

    }

    for (int i = 1; i < 5; i++)

    {

    if (w[a + i][b-i] == 1) y++;

    else break;

    }

    for (int i = 1; i < 5; i++)

    {

    if (w[a - i][b+i] == 1) y++;

    else break;

    }

    if (x > 4 || y > 4) jieguo = 1;

    }

    }

    if (w[a][b] == 0) {

    for (int i = 1; i < 5; i++) {

    if (w[a][b + i] == 0) B++;

    else break;

    }

    for (int i = 1; i < 5; i++) {

    if (w[a][b - i] == 0) B++;

    else break;

    }

    for (int i = 1; i < 5; i++)

    {

    if (w[a + i][b] == 0) D++;

    else break;

    }

    for (int i = 1; i < 5; i++)

    {

    if (w[a - i][b] == 0) D++;

    else break;

    }

    if (B > 4 || D > 4) jieguo = 2;//黑棋胜利标志

    else {

    for (int i = 1; i < 5; i++) {

    if (w[a + i][b + i] == 0) m++;

    else break;

    }

    for (int i = 1; i < 5; i++) {

    if (w[a - i][b - i] == 0) m++;

    else break;

    }

    for (int i = 1; i < 5; i++)

    {

    if (w[a + i][b - i] == 0) n++;

    else break;

    }

    for (int i = 1; i < 5; i++)

    {

    if (w[a - i][b + i] == 0) n++;

    else break;

    }

    if (m > 4 || n > 4) jieguo = 2;

    }

    }

    for (int k = 0; k < 11; k++)

    printf("第%d列\t", k);

    printf("\n");

    for (int i = 0; i < 11; i++) {

    for (int j = 0; j < 11; j++) {

    if (w[i][j] == 0) printf("黑\t");

    else if (w[i][j] == 1) printf("白\t");

    else printf("+\t");

    }

    printf("第%d行\n\n", i);

    }

    if (jieguo == 1) {

    printf("白棋胜利");

    break;

    }

    if (jieguo == 2) {

    printf("黑棋胜利");

    break;

    }

    }

    return 0;

    }

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    展开全文
  • C语言编写五子棋游戏

    2020-08-25 02:34:12
    主要为大家详细介绍了C语言编写五子棋游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 上次发布了本人用C语言编写五子棋与迷宫游戏,这次将源代码也向大家公开以互相学习,共同提高。需要浏览源代码者注意,你可以看看其中的思想,但是编程风格,和规范化方面我还有很多不足
  • C语言编写五子棋

    千次阅读 多人点赞 2020-02-04 17:07:43
    } 三、判断胜负 在五子棋中,出现五个棋子排成一排或者一列或者斜排即可判为胜出。每当落下一个棋子,对该棋子前后上下斜排五个棋子进行判别,超过五个连续的一样颜色的棋子则胜出。 int A = 1, B = 1, jieguo = 0,...

    一、构建棋盘

     首先可以用一个二维数组来构建棋盘,下标表示位置,内容表示黑子白子或者空位。当数组内容为1时,该位置为白字,当数组为0时,该位置为白子,空位输出+

    int w[11][11], flag = 0;
        int a, b;
    
     for (int k = 0; k < 11; k++)
                printf("第%d列\t", k);
            printf("\n");
            for (int i = 0; i < 11; i++) {
                for (int j = 0; j < 11; j++) {
                    if (w[i][j] == 0) printf("黑\t");
                    else if (w[i][j] == 1) printf("白\t");
                    else printf("+\t");
                }
                printf("第%d行\n\n", i);
            }

      

    二、判断位置超范围与错误输入

    当输入的棋子坐标超出范围或者该位置已经存在棋子,则再次输入棋子坐标。其中flag作为标志作为判别黑手白手的标志。

    if (flag == 0) {
                printf("黑色下棋\n");
                scanf("%d %d", &a, &b);
                while (a < 0 || a>10 || b < 0 || b>10) {
                    printf("此位置超出范围,请重新输入:");
                    scanf("%d %d", &a, &b);
                }
                while (w[a][b] == 0 || w[a][b] == 1)           
                {
                    printf("此位置已有棋子,请重新输入:");
                    scanf("%d %d", &a, &b);
                }
                flag = 1;
                w[a][b] = 0;
            }
            else {
                printf("白色下棋\n");
                scanf("%d %d", &a, &b);
                while (a < 0 || a>10 || b < 0 || b>10) {
                    printf("此位置超出范围,请重新输入:");
                    scanf("%d %d", &a, &b);
                }
                while (w[a][b] == 0 || w[a][b] == 1)
                {
                    printf("此位置已有棋子,请重新输入:");
                    scanf("%d %d", &a, &b);
                }

    三、判断胜负

    在五子棋中,出现五个棋子排成一排或者一列或者斜排即可判为胜出。每当落下一个棋子,对该棋子前后上下斜排五个棋子进行判别,超过五个连续的一样颜色的棋子则胜出。

       int A = 1, B = 1, jieguo = 0, C = 1, D = 1;
            int x = 1, y = 1, m = 1, n = 1;
            if (w[a][b] == 1) {
                for (int i = 1; i < 5; i++) {
                    if (w[a][b + i] == 1) A++;
                    else break;               
                }
                for (int i = 1; i < 5; i++) {
                    if (w[a][b - i] == 1) A++;
                    else break;
                }
                for (int i = 1; i < 5; i++)
                {
                    if (w[a+i][b] == 1) C++;
                    else break;
                }
                for (int i = 1; i < 5; i++)
                {
                    if (w[a - i][b] == 1) C++;
                    else break;
                }
                if (A > 4 || C > 4) jieguo = 1;//白棋胜利标志
                else  {
                    for (int i = 1; i < 5; i++) {
                        if (w[a+i][b + i] == 1) x++;
                        else break;
                    }
                    for (int i = 1; i < 5; i++) {
                        if (w[a-i][b - i] == 1) x++;
                        else break;
                    }
                    for (int i = 1; i < 5; i++)
                    {
                        if (w[a + i][b-i] == 1) y++;
                        else break;
                    }
                    for (int i = 1; i < 5; i++)
                    {
                        if (w[a - i][b+i] == 1) y++;
                        else break;
                    }
                    if (x > 4 || y > 4) jieguo = 1;
                }
            }
            if (w[a][b] == 0) {
                for (int i = 1; i < 5; i++) {
                    if (w[a][b + i] == 0) B++;
                    else break;
                }
                for (int i = 1; i < 5; i++) {
                    if (w[a][b - i] == 0) B++;
                    else break;
                }
                for (int i = 1; i < 5; i++)
                {
                    if (w[a + i][b] == 0) D++;
                    else break;
                }
                for (int i = 1; i < 5; i++)
                {
                    if (w[a - i][b] == 0) D++;
                    else break;
                }
                if (B > 4 || D > 4) jieguo = 2;//黑棋胜利标志
                else {
                    for (int i = 1; i < 5; i++) {
                        if (w[a + i][b + i] == 0) m++;
                        else break;
                    }
                    for (int i = 1; i < 5; i++) {
                        if (w[a - i][b - i] == 0) m++;
                        else break;
                    }
                    for (int i = 1; i < 5; i++)
                    {
                        if (w[a + i][b - i] == 0) n++;
                        else break;
                    }
                    for (int i = 1; i < 5; i++)
                    {
                        if (w[a - i][b + i] == 0) n++;
                        else break;
                    }
                    if (m > 4 || n > 4) jieguo = 2;
                }
            }
    

    程序完成

    四、演示结果

    五、源代码

    int main() {
        int w[11][11], flag = 0;
        int a, b;
        while (1) {
            if (flag == 0) {
                printf("黑色下棋\n");
                scanf("%d %d", &a, &b);
                while (a < 0 || a>10 || b < 0 || b>10) {
                    printf("此位置超出范围,请重新输入:");
                    scanf("%d %d", &a, &b);
                }
                while (w[a][b] == 0 || w[a][b] == 1)           
                {
                    printf("此位置已有棋子,请重新输入:");
                    scanf("%d %d", &a, &b);
                }
                flag = 1;
                w[a][b] = 0;
            }
            else {
                printf("白色下棋\n");
                scanf("%d %d", &a, &b);
                while (a < 0 || a>10 || b < 0 || b>10) {
                    printf("此位置超出范围,请重新输入:");
                    scanf("%d %d", &a, &b);
                }
                while (w[a][b] == 0 || w[a][b] == 1)
                {
                    printf("此位置已有棋子,请重新输入:");
                    scanf("%d %d", &a, &b);
                }
                flag = 0;
                w[a][b] = 1;
            }
            
            int A = 1, B = 1, jieguo = 0, C = 1, D = 1;
            int x = 1, y = 1, m = 1, n = 1;
            if (w[a][b] == 1) {
                for (int i = 1; i < 5; i++) {
                    if (w[a][b + i] == 1) A++;
                    else break;               
                }
                for (int i = 1; i < 5; i++) {
                    if (w[a][b - i] == 1) A++;
                    else break;
                }
                for (int i = 1; i < 5; i++)
                {
                    if (w[a+i][b] == 1) C++;
                    else break;
                }
                for (int i = 1; i < 5; i++)
                {
                    if (w[a - i][b] == 1) C++;
                    else break;
                }
                if (A > 4 || C > 4) jieguo = 1;//白棋胜利标志
                else  {
                    for (int i = 1; i < 5; i++) {
                        if (w[a+i][b + i] == 1) x++;
                        else break;
                    }
                    for (int i = 1; i < 5; i++) {
                        if (w[a-i][b - i] == 1) x++;
                        else break;
                    }
                    for (int i = 1; i < 5; i++)
                    {
                        if (w[a + i][b-i] == 1) y++;
                        else break;
                    }
                    for (int i = 1; i < 5; i++)
                    {
                        if (w[a - i][b+i] == 1) y++;
                        else break;
                    }
                    if (x > 4 || y > 4) jieguo = 1;
                }
            }
            if (w[a][b] == 0) {
                for (int i = 1; i < 5; i++) {
                    if (w[a][b + i] == 0) B++;
                    else break;
                }
                for (int i = 1; i < 5; i++) {
                    if (w[a][b - i] == 0) B++;
                    else break;
                }
                for (int i = 1; i < 5; i++)
                {
                    if (w[a + i][b] == 0) D++;
                    else break;
                }
                for (int i = 1; i < 5; i++)
                {
                    if (w[a - i][b] == 0) D++;
                    else break;
                }
                if (B > 4 || D > 4) jieguo = 2;//黑棋胜利标志
                else {
                    for (int i = 1; i < 5; i++) {
                        if (w[a + i][b + i] == 0) m++;
                        else break;
                    }
                    for (int i = 1; i < 5; i++) {
                        if (w[a - i][b - i] == 0) m++;
                        else break;
                    }
                    for (int i = 1; i < 5; i++)
                    {
                        if (w[a + i][b - i] == 0) n++;
                        else break;
                    }
                    for (int i = 1; i < 5; i++)
                    {
                        if (w[a - i][b + i] == 0) n++;
                        else break;
                    }
                    if (m > 4 || n > 4) jieguo = 2;
                }
            }
    
    
    
    
    
    
    
            for (int k = 0; k < 11; k++)
                printf("第%d列\t", k);
            printf("\n");
            for (int i = 0; i < 11; i++) {
                for (int j = 0; j < 11; j++) {
                    if (w[i][j] == 0) printf("黑\t");
                    else if (w[i][j] == 1) printf("白\t");
                    else printf("+\t");
                }
                printf("第%d行\n\n", i);
            }
            if (jieguo == 1) {
                printf("白棋胜利");
                break;
            }
            if (jieguo == 2) {
                printf("黑棋胜利");
                break;
            }
        }
        return 0;
    }
    

     

    展开全文
  • C语言编写五子棋小游戏

    千次阅读 2019-03-31 21:47:28
    今天就带大家来用C语言实现五子棋小游戏! #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<time.h> //建立游戏菜单1 int menu1() { printf("****************...

    大家都下过五子棋吧! 今天就带大家来用C语言实现五子棋小游戏!

    #define _CRT_SECURE_NO_WARNINGS
    #include<stdio.h>
    #include<stdlib.h>
    #include<time.h>
    //建立游戏菜单1
    int menu1() {
    	printf("****************\n");
    	printf("***1.开始游戏***\n");
    	printf("*****五子棋*****\n");
    	printf("***2.结束游戏***\n");
    	printf("****************\n");
    	printf("请输入您的选择:\n");
    	int choice1 = 0;
    	scanf("%d", &choice1);
    	return choice1;
    }
    //建立游戏菜单2
    int menu2() {
    	printf("****************\n");
    	printf("***1.人机对战***\n");
    	printf("***2.玩家VS玩家*\n");
    	printf("***3.返回*******\n");
    	printf("****************\n");
    	printf("请输入您的选择:\n");
    	int choice2 = 0;
    	scanf("%d", &choice2);
    	return choice2;
    }
    #define MAX_ROW 5
    #define MAX_COL 5
    char chess_board[MAX_ROW][MAX_COL] = { 0 };
    //1.初始化棋盘   
    void Init() {
    	for (int row = 0; row < MAX_ROW; row++) {
    		for (int col = 0; col < MAX_COL; col++) {
    			chess_board[row][col] = ' ';
    		}
    	}
    	//设置随机种子
    	srand((unsigned int)time(0));
    }
    //如果棋盘满,返回1 否则返回0
    int IsFull() {
    	for (int row = 0; row < MAX_ROW; row++) {
    		for (int col = 0; col < MAX_COL; col++) {
    			if (chess_board[row][col] == ' ') {
    				//棋盘未满
    				return 0;
    			}
    		}
    	}
    	return 1;
    }
    //打印五子棋盘
    void Print() {
    	for (int row = 0; row < MAX_ROW; row++) {
    		printf("| %c | %c | %c | %c | %c |\n", chess_board[row][0],
    			chess_board[row][1], chess_board[row][2], chess_board[row][3], chess_board[row][4]);
    		if (row != MAX_ROW - 1) {
    			printf("|---|---|---|---|---| \n");
    		}
    	}
    	//system("pause");
    }
    //2.玩家落子
    void PlayerMove() {
    	printf("玩家落子!\n");
    	while (1) {
    		printf("请输入落子位置的坐标(row col):");
    		int row = 0;
    		int col = 0;
    		scanf("%d %d", &row, &col);
    		//检查坐标是否合法?
    		if (row < 0 || row >= MAX_ROW
    			|| col < 0 || col >= MAX_COL) {
    			printf("您输入的坐标不合法!请重新输入!\n");
    			continue;
    		}
    		if (chess_board[row][col] != ' ') {
    			printf("您要下的地方已经被占用!请重新输入!\n");
    			continue;
    		}
    		chess_board[row][col] = 'x';
    		break;
    	}
    	printf("玩家落子完毕!\n");
    
    }
    //3.判断胜负
    //返回值表示胜利者是谁
    //x表示玩家胜  o表示电脑胜 r表示和棋 ' '表示未分胜负 ‘y'表示玩家2获胜
    char  CheckWiner() {
    	//检测所有行是否连成一条线 所有列是否连成一条线  对角线是否连成一条线
    	for (int row = 0; row < MAX_ROW; row++) {
    		if (chess_board[row][0] == chess_board[row][1] &&
    			chess_board[row][0] == chess_board[row][2] && chess_board[row][0] == chess_board[row][3]
    			&& chess_board[row][0] == chess_board[row][4]) {
    			return chess_board[row][0];
    		}
    	}
    	for (int col = 0; col < MAX_COL; col++) {
    		if (chess_board[0][col] == chess_board[1][col] &&
    			chess_board[0][col] == chess_board[2][col] && chess_board[0][col] == chess_board[3][col]
    			&& chess_board[0][col] == chess_board[4][col]) {
    			return chess_board[0][col];
    		}
    	}
    	if (chess_board[0][0] == chess_board[1][1] &&
    		chess_board[0][0] == chess_board[2][2] && chess_board[0][0] == chess_board[3][3] & chess_board[0][0] == chess_board[4][4]) {
    		return chess_board[0][0];
    	}
    	if (chess_board[0][4] == chess_board[1][3] &&
    		chess_board[0][4] == chess_board[2][2] && chess_board[0][4] == chess_board[3][1]
    		&& chess_board[0][4] == chess_board[4][0]) {
    		return chess_board[0][4];
    	}
    	//和棋  棋盘满并且未分出胜负
    	if (IsFull()) {
    		return 'r';
    	}
    	return ' ';
    }
    //4.电脑落子
    void ComputerMove() {
    	printf("电脑落子!\n");
    	while (1) {
    		int row = rand() % 5;
    		int col = rand() % 5;
    		if (chess_board[row][col] != ' ') {
    			continue;
    		}
    		chess_board[row][col] = 'o';
    		break;
    	}
    	printf("电脑落子完毕!\n");
    
    }
    //5.玩家2落子
    void PlayerMove2() {
    	printf("玩家2落子!\n");
    	while (1) {
    		printf("请输入落子位置的坐标(row col):");
    		int row = 0;
    		int col = 0;
    		scanf("%d %d", &row, &col);
    		//检查坐标是否合法?
    		if (row < 0 || row >= MAX_ROW
    			|| col < 0 || col >= MAX_COL) {
    			printf("您输入的坐标不合法!请重新输入!\n");
    			continue;
    		}
    		if (chess_board[row][col] != ' ') {
    			printf("您要下的地方已经被占用!请重新输入!\n");
    			continue;
    		}
    		chess_board[row][col] = 'y';
    		break;
    	}
    	printf("玩家落子完毕!\n");
    
    }
    //主游戏1
    void game1() {
    	Init();
    	char winner = ' ';
    	while (1) {
    		Print();
    		PlayerMove();
    		winner = CheckWiner();
    		if (winner != ' ') {
    			//胜负已分
    			break;
    		}
    		ComputerMove();
    		winner = CheckWiner();
    		if (winner != ' ') {
    			break;
    		}
    	}
    	Print();
    	if (winner == 'x') {
    		printf("您赢啦!\n");
    	}
    	else if (winner == 'o') {
    		printf("您败了!\n");
    	}
    	else if (winner == 'r') {
    		printf("您和电脑一样菜!\n");
    	}
    	else {
    		printf("代码bug啦!\n");
    	}
    }
    //主游戏2
    void game2() {
    	Init();
    	char winner = ' ';
    	while (1) {
    		Print();
    		PlayerMove();
    		winner = CheckWiner();
    		if (winner != ' ') {
    			//胜负已分
    			break;
    		}
    		Print();
    		PlayerMove2();
    		winner = CheckWiner();
    		if (winner != ' ') {
    			break;
    		}
    	}
    	Print();
    	if (winner == 'x') {
    		printf("玩家获胜!\n");
    	}
    	else if (winner == 'y') {
    		printf("玩家2获胜!\n");
    	}
    	else if (winner == 'r') {
    		printf("平局!\n");
    	}
    	else {
    		printf("代码bug啦!\n");
    	}
    }
    //主函数
    int main() {
    	while (1) {
    		int choice1 = menu1();
    		if (choice1 == 1) {
    			while (1) {
    				int choice2 = menu2();
    				if (choice2 == 1) {
    					game1();
    				}
    				else if (choice2 == 2) {
    					game2();
    				}
    				else if (choice2 == 3) {
    					int choice1 = menu1();
    					if (choice1 == 2) {
    						printf("欢迎下次来玩!\n");
    						break;
    					}
    				}
    				else {
    					printf("您的选择有误!\n");
    				}
    			}
    			break;
    		}
    		else if (choice1 == 2) {
    			printf("欢迎下次来玩!\n");
    			break;
    		}
    		else {
    			printf("您的输入有误!\n");
    		}
    	}
    	return 0;
    	system("pause");
    }
    

    程序的运行结果如图所示:
    主程序界面
    主程序界面
    游戏结束界面
    希望大家下去可以自己练习,优化功能。

    展开全文
  • C 语言课程设计报告c题目: 简单的 五子棋设计者: 方阳专业班级: 软件工程1303班学号: 311309060324指导老师: 刘洁所属系部: 计算机学院2014年6月25 日河南理工大学11、设计任务书1.1、 题目与要求...

    C 语言课程设计报告

    c

    题目: 简单的 五子棋

    设计者: 方阳

    专业班级: 软件工程1303班

    学号: 311309060324

    指导老师: 刘洁

    所属系部: 计算机学院

    2014年6月25 日

    河南理工大学

    1

    1、设计任务书

    1.1、 题目与要求:

    本人计划编写一个简单的c五子棋,应用C语言编写程序可以在计算机上实现

    二人对弈五子棋功能。二人对弈五子棋程序由图像生成、光标移动与落子、判

    断胜负和系统帮助等子程序构成;程序中应用了结构体、数组、全局变量、按

    键处理和图形编程等元素和语句。程序通过棋盘和棋子图像生成、二人移子与

    落子和判断胜负等功能的实现,在计算机上实现了二人五子棋对弈。

    1.2、 本系统涉及的知识点:

    结构、数组、循环、函数、分支、

    2、功能设计

    根据功能需求,将程序分为图形显示、玩家控制、胜负判断和玩家计

    分四个模块,以下分析各模块的需求。

    图形显示模块:程序开始运行时,给出欢迎及帮助界面;游戏开始后

    要求生成19×19的棋盘图像,并在棋盘上方提示当前落子方棋子颜

    色,游戏进行过程中,要求实时显示棋盘上已落下的棋子;分出胜负

    后,要求给出游戏结束画面。

    玩家控制模块:程序开始时,需玩家确定而后开始游戏;游戏过程中,

    两个玩家通过不同的按键移动光标,选择落子;游戏结束时,有玩家

    选择是否开始新棋局。

    胜负判断模块:实时监测棋盘上棋子,一旦某一色棋子出现五子连线,

    终止游戏程序,并着色连成一线的五子,弹出该色玩家胜出界面。

    玩家计分模块:一方玩家再胜利后通过对文件的操作进行计分,并输

    出于计分板上。

    2

    2.1、算法设计

    根据程序需求分析结果,可以得出程序的总体结构图如图。

    2.2部分模块流程图

    3

    程序流程图

    3、程序代码设计

    3.1 图形模块

    initgr()/*BGI 初始化 */

    {

    int gd DETECT,gm 0;/* 和gd VGA,gm VGAHI 是同样效果 */

    registerbgidriver(EGAVGA_driver);/* 注册BGI 驱动后可以不需要.BGI 文件的支持运行 */

    initgraph(&gd,&gm, "");

    }

    welcome() /*欢迎界面*/

    { initgr() ; /*初始化*/

    clearviewport(); /*清屏*/

    setcolor(2); /*设置颜色*/

    settextstyle(0,0,6); /*样式*/

    outtextxy(180,180,"Welcome");/*位置以及内容*/

    settextstyle(0,0,2); /*文本样式*/

    outtextxy(240,420,"pressanykey tocontinue");/*位置以及内容*/

    getch(); /*pressanykey tocontinue*/

    }

    help() /*帮助界面,基本操作同welcome();函数*/

    4

    {

    initgr();

    clearviewport();

    setcolor(2);

    settextstyle(0,0,2);

    outtextxy(60,100,"P1 move;W SAD ");

    展开全文
  • C语言基础编程用c语言编写一个五子棋吧,不怎么难,给你程序,自己参考一下/*3.3.4 源程序*/#include "graphics.h" /*图形系统头文件*/#define LEFT 0x4b00 /*光标左键值*/#define RIGHT 0x4d00 /*光标右键值*/#...
  • 这个游戏中,包括走迷宫和五子棋两款游戏 其中走迷宫可分为5关,实际上是n关,因为第二关以后都带有部分随机性, 按上面的提示进行操作可进行游戏,五子棋...以后如果有要代码或者说明的可以联系我……我的QQ:958249050
  • 本人在意c语言编写老师布置的一项五子棋游戏的作业,编译运行通过,但是在打开的界面上无法绘制棋子,求大神解答!谢谢! 代码: #include #include #include //------------------------------------------------- ...
  • c语言编写五子棋代码,验证通过,可以给要移植到任何其他系统提供很好的参考价值
  • 该资源是由C语言编写的,是纯代码在Turbo c++编译器可以调试成功,对于学习C语言并且打算做一款自己的小游戏的人很有帮助,希望大家可以从中收获多多。
  • C语言编写五子棋

    2014-07-21 19:30:27
    C语言编写五子棋,可以人机对战、双人对战。上下左右是w、s、a、d,下子是j
  • C语言五子棋代码

    2013-03-14 13:18:03
    五子棋代码,C语言版本的,一个五子棋爱好者用C语言编写的,望对五子棋代码有研究的朋友有帮助
  • 五子棋简单功能实现,供大家参考,具体内容如下游戏功能演示代码如下:#include #include #include #include // 棋盘char board[15][15];// 棋子坐标char kx = 7 , ky = 7;// 角色char role = "@";// 显示棋盘void ...
  • 这是用C语言编写的源代码!供大家学习参考使用!
  • 这是一个用C语言编写的简单五子棋程序,可以学习参考下
  • 主要介绍了基于C语言实现五子棋游戏完整实例代码,相信对于学习游戏开发的朋友会有一定的帮助与借鉴价值,需要的朋友可以参考下
  • 五子棋C语言编写

    2013-07-06 22:39:30
    五子棋C语言编写,本代码为《C语言实战开发宝典》丛书附赠光盘内容。
  • C语言五子棋代码

    万次阅读 多人点赞 2019-03-24 21:31:57
    //评分标准 //主程序 int main() { system("title 简易五子棋");//设置标题 system("mode con cols=58 lines=29");//设置窗口大小 system("color E0");//设置颜色 Initialize();//初始化棋盘,数据棋盘,和缓冲器 ...
  • C语言编写五子棋小游戏 欢迎大家下载,评论
  • C语言编写五子棋

    2013-08-25 15:59:17
    完全基于Turbo C编写五子棋程序,需要键盘操作
  • C语言编写五子棋代码,可以直接运行,供网友交流学习使用。
  • Linux上的C语言五子棋代码,可支持鼠标下棋,不限步数悔棋。(gcc 上运行前sudo chmod 777 /dev/fb0 和sudo chmod 777 /dev/input/mice 前一个命令获取显卡权限,后一个获取鼠标控制 )
  • C语言编写五子棋游戏 设计思路

    万次阅读 多人点赞 2010-12-31 10:04:00
    但还是很有成就感的,一下是我的感悟用C语言编写五子棋游戏这个五子棋游戏是站长刚学C语言两个月时所写!!C语言制作五子棋五子棋游戏是一个深受人们喜爱的游戏,通常是人机对弈,本程序设计为人与人对弈,一方执...
  • C语言实现五子棋

    2020-09-03 20:46:45
    本文给大家分享的是去年制作的一个纯C语言实现的五子棋代码,虽然没有带漂亮的界面,还是推荐给大家,有需要的小伙伴可以参考下。
  • 编译代码#include #include #include #include #define MAXIMUS 15 //定义棋盘大小int p[MAXIMUS][MAXIMUS];//存储对局信息char buff[MAXIMUS*2+1][MAXIMUS*4+3];//输出缓冲器int Cx,Cy;//当前光标位置int Now;//...
  • C语言实现五子棋游戏的编写,运用了MFC知识,这是我们C语言课程设计,代码简单易懂并且有可视化界面,很美观。键盘实现棋子的移动。
  • 【项目展示】自己用C语言编写五子棋小程序

    千次阅读 多人点赞 2021-04-09 19:01:21
    学了大概两个多月吧,我就心血来潮,在学校图书馆的机房里自主编写了我的第一个C语言项目——五子棋小程序。 我依稀记得,那个夏日的夜晚,风带着些许暑气,一个少年背着沉重的书包,拖着疲惫却又轻快的身躯,满意地...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 562
精华内容 224
关键字:

c语言编写五子棋代码

c语言 订阅