对抗小游戏课程设计报告.docx

上传人:b****2 文档编号:11779866 上传时间:2023-06-02 格式:DOCX 页数:24 大小:596.51KB
下载 相关 举报
对抗小游戏课程设计报告.docx_第1页
第1页 / 共24页
对抗小游戏课程设计报告.docx_第2页
第2页 / 共24页
对抗小游戏课程设计报告.docx_第3页
第3页 / 共24页
对抗小游戏课程设计报告.docx_第4页
第4页 / 共24页
对抗小游戏课程设计报告.docx_第5页
第5页 / 共24页
对抗小游戏课程设计报告.docx_第6页
第6页 / 共24页
对抗小游戏课程设计报告.docx_第7页
第7页 / 共24页
对抗小游戏课程设计报告.docx_第8页
第8页 / 共24页
对抗小游戏课程设计报告.docx_第9页
第9页 / 共24页
对抗小游戏课程设计报告.docx_第10页
第10页 / 共24页
对抗小游戏课程设计报告.docx_第11页
第11页 / 共24页
对抗小游戏课程设计报告.docx_第12页
第12页 / 共24页
对抗小游戏课程设计报告.docx_第13页
第13页 / 共24页
对抗小游戏课程设计报告.docx_第14页
第14页 / 共24页
对抗小游戏课程设计报告.docx_第15页
第15页 / 共24页
对抗小游戏课程设计报告.docx_第16页
第16页 / 共24页
对抗小游戏课程设计报告.docx_第17页
第17页 / 共24页
对抗小游戏课程设计报告.docx_第18页
第18页 / 共24页
对抗小游戏课程设计报告.docx_第19页
第19页 / 共24页
对抗小游戏课程设计报告.docx_第20页
第20页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

对抗小游戏课程设计报告.docx

《对抗小游戏课程设计报告.docx》由会员分享,可在线阅读,更多相关《对抗小游戏课程设计报告.docx(24页珍藏版)》请在冰点文库上搜索。

对抗小游戏课程设计报告.docx

对抗小游戏课程设计报告

计算机学院计算机科学与技术专业

《程序设计综合课程设计》报告

(2011/2012学年第一学期)

 

学生姓名:

学生班级:

学生学号:

指导教师:

 

2012年12月27日

 

 

 

2.1课程设计题目................................................3

2.2系统模块图...................................................4

3.1游戏规则....................................................5

3.3设计思路...................................................6

附录一:

参考文献.......................................................15

附录二:

程序清单.........................................................................................................16

第一章课程设计的目的和要求

1.1课程设计的目的

C++语言课程设计的主要目的是培养学生综合运用C++程序设计课程所学到的知识,编写C++程序解决实际问题的能力,以及严谨的工作态度和良好的程序设计习惯。

通过课程设计的训练,学生应该能够了解程序设计的基本开发过程,掌握编写、调试和测试C++语言程序的基本技巧,充分理解结构化程序设计的基本方法。

C++语言程序设计的主要任务时要求学生遵循软件开发过程的基本规范,运用结构化程序设计的方法,按照课程设计的题目要求,分析、设计、编写、调试和测试C++语言程序及编写设计报告。

本次课程设计是通过设计一个较为简单的“对抗小游戏”,进一步熟悉C++中有关各种知识的运用与掌握。

了解系统开发的需求分析、模块分析、程序流程图、编码测试、模块组装与整体调试的全过程,加深对C++的理解与VisualC++环境的使用;逐步熟悉程序设计的方法,并养成良好的编程习惯,进一步培养完善的C++编程设计思维,为以后进行软件编程、数据库管理等深入学习打下一个牢固基础

1.2课程设计的目标

本课程设计的目标:

1.巩固和加深学生对C++语言课程的基本知识的理解和掌握;

2.掌握C++语言编程和程序调试的基本技能;

3.掌握利用C++语言进行软件设计的方法;

4.提高书写程序设计说明文档的能力;

5.提高运用C++语言解决实际问题的能力。

