计算思维报告.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

课程实验报告

课程名称:计算思维

专业班级:

学号:

姓名:

指导教师:

报告日期:

计算机科学与技术学院

目录

实验用c语言编写米子棋......................1

1.1实验目的与内容.......................1

1.2实验原理与方案.......................1

1.3实验测试与结果.......................1

实验总结与评价..........................2

附录实验源程序代码清单.......................3

14-

1实验用c语言编写米子棋

实验目的与内容

目的:学会使用计算思维相关知识解决具体问题,并从中体会它的运用。

内容:用c语言编写一个“米字棋”程序,要求如下:(1)双人游戏,玩家与计算机轮流走棋,每次选一个可以移动的位置走棋,每次只能横向或竖向走一步;(2)一方棋子在某对角线成一条直线就算赢;(3)棋盘可用矩阵标示。

实验原理与方案

原理:使用数组表现棋局,利用枚举法编写计算机下棋算法。

方案:(1)利用“自顶向下,逐步求精”的结构化程序设计思路,将程序分成四个部分:主体部分,打印棋局部分,玩家下棋部分,计算机下棋部分。

(2)利用数组记录棋局,根据数组不同的值打印出相应的棋子或空处,再加上利用循环结构打印的棋盘,最后达到将棋局可视化的目的。

(3)利用数组记录棋局,通过使数组的值做出与玩家输入的值相对应的变化并记录这种变化的方式,达到记录玩家的走棋。

(4)利用对下棋策略的枚举设计计算机下棋的算法,使计算机以非完全随机的拥有一定胜率的方式做出“下棋”操作,同样地,使用数组记录棋局。

(5)将其余三个部分在主体部分中联接,并在其中设计了判断胜负的代码,最终实现了实验的要求。

1.3实验测试与结果

测试结果如图一图二所示:

图一图二

实验总结与评价

棋局得到了良好的体现,达到了可视化的目的。计算机也以原先的目标进行“下棋”操作。但是计算机的”智能“还有待提高。总的来说,较成功地完成了实验内容和要求,但在算法特别是计算机下棋方面还有改进的余地。

附录实验源程序代码清单

#includestdio.h

#includestdlib.h

#includemath.h

#includetime.h

voidprint_whole(chara[3][3]);

voidstep(charp[3][3]);

intmachine_o(chara[3][3]);

intmain(void)

{

charnine[3][3];

inti;

for(i=0;i3;i++)

nine[0][i]=X;

for(i=0;i3;i++)

nine[1][i]=;

for(i=0;i3;i++)

nine[2][i]=O;

print_whole(nine);

printf(start!(UjustcontrolX)\n);//开始走棋

while(!((nine[0][0]==nine[1][1])(nine[1][1]==nine[2][2])nine[1][1]!=)!((nine[0][2]==nine[1][1])(nine[1][1]==nine[2][0])nine[1][1]!=))

{

step(nine);

system(cls);

print_whole(nine);

if(((nine[0][0]==nine[1][1])(nine[1][1]==nine[2][2])nine[1][1]!=)||((nine[0][2]==nine[1][1])(nine[1][1]==nine[2][0])nine[1][1]!=))

{

printf(youwin!\n\n\n\n);

return0;

}

printf(\nnowitsturnformachine!\n);

if(machine_o(nine))

{

文档评论(0)

wendangku + 关注
实名认证
文档贡献者

最新文档哦

1亿VIP精品文档

相关文档