C语言课程设计报告8000211Word格式.docx
- 文档编号:20404969
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:13
- 大小:18.22KB
C语言课程设计报告8000211Word格式.docx
《C语言课程设计报告8000211Word格式.docx》由会员分享,可在线阅读,更多相关《C语言课程设计报告8000211Word格式.docx(13页珍藏版)》请在冰豆网上搜索。
题目名称:
黑白棋游戏设计
选题的目的:
通过该题目的设计,使自己掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能。
分支、循环、数组、函数等的综合运用;
图形处理函数的使用。
时间安排:
6月24号~7月1号
主要参考文献:
1.《C语言程序设计实例精粹》.谭明金.电子工业出版社
2.《C语言编程技巧及实用程序荟萃》.鲁沐浴.电子工业出版社
3.《C语言课程设计案例精选与编程指导》陈清华.东南大学出版社
4.《C语言课程设计案例精编》.郭翠英.中国水利水电出版社
5.《C语言实战105例》.王为青.人民邮电出版社
第2章系统功能需求分析
2、1可行性分析
科技的飞速发展,将人类带入了信息时代,计算机越来越贴近人的生活,速度成为人们成功的前提条件,以致于人们必须不断尝试着使用各种手段来提高自身的工作效率,其手段之一就是对键盘的充分利用和相应游戏软件的开发.智能型的游戏越来越深受广大游戏爱好者的喜欢.方便而快捷.
黑白棋的游戏是要在一个8*8的网格中进行,而数组属于构造体类型,数组是具有相同数据类型的变量序列,序列中的每个变量成为元素,数组元素由一个统一标识的数组名和顺序好“下标”来表示。
顾需要在游戏中定义一个二维数从而实现游戏的走棋、落棋、判断棋盘的变化等。
游戏不同于基于C语言的其他程序(如学生成绩管理系统、教务工作管理系统、图书管理系统等)由于游戏本身的问地就在于缓解压力,所以基于C语言设计的游戏需要一个良好的游戏界面,给游戏者以轻松和愉快的感觉。
TURBOC提供了70多个图形函数,这些函数包括在图形库文件graphics.LIB中,他们被定义在graphics.()*开始画面*
{inti,j;
setbkcolor(BLUE);
for(i=100;
i<
=420;
i+=40)
{
line(100,i,420,i);
line(i,100,i,420);
}
setcolor(0);
*取消圆周围的一圈东西*
setfillstyle(SOLID_FILL,15);
fillellipse(5);
setfillstyle(SOLID_FILL,8);
}
playcolor(intt)*设置棋子第一次的颜色*
{
if(t%2==0)
else
playcolortwo(intxx,intyy)*走了一步后恢复原来那里的格子*
if(yy<
100)
setfillstyle(SOLID_FILL,BLUE);
switch(a[(xx-120)40][(yy-120)40])
case1:
break;
case2:
default:
qipanchange(intxxx,intyyx,intt)*棋盘的变化,也就是黑白的变化*
inti,j,k,kk,ii,jj;
i=(xxx-120)40;
j=(yyx-120)40;
playcolor(t);
if(j<
6)*开始判断变化**往右边*
for(k=j+1;
k<
8;
k++)
if(a[i][k]==a[i][j]||!
a[i][k])
break;
if(a[i][k]&
&
8)
for(kk=j+1;
kk<
k&
kk++)
a[i][kk]=a[i][j];
fillellipse(120+i*40,120+kk*);
if(j>
1)*往左边*
for(k=j-1;
k>
=0;
k--)
=0)
for(kk=j-1;
kk>
kk--)
if(i<
6)*往下*
for(k=i+1;
if(a[k][j]==a[i][j]||!
a[k][j])
if(a[k][j]&
for(kk=i+1;
a[kk][j]=a[i][j];
fillellipse(120+kk*40,120+j*);
if(i>
1)*往上*
for(k=i-1;
for(kk=i-1;
1&
j<
6)*右上*
for(k=i-1,kk=j+1;
=0&
k--,kk++)
if(a[k][kk]==a[i][j]||!
a[k][kk])
if(a[k][kk]&
for(ii=i-1,jj=j+1;
ii>
ii--,jj++)
a[ii][jj]=a[i][j];
fillellipse(120+ii*40,120+jj*);
6&
j>
1)*左下*
for(k=i+1,kk=j-1;
8&
k++,kk--)
for(ii=i+1,jj=j-1;
ii<
ii++,jj--)
1)*左上*
for(k=i-1,kk=j-1;
k--,kk--)
for(ii=i-1,jj=j-1;
ii--,jj--)
6)*右下*
for(k=i+1,kk=j+1;
k++,kk++)
for(ii=i+1,jj=j+1;
ii++,jj++)
doscore()*处理分数*
scorewhite[0]=scorewhite[1]=scoreblack[0]=scoreblack[1]=0;
*重新开始计分数*
for(i=0;
i++)
for(j=0;
j++)
if(a[i][j]==1)*分别统计两个人的分数*
scorewhite[1]++;
if(scorewhite[1]==10)
{scorewhite[1]=0;
scorewhite[0]++;
elseif(a[i][j]==2)
scoreblack[1]++;
if(scoreblack[1]==10)
{scoreblack[1]=0;
scoreblack[0]++;
}
printscore(playnum)*输出成绩*
{inti,j,k;
ints[2];
if(playnum==1)*把分数给这个临时变量*
2;
s[i]=scorewhite[i];
s[i]=scoreblack[i];
if(playnum==1)*清楚以前的成绩*
bar(400);
if(playnum==1)*判断输出的行数*
k=200;
k=300;
setcolor(RED);
settextstyle(0,0,4);
for(i=0,j=550;
i++,j+=40)
switch(s[i])*判断要输出的分数*
case0:
outtextxy(j,k,"
0"
);
1"
2"
case3:
3"
case4:
4"
case5:
5"
case6:
6"
case7:
7"
case8:
8"
case9:
9"
playwin()*输出最后的胜利者结果*
{settextstyle(0,0,4);
setcolor(12);
if(scoreblack[0]>
scorewhite[0])
outtextxy("
blackwin!
"
elseif(scoreblack[0]<
whitewin!
elseif(scoreblack[0]==scorewhite[0])
if(scoreblack[1]==scorewhite[1])
outtextxy(60,50,"
youallwin!
elseif(scoreblack[1]>
scorewhite[1])
elseif(scoreblack[1]<
playtoplay()*人人对战*
{intxx,yy,t=0,sum,i,j;
while
(1)
xx=120,yy=80;
*每次棋子一开始出来的坐标*
printscore
(1);
*输出玩家1的成绩*
printscore
(2);
*输出玩家2的成绩*
fillellipse(xx,yy,15,15);
key=bioskey(0);
sound(100);
nosound();
if(key==ESC)
elseif(key==ENTER)*如果按键确定就可以跳出循环*
if(yy!
=80&
a[(xx-120)40][(yy-120)40]!
=1&
=2)*是否已经有子*
a[(xx-120)40][(yy-120)40]=1;
a[(xx-120)40][(yy-120)40]=2;
qipanchange(xx,yy,t);
*走好一步棋子后屏幕的变化*
doscore();
*分数的改变*
*判断成功就下一个棋子走*
continue;
*不成功就等于白按回车*
elseif(key==LEFT&
xx>
120)*四个方向按键盘的判断*
playcolortwo(xx,yy);
*判断原来位置因为画什么,这里只画蓝色是不完整的*
xx-=40;
elseif(key==RIGHT&
xx<
400&
yy>
80)
xx+=40;
elseif(key==UP&
120)
yy-=40;
elseif(key==DOWN&
yy<
400)
yy+=40;
sum=0;
i++)*判断是否棋子填满*
if(a[i][j]!
sum++;
if(sum==64)
playwin();
*判断胜负*
t++;
if(t==11)*如果t到了11就变成1*
t=1;
main()
{intgd=DETECT,gr;
initgraph(&
gd,&
gr,"
c:
\\tc"
qipan();
*画棋盘*
playtoplay();
*人人对战*
getch();
closegraph();
4.2系统运行测试
第五章.总结
5.1课程设计总结
5.2存在的主要问题及解决办法
参考文献
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 报告 8000211