五子棋小程序(低配版)

news/2024/10/17 16:25:32/

这是我大一做的一个课程设计
目前阶段只有人人对战
之后还想做人机对战,并且使机器只能一点
现阶段略微有些弱智
勿喷勿喷

#include <bits/stdc++.h>
#define SIZE 15
#define WIN 5using namespace std;char chessboard[SIZE][SIZE];
int heng,zong;void prch();//打印棋盘
int menu();//游戏选择界面
int judge(char a);//判断黑子白子是否胜利int main()
{if(menu()==1){menu();prch();int flag=0;for (int i=0; i<SIZE; i++)//对奇葩内容进行初始化for (int j=0; j<SIZE; j++)chessboard[i][j] = ' ';printf("请输入黑子(@)的坐标,形如:4 4: ");while(~scanf("%d%d",&zong,&heng)){while (heng<1||zong<1||heng>SIZE||zong>SIZE||chessboard[zong-1][heng-1] != ' '){printf("输入有误!请重新输入!\n\n");if (flag%2==0)printf("请输入黑子(@)坐标,形如:4 4:");elseprintf("请输入白子(O)坐标,形如:4 4:");scanf("%d%d",&zong,&heng);}if (flag%2==0)chessboard[zong - 1][heng - 1]='@';elsechessboard[zong - 1][heng - 1]='O';prch();//判断哪一方获胜if(flag%2==0){if(judge('@')){printf("黑棋获胜!!!!\n");break;}}else{if(judge('O')){printf("白棋获胜!!!!\n");break;}}flag++;if (flag%2 ==0)printf("请输入黑子(@)坐标,形如:4 4:");elseprintf("请输入白子(O)坐标,形如:4 4:");}}elseprintf("退出游戏");return 0;
}void prch()//打印棋盘
{printf("    ");for (int i=1; i<=SIZE; i++)printf(" %-3d",i);printf("\n");printf("    ___________________________________________________________\n");for (int i=0; i<SIZE; i++){if (i>=0)printf("%-3d",i+1);elseprintf("   ");printf("|");for (int j=0; j<SIZE; j++)printf(" %-2c|", chessboard[i][j]);printf("\n    ___________________________________________________________\n");}printf("\n\n");
}int menu()//游戏选择界面
{int num;printf("************ 五子棋小游戏  ************\n");printf("******  1.进入游戏  2.退出游戏  ******\n");printf("**************************************\n");printf("         您的选择(1或2)是:");scanf("%d",&num);return num;
}int judge(char a)//判断黑子白子是否胜利
{for (int i=0; i<SIZE; i++){for (int j=0; j<SIZE; j++){if (chessboard[i][j] == a){int count_a = 1;//竖直方向for (int x=i-1,times=0; x>=0; x--,times++){if (chessboard[x][j]==a){count_a++;}elsebreak;if (times>WIN-1)break;}for (int y=i+1,times=0; y<SIZE; y++,times++){if (chessboard[y][j]==a){count_a++;}elsebreak;if (times>WIN-1)break;}if (count_a>=WIN){return true;}//横方向count_a=1;for (int x=j-1,times=0; x>=0; x--,times++){if (chessboard[i][x]==a){count_a++;}elsebreak;if (times>WIN-1)break;}for (int y=j+1,times=0; y<SIZE; y++,times++){if (chessboard[i][y]==a){count_a++;}elsebreak;if (times>WIN-1)break;}if (count_a>=WIN){return true;}//上斜下方向count_a=1;for (int x=i-1,y=j-1,times=0; i>=0&&j>=0; x--,y--,times++){if (chessboard[x][y]==a){count_a++;}elsebreak;if (times>WIN-1)break;}for (int x=i+1,y=j+1,times=0; i<SIZE&&j<SIZE; x++,y++,times++){if (chessboard[x][y]==a){count_a++;}elsebreak;if (times>WIN-1)break;}if (count_a>=WIN){return true;}//下斜上方向count_a=1;for (int x=i+1,y=j-1,times=0; x<SIZE&&y>=0; x++,y--,times++){if (chessboard[x][y]==a){count_a++;}elsebreak;if (times>WIN-1)break;}for (int x=i-1,y=j+1,times=0; x>=0&&y<SIZE; x--,y++,times++){if (chessboard[x][y]==a){count_a++;}elsebreak;if (times>WIN-1)break;}if (count_a>=WIN){return true;}}}}return false;
}

http://www.ppmy.cn/news/563058.html

相关文章

html5游戏开发教程实战:五子棋、四子棋、围棋、翻转棋四种对弈游戏,仅仅100行代码

原文&#xff1a;html5游戏开发教程实战&#xff1a;五子棋、四子棋、围棋、翻转棋四种对弈游戏&#xff0c;仅仅100行代码 源代码下载地址&#xff1a;http://www.zuidaima.com/share/1839614057712640.htm 本文是一个非常具有挑战性的编程&#xff0c;因为100行代码&#xff…

五子棋的c++代码

设计步骤 很久没写这样的小游戏了&#xff0c;就是想写一个五子棋小游戏&#xff0c;以后代码有改进的地方我会继续发帖的&#xff0c;希望大家多多指导。游戏包含7个部分&#xff1a;五子棋的欢迎界面、棋盘初始化界面、游戏规则说明部分、棋子和棋盘显示界面、判断下棋点是否…

简单的五子棋程序(可悔棋版和普通版)

//普通版 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <windows.h> #define N 8 void display(char (* p)[N]) { system("cls"); int i,j; for(i0; i<N; i) { for(j0; j<N; j) …

五子棋网页版

基于js的五子棋教程 先给出问题&#xff0c;然后一步一步的去解决&#xff1b; 需要的知识&#xff1a;html,css,js基础语法&#xff0c;包括创建对象和继承属性&#xff1b;需要的知识很少&#xff0c;就是js的创建对象&#xff0c;如果不会就去看一下书吧。整个js都是基于一…

C++畅玩五子棋项目

畅玩五子棋项目说明 ​ 项目创建环境&#xff1a;Windows 10 Visual Studio 2019 ​ 棋子类型&#xff1a;实心●和空心◎。其中&#xff0c;棋子彩色棋子为当前落子 ​ 实现功能&#xff1a;对战模式&#xff08;人人对战&#xff09;、人机模式&#xff08;人机模式&…

基于C++的五子棋项目

一、五子棋项目介绍 1.游戏规则 五子棋是我国古代传统的黑白棋种之一&#xff0c;黑白双方依次落子&#xff0c;任意一方在棋盘上形成横向、纵向、斜向的连续相同颜色的五颗棋子的一方为胜。 2.完成界面显示 此次项目将不使用任何图形库进行开发&#xff0c;所有显示的内容都…

五子棋的设计与实现

术&#xff1a;Java等 摘要&#xff1a; 五子棋是一种两人对弈的纯策略型棋类游戏&#xff0c;非常容易上手&#xff0c;老少皆宜。为了更好的推广五子棋&#xff0c;研究简单的人工智能方式&#xff0c;运用Java开发五子棋游戏。主要包含了人机对战&#xff0c;棋盘初始化&…

五子棋-完美解决闪屏问题版-新增悔棋功能(C++实现)

在学C的时候&#xff0c;在做课设的时候做了一个五子棋课设&#xff0c;当时选这个就是觉得挺好玩的&#xff0c;想理解一下游戏是如何实现的&#xff0c;然后就入了这个坑。。。这个我没有用图形化界面来实现&#xff0c;完全是使用字符来实现。然后没有用图形化界面的最大的问…