1、 南京理工大学南京理工大学 VCVC课程设计报告课程设计报告 课课 程:程:VC+课程设计课程设计 系系 别别:计算机计算机科学与工程科学与工程学院学院 班班 级:级: 学学 号:号: 姓姓 名名: 选题选题 1 名称:名称: 对抗游戏对抗游戏 选题选题 1 难易级别:难易级别:B 级级 自报成绩自报成绩:80 起止时间:起止时间:2012 年年 9 月月 15 号到号到 2012 年年 10 月月 19 号号 指导教师:指导教师: 张宏张宏 日期: 2012 年 10 月 19 日 2 对抗游戏对抗游戏 一一 课题目标课题目标 1.1 程序功能简介 一个对抗游戏,根据随机产生的数字决定双方的
2、输赢。 1.2 课程设计要求 (1)当双方进行对抗时,游戏者可据自身的牌点决定是否继续下注,例如拿到 A,把握增大,则在计算机的牌点出来之前加大赌注,但不超过 5 点。 (2)将对方牌点的比较扩大为两张牌点之和,若出现一组对子,则对子牌点大于 任何单牌,若双方均为对子,则比较牌点之和。 1.3 评定难易级别:B 级 二二 具体实现具体实现 2.1 程序总体方案程序总体方案 2.1.1 开发平台 操作系统:Windows 7 开发工具:VC+6.0 2.1.2 程序结构或流程图 3 2.2 所做改进所做改进 2.2.1 改进一 2.2.1.1 改进方案 该程序只允许在玩家牌好的情况下加注,当玩家
3、选择不加注时,通过添加一 些函数,计算机选择是否加注(当计算机第一张牌为 1-5 时,计算机选择退出,则 该局游戏结束;当计算机的第一张牌为 6-10 时,计算机加注为 1,继续游戏;当 计算机的第一张牌为“J” “Q” “K” “A”中的一张时,计算机加注为 2,继续游戏) 。 2.2.1.2 具体实现 int War:Judge(inty=0;coutn;break; case 6: case 7: case 8: case 9: case 10: cout“加注金额:“1;y=1;coutn; else cout“加注金额:“2;y=2;coutn; return y; 2.2.2 改进
4、二 2.2.2.1 改进方案 自己制定比较规则,先判断是否是对子,对子最大(若都为对子,则比较和 大的为大) ,再判断是否是顺子(都为顺子,则判断和大的为大) ,最后判断和值 大小。 2.2.2.2 具体实现 void Compare(War int i,j,m,n,p,q,s,w; i=A.PLAYER(),j=B.PLAYER(),m=A.COMP(),n=B.COMP(); p=i-j; q=m-n; s=i+j; w=m+n; if(i=jd=y+1; else if(i!=jd=y+1; else if(sw)cout“悲剧了,电脑的对子大!n“;d=-y; elsecout“双方势均力敌!n“;d=0; else if if(p=1|p=-1)d=y