《C 语言程序的设计》课程设计报告五子棋

发布 2024-04-04 18:35:08 阅读 2764

c++语言程序设计。

课程设计报告。

课程: c++语言程序设计。

题目: 五子棋

年级。专业。

学号。姓名。

指导教师。江苏师范大学数学与统计学院。

摘要】五子棋是我国古代的、传统的黑白棋种之一。五子棋不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。本游戏是以c++语言作为开发工具,运行环境visual c++ 6.

0,通过构造函数绘制棋谱,以及落子函数、判断函数,实现双人对弈的功能。

关键词】五子棋、游戏、人人对战、c++

引言】五子棋是起源于中国古代的传统黑白棋种之一。现代五子棋日文称之为“連珠”,英译为“renju”,英文称之为“gobang”或“fir”(fiveinarow的缩写),亦有“连五子”、“五子连”、“串珠”、“五目”、“五目碰”、“五格”等多种称谓。

五子棋不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。五子棋既有现代休闲的明显特征“短、平、快”,又有古典哲学的高深学问“阴阳易理”;它既有简单易学的特性,为人民群众所喜闻乐见,又有深奥的技巧和高水平的国际性比赛;它的棋文化源渊流长,具有东方的神秘和西方的直观;既有“场”的概念,亦有“点”的连接。它是中西文化的交流点,是古今哲理的结晶。

本游戏是以c++语言作为开发工具,运行环境visual c++ 6.0,通过构造函数绘制棋谱,以及落子函数、判断函数,实现双人对弈的功能。

设计思路】第一步:绘制棋谱。

第二步:对战双方落子。

第三步:判断是否有五子连珠。

第四步:重复第。

一、二、三步直至出现五子连珠。

设计过程】通过构造函数实现棋盘,编写落子函数实现玩家落子,通过判断函数判断是否有五子连珠的结果。

设计结果】图1-1

初始画面。图1-2

双方落子。图1-3

白棋胜出。设计总结】

本五子棋游戏是一种简单的小程序,没有图形界面以及复杂的人机、网络对战,但即便如此我们也可以在娱乐中感受到c++编程的奇妙之处。

附录:#include

#include <>

using namespace std;

class mygobang

public: mygobang();

void printboard();

void getpointxy();

void getpointmn();

bool isfirstwin();

bool issecondwin();

private: int x,y,m,n,num_xy,num_mn;

char board[20][20];

mygobang::mygobang()/构造函数实现棋谱。

num_xy=0;

num_mn=0;

for(int i=0;i<20;i++)

for(int j=0;j<20;j++)

board[i][j]='

void mygobang::printboard()/刷新棋谱。

for(int i=0;i<=20;i++)

cout< for(int j=1;j<=20;j++)else

void mygobang::getpointxy()/第一人落子函数。

cout<<"请输入第"< cin>>x>>y;

cout< while(x<1||x>20||y<1||y>20)

while(board[y-1][x-1]!=

board[y-1][x-1]='o';

num_xy++;

bool mygobang::isfirstwin()/判断第一人是否赢。

int num1=1,num2=1,num3=1,num4=1;

int i,j;

//这里是判断x坐标向右的'0'连续数。

for(i=x;i<=x+3&&i<20;i++)

//这里是判断x坐标向左的'0'连续数。

for(i=x-2;0<=i&&i>=x-5;i--)

//这里是判断y坐标向下的'0'连续数。

for(j=y;j<20&&j<=y+3;j++)

//这里是判断y坐标向上的'0'连续数。

for(j=y-2;j>=0&&j>=y-5;j--)

//这里是判断右斜上'0'连续数。

for(i=x,j=y;i<20&&j<20&&i<=x+3&&j<=y+3;i++,j++)

//这里是判断左斜下'0'连续数。

for(i=x-2,j=y-2;i>=0&&j>=0&&i>=i-5&&j>=5;i--,j--)

//这里是判断左斜上'0'连续数。

for(i=x-2,j=y;i>=0&&j<20&&i>=x-5&&j<=y+3;i--,j++)

//这里是判断右斜下'0'连续数。

for(i=x,j=y-2;i<20&&j>=0&&i<=x+3&&j>=y-5;i++,j--)

if(num1==5||num2==5||num3==5||num4==5) return 1;

// 这里总结 x,y ,左斜,右斜的'0'连续数,有等于五的就直接返回 1 否则返回0

else return 0;

void mygobang::getpointmn()/第二人落子函数。

while(board[n-1][m-1]!=

cout<<"该位置已被占,重新输入:";

cin>>m>>n;

cout20||n<1||n>20)

cout<<"出界,请重新输入:";

《C语言程序设计》课程设计题目及要求

c语言程序设计 课。程。设。计。题。目。及。要。求。序号1 设计目的 加深对高级语言基本语言要素和控制结构的理解,训练学生综合运用已学课程的基本知识,独立进行c语言应用程序设计,掌握c语言程序设计 调试。针对c语言中的重点和难点内容进行训练,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风...

《C语言程序设计》课程设计任务书

一 实验目的。c语言是一种编程灵活,特色鲜明的程序设计语言。c语言除了学习必须的基本知识,如概念,方法和语法规则之外,更重要的是进行实训,以提高学习者的动手和编程能力,这是学习语言的最终目的。结合多年来的教学经验,根据学生的学习情况,为配合教学过程,使 项目教学法 能在本质上促使学生有更大进步,特编...

C语言程序设计课程设计任务书

一 课程设计目的。本课程设计是 c语言程序设计 学习重要的实践性环节之一,是学生为学好此课程而进行的一次全面的综合练习。为加深对 c语言程序设计 课程所学知识的理解,进一步巩固c语言语法规则,学会编制结构清晰 风格良好 数据结构适当的 语言程序,掌握c语言程序调试的基本技能并掌握书写程序设计说明文档...