1.3课程设计要求

基本要求:

1.题目:

设计一个“对抗小游戏”软件;

2.了解该系统软件开发的相关背景;

3.参考相关书籍学习课程设计的基本知识;

4.清楚所开发系统软件的各个相关功能,以便顺利开发系统软件;

5.对系统功能模块进行分析,写出设计说明文档;

6.设计完成的软件要便于操作和使用;

7.对自己所设计的程序进行调试,并不断完善;

8.在设计过程中熟练掌握软件编程的相关知识

9.详细体会并记录相关过程,并将心得体会写在课程设计报告中;

10.设计完成后提交课程设计报告。

 

第二章课程设计任务内容

2.1课程设计题目

对抗小游戏

 

由计算机自动判断是否加注

2.2系统模块图

 

第三章详细设计说明

3.1游戏规则

(1)本游戏采用人机对战方式,从A,2,3。

K为牌面的大小表示。

(2)游戏在开始时系统默认赌注为1,当双方进行对抗时,游戏者可根据自身的牌点决定是否继续下注,例如拿到k,把握增大,则在计算机的牌点出来之前加大赌注,但不超过5点。

(3)将双方牌点的比较扩大为两张牌点之和,若出现一组对子,则对子牌点大于任何单牌,若双方均为对子,则比较牌点之和。

(4)玩家的分数在0或者大于50时游戏则自动退出。

(5)玩家如果在第一次发牌时没有加注,则系统默认电脑赢,玩家扣除一分,游戏结束一轮会有玩家的游戏总分数(玩家的初始分数是20)。

3.2游戏过程简介

3.3设计思路

vc++中,类有很好的封装性,要完成对抗游戏的以上功能,可以先构造一个类,将所需要的函数放入其中,再根据需要,编写具体的函数源程序。

该程序的过程较为烦琐,要仔细考虑每一步,避免反复,尤其应当注意让函数的功能尽可能做的能够解决多个问题。

 

第四章软件使用说明及运行结果

4.1软件使用说明

玩家根据系统发的第一张牌的大小决定是否下注,这时系统提示玩家是否下注,下注输入1,否则输入0。

这时游戏结束,电脑得一分,玩家损失1分。

如果玩家在第一张牌时下注,系统发第二张牌,同时和电脑随机得到的牌相比较,最后得出玩家的最后成绩。

这时系统提示玩家是否继续,继续输入1,放弃输入0。

如果玩家一直继续,则直到玩家的分数在0或者50的时候游戏自动结束。

4.2游戏运行结果(截图)

 

 

第五章课程设计心得与体会

对于课程设计一开始有一种一头雾水的感觉,它是干什么的,我要怎么做。

拿下来题目之后,觉得以我的能力根本就不可能实现这个题目的要求,可是慢慢我发现它并非不可实现。

只要耐心的分析它要的功能需要什么函数实现,就可以做到。

于是我就着手做这个程序,可是它也并不像我想得那么简单。

在设计中刚开始出现了一百多个错误,令我一头雾水,但是在经过几天的检查与修改后,能够编译出来,这令我非常的高兴,但是运行结果有点出乎我的意料,所运行的结果,不能达到所期望的,但是经过一番修改后,能够输出,并且能进行游戏,这让我喜出望外。

说实话这是我第一次,编写一个200多行的程序。

虽然写的程序比较繁琐,没有任何技巧,但我觉得这是个美好的开始,说明我也可以自己做东西了。

在我自己写出之后都有点不敢相信自己,因为对于我来说是个编程的新手,刚学了一学期,在课程设计中,刚开始真有点对自己失去信心,但是在我真正的开始编写时,就发现事情并不是我想的那么糟,只要肯下决心就会让你自己发现原来自己的事,只有在自己真正的做了之后,才能感觉到那种成功的喜悦,那种失败的酸辛。

这次课程设计也让我感觉得到了我的不足,我也从网上找到过相同的程序源代码。

并且比我的实现的功能还要多,可是我的程序却要比他们的多好几倍,这也使我很苦恼。

