您可能感兴趣的话题:

C语言

核心提示:设有n座山,计算机与人为比赛的双方,轮流搬山。规定每次搬山的数止不能超 过k座,谁搬最后一座谁输。

设有n座山,计算机与人为比赛的双方,轮流搬山。规定每次搬山的数止不能超 过k座,谁搬最后一座谁输。游戏开始时。计算机请人输入山的总数(n)和每次允许搬山的最大数止(k)。然后请人开始,等人输入了需要搬走的山的数目后,计算机马上打印出它搬多少座山,并提示尚余多少座山。双方轮流搬山直到最后一座山搬完为止。计算机会显示谁是赢家,并问人是否要继续比赛。若人不想玩了,计算机便会统计出共玩了几局,双方胜负如何。

*问题分析与算法设计

计算机参加游戏时应遵循下列原则:

1) 当:

剩余山数目-1<=可移动的最大数k 时计算机要移(剩余山数目-1)座,以便将最后一座山留给人。

2)对于任意正整数x,y,一定有:

0<=x%(y+1)<=y

在有n座山的情况下,计算机为了将最后一座山留给人,而且又要控制每次搬山的数目不超过最大数k,它应搬山的数目要满足下列关系:

(n-1)%(k+1)

如果算出结果为0,即整除无余数,则规定只搬1座山,以防止冒进后发生问题。

按照这样的规律,可编写出游戏程序如下:

#include

int main()

{

int n,k,x,y,cc,pc,g;

printf("More Mountain Game\n");

printf("Game Begin\n");

pc=cc=0;

g=1;

for(;;)

{

printf("No.%2d game \n",g++);

printf("---------------------------------------\n");

printf("How many mpuntains are there?");

scanf("%d",&n);

if(!n) break;

printf("How many mountains are allowed to each time?");

do{

scanf("%d",&k);

if(k>n||k<1) printf("Repeat again!\n");

}while(k>n||k<1);

do{

printf("How many mountains do you wish movw away?");

scanf("%d",&x);

if(x<1||x>k||x>n) /*判断搬山数是否符合要求*/

{

printf("IIIegal,again please!\n");

continue;

}

n-=x;

printf("There are %d mountains left now.\n",n);

if(!n)

{

printf("...............I win. You are failure...............\n\n");cc++;

}

else

{

y=(n-1)%(k+1); /*求出最佳搬山数*/

if(!y) y=1;

n-=y;

printf("Copmputer move %d mountains away.\n",y);

if(n) printf(" There are %d mountains left now.\n",n);

else

{

printf("...............I am failure. You win..................\n\n");

pc++;

}

}

}while(n);

}

printf("Games in total have been played %d.\n",cc+pc);

printf("You score is win %d,lose %d.\n",pc,cc);

printf("My score is win %d,lose %d.\n",cc,pc);

}