我知道原因就是我的程序并没有分模块编译,这也是问题所在,因为模块化设计部并不太明白。

我想既然这些问题暴露出来了,我也没必要回避了。

这次设计先搞一段落,放假后才是我追上别人的最好的时间,我将利用这段时间,好好的把这个弱项补回来。

没编程序时感觉难度很大,无从下手。

当耐下心来从头至尾将源代码看了两遍才对程序有个模糊的认识。

在修改程序时,发现有许多不懂和淡忘的地方,回过头来查找相关资料,把问题一个个击破。

并且有些较难理解的语句在不断修改的过程中可以逐渐清晰。

课程设计可以充分发挥我的编程综合能力,将自己的编程知识串联起来,综合利用,自己的编程能力。

很高兴有这个机会促使我编程。

总之,在这个程序设计中的收获还是非常多的。

 

 

附录一:

参考文献

1.谭浩强著.c++程序设计北京.清华大学出版社,2004

2.谭浩强著.c++程序设计题解与上机指导.北京:

清华大学出版社,2005

附录二:

程序清单

#include

#include

#include//定义杂项函数及内存分配函数

#include//定义关于时间的函数

intflag;

classCCard

{

staticintnloop;//出牌的次数,游戏结束时给出的总的出牌次数

intnscore;//总分

intnwin,nlose;

staticintndraw;//赢,输,平的次数

intnbet;//赌注

public:

intncard1,ncard2;//有2张牌

intbet;

CCard();//构造函数

voidsetcard();//随机产生2张牌

intaddbet(int);//增加赌注,失败返回0

friendvoidcompare(CCard&,CCard&);//友元函数,比较牌点的大小并显示结果

friendvoidshowresult(CCard&,CCard&);//友元函数,输出输赢结果及最后的积分

};

intCCard:

:

ndraw=0;

intCCard:

:

nloop=0;

CCard:

:

CCard()

{

nscore=20;

bet=nscore;

nwin=0;

nlose=0;

nbet=0;

}

voidCCard:

:

setcard()

{

//srand(time(NULL));

ncard1=(rand()%13+2);

ncard2=(rand()%13+2);

}

intCCard:

:

addbet(inta)

{

nbet=a;

if(nbet>nscore||nbet<1)

{

return0;

}

return1;

}

voidcompare(CCard&user,CCard&computer)

{

if((user.ncard1+user.ncard2)>(computer.ncard1+computer.ncard2))

{

user.nscore+=computer.nbet;

computer.nscore-=computer.nbet;

user.nloop++;

computer.nloop++;

user.nwin++;

computer.nlose++;

user.bet=user.nscore;

computer.bet=computer.nscore;

if(computer.nscore<=0)

{

showresult(user,computer);

return;

}

cout<<"这局玩家赢"<

}

elseif((user.ncard1+user.ncard2)<(computer.ncard1+computer.ncard2))

{

computer.nscore+=user.nbet;

user.nscore-=user.nbet;

user.nloop++;

computer.nloop++;

computer.nwin++;

user.nlose++;

user.bet=user.nscore;

computer.bet=computer.nscore;

if(user.nscore<=0)

{

showresult(user,computer);

return;

}

cout<<"这局计算机赢"<

}

else

{

cout<<"和局"<

user.nloop++;

computer.ndraw++;

}

}

voidshowresult(CCard&user,CCard&computer)

{

cout<<"---------------游戏结束!

结果:

----------"<

if(user.nscore<=0)cout<<"计算机胜出,玩家要加油咯!

"<

elsecout<<"恭喜玩家胜出,再接再厉!

"<

cout<<"出牌数:

"<

cout<<"玩家积分:

"<

cout<<"玩家胜的次数:

"<

cout<<"玩家负的次数:

"<

cout<<"玩家平的次数:

"<

cout<<"计算机积分:

"<

cout<<"计算机胜的次数:

"<

cout<<"计算机负的次数:

"<

cout<<"计算机平的次数:

"<

cout<<"-----------------------------------------"<

flag=1;

user.nloop=0;

user.ndraw=0;

cout<<"游戏结束,按任意键退出"<

}

 

voidmain()

{

select:

flag=0;

inth,start,bet,cont,sel=1;

charch;

CCarduser,computer;

cout<<"开始游戏请按1"<<""<<"放弃请选0"<

bingin:

if(flag==1)

{system("cls");

gotoselect;

}

cin>>start;

switch(start)

{

case1:

{cout<<"开始发牌,期待一下吧……";

user.setcard();

computer.setcard();

break;

}

case0:

{showresult(user,computer);exit(0);}

}

cout<

cout<<"你的第一张牌是:

"<

if(user.ncard1<=10&&user.ncard1>1)cout<

else

{

switch(user.ncard1)

{

case14:

cout<<"A";

break;

case11:

cout<<"J";

break;

case12:

cout<<"Q";

break;

case13:

cout<<"K";

}

}

cout<

cout<<"是否选择下注:

"<

cin>>cont;

switch(cont)

{

case0:

{sel=0;gotonextplayer;}

}

cout<<"你现在还有"<

bet:

cout<<"请押赌注"<

cin>>bet;

if(bet>5)

{

cout<<"押注请不要超过5哦,重试一下吧"<

gotobet;

}

if(!

(user.addbet(bet)&&computer.addbet(bet)))

{

cout<<"押注要大于0哟,再来一次"<

gotobet;

}

nextplayer:

if(sel==0)

{

switch(computer.ncard1+computer.ncard2)

{

case28:

case27:

case26:

case25:

case24:

bet=5;break;

case23:

case22:

case21:

case20:

case19:

bet=4;break;

case18:

case17:

case16:

case15:

case14:

bet=3;break;

case13:

case12:

bet=2;break;

case11:

case10:

case9:

bet=1;break;;

case8:

case7:

case6:

bet=2;break;

case5:

case4:

case3:

case2:

case1:

bet=1;break;

}

while(!

(user.addbet(bet)&&computer.addbet(bet)))

{bet--;}

cout<<"计算机下注"<

cin>>ch;

switch(ch)

{

case'Y':

case'y':

{

break;}

case'N':

case'n':

{

cout<<"继续游戏请选1,退出游戏请按0"<

sel=1;

gotobingin;

break;

}

}

h=user.addbet(bet);

switch(h)

{

case0:

cout<<"你的剩余赌注已不足,请重新选择!

";gotobet;break;

case1:

break;

}

cout<<"押注成功"<

cout<<"你的第二张牌是:

"<

if(user.ncard2<=10&&user.ncard2>1)cout<

else

{

switch(user.ncard2)

{

case14:

cout<<"A";

break;

case11:

cout<<"J";

break;

case12:

cout<<"Q";

break;

case13:

cout<<"K";

}

}

cout<

cout<<"继续请选1"<

cout<<"放弃请选0"<

cin>>cont;

switch(cont)

{

case1:

{

cout<<"计算机的第一张牌是:

"<

if(computer.ncard1<=10&&computer.ncard1>1)cout<

else

{

switch(computer.ncard1)

{

case14:

cout<<"A";

break;

case11:

cout<<"J";

break;

case12:

cout<<"Q";

break;

case13:

cout<<"K";

}

}

cout<

cout<<"计算机的第二张牌是:

"<

if(computer.ncard2<=10&&computer.ncard2>1)cout<

else

{

switch(computer.ncard2)

{

case14:

cout<<"A";

break;

case11:

cout<<"J";

break;

case12:

cout<<"Q";

break;

case13:

cout<<"K";

}

}

cout<

break;

}

case0:

{

cout<<"重新开始请选1"<

cout<<"不想玩了请选0"<

gotobingin;

break;

}

}

compare(user,computer);

cout<<"重新开始选择1"<

cout<<"不想玩了请选0"<

gotobingin;

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高中教育 > 初中教育

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2