c语言搬山游戏,C语言实例:搬山游戏相关推荐

  1. 《Genesis-3D开源游戏引擎完整实例教程-跑酷游戏篇:简介及目录》(附上完整工程文件)...

    2019独角兽企业重金招聘Python工程师标准>>> 跑酷游戏制作 游戏类型: 此游戏Demo,为跑酷类游戏. 框架简介: 游戏通常由程序代码和资源组成.如果说模型.贴图.声音之类 ...

  2. 计算机游戏设计师要学什么,电脑游戏设计要学什么?电脑游戏设计的相关信息介绍...

    现如今游戏设计行业火热,吸引来社会各界人士的关注,也不乏有多数人想要进入游戏设计行业,但是又不足够了解游戏设计,不知道电脑游戏设计要学什么,下面小编给你介绍电脑游戏设计要学什么的有关内容. 一款游戏的 ...

  3. c语言做搬山游戏,C语言实现搬山小游戏,适合新手的项目实战,超易上手!

    原标题:C语言实现搬山小游戏,适合新手的项目实战,超易上手! 问题描述 设有n座山,计算机与人作为比赛的双方,轮流搬山.规定每次搬山数不能超过k座,谁搬最后一座谁输. 游戏开始时,计算机请人输入山的总 ...

  4. c语言搬山游戏,C语言实现搬山游戏代码解析

    问题描述 设有n座山,计算机与人作为比赛的双方,轮流搬山.规定每次搬山数不能超过k座,谁搬最后一座淮输.游戏开始时,计算机请人输入山的总数n和每次允许搬山的最大数k,然后请人开始,等人输入了需要搬走的 ...

  5. c语言程序设计中三子棋游戏,C语言实现简易版三子棋游戏

    本文实例为大家共享了C语言实现三子棋游戏的详细代码,供大家参考,详细内容如下 什么是多文件? 多数大型的工程的头文件和源文件非常多,我们也不可能把所有的代码都写在同一个文件里,这样也不方便代码的阅读与 ...

  6. 使用Dart/Flutter语言开发的命令行文字RPG类型小游戏

    使用Dart/Flutter语言开发的命令行文字RPG类型小游戏 项目源码:https://gitee.com/FantasyWind/word_game 介绍 项目背景 本项目为使用Dart/Flu ...

  7. 做游戏,学编程(C语言)教材《C语言课程设计与游戏开发实践教程》出版了...

    经过半年多的写作.修改.校样.印制,我们的实践教材<C语言课程设计与游戏开发实践教程>终于出版了.这本书可以看成是"做游戏,学编程(C语言)专栏"的详细版本,以下为书中 ...

  8. stg游戏c语言,坦克大战改版

    <坦克大战改>是一款国内玩家模仿FC经典游戏坦克大战所自制的小游戏,游戏中玩家将会控制坦克保卫基地,一旦基地失守关卡就会失败.游戏支持手柄震动 ,同时包含有关卡编辑器,让玩家能够自由编辑关 ...

  9. 用C语言扩展Python的功能的实例

    用C语言扩展Python的功能的实例 分类: C/C++ 编程技巧 Programes 2008-04-23 09:31 1232人阅读 评论(0)收藏 举报 python扩展语言cmethodsnu ...

  10. c语言程序链接过程,C语言简明教程(二):C程序编译链接过程和实例对照详解...

    不像高级编程语言,在C语言开发中,了解其编译链接过程显得相对重要,因为C语言是较为底层的语言,很多时候我们调试C程序或者解决其它问题都可能会涉及到C编译链接的相关知识,例如编译动态库或者静态库.下面我 ...

最新文章

  1. 玉林财经学校计算机及应用课程,广西玉林财经学校
  2. Matlab实用程序--图形应用-图形的叠加
  3. IFRAME jquery 获取document对象
  4. 集群节点间的延迟问题
  5. 第5篇K8S创建资源的两种方式
  6. html5拖动的面板 panel,基于jQuery UI的Bootstrap Panel面板功能增强插件
  7. HackRF 无线门铃信号录制与重放
  8. 解决Visual Studio 2008 下,打开.dbml(LINQ) 文件时,提示The operation could not be completed. 的问题。...
  9. Python笔记16-------类
  10. Effective C++条款05:了解C++默默编写并调用哪些函数
  11. windows中squid更改默认安装路径配置说明
  12. winform textbox提示历史记录
  13. php优缺点ppt,ppt和pdf有什么区别
  14. 从零搭建与好友“一起看王心凌《爱你》MV”功能
  15. adb shell 获取手机分辨率
  16. thinkphp使用dompdf导出pdf(html转pdf)
  17. 游戏攻略 Re:LieF ~親愛なるあなたへ~ (relief给挚爱的你)
  18. 弘辽电商主题四:淘宝店遇到恶意敲诈怎么办?客服应该如何应对?
  19. 建立桌面文件管理格子_告别混乱!5分钟get电脑桌面整理术!
  20. java 项目 预警_java开发中的常见代码黄线预警

热门文章

  1. 蚂蚁算法python_蚁群算法python编程实现
  2. /Users/xxxx/.zshrc:export:101: not valid in this context: /Users/xxxx/xxxx
  3. 视觉Transformer综述
  4. Maya Mental Ray焦散效果
  5. 判断两个单词是否互为变位词
  6. idea windows找不到文件chrome
  7. Nginx如何跳转到非443端口的https
  8. SOFA Weekly | SOFAJRaft 发布、SOFAJRaft 源码解析文章合集
  9. Ubuntu下如何获取usb相机的PID/VID并打开指定的相机
  10. 决战618!摩杜云爆款秒杀,最低一年3.3元起