c语言搬山游戏,C语言实例:搬山游戏
您可能感兴趣的话题:
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语言实例:搬山游戏相关推荐
- 《Genesis-3D开源游戏引擎完整实例教程-跑酷游戏篇:简介及目录》(附上完整工程文件)...
2019独角兽企业重金招聘Python工程师标准>>> 跑酷游戏制作 游戏类型: 此游戏Demo,为跑酷类游戏. 框架简介: 游戏通常由程序代码和资源组成.如果说模型.贴图.声音之类 ...
- 计算机游戏设计师要学什么,电脑游戏设计要学什么?电脑游戏设计的相关信息介绍...
现如今游戏设计行业火热,吸引来社会各界人士的关注,也不乏有多数人想要进入游戏设计行业,但是又不足够了解游戏设计,不知道电脑游戏设计要学什么,下面小编给你介绍电脑游戏设计要学什么的有关内容. 一款游戏的 ...
- c语言做搬山游戏,C语言实现搬山小游戏,适合新手的项目实战,超易上手!
原标题:C语言实现搬山小游戏,适合新手的项目实战,超易上手! 问题描述 设有n座山,计算机与人作为比赛的双方,轮流搬山.规定每次搬山数不能超过k座,谁搬最后一座谁输. 游戏开始时,计算机请人输入山的总 ...
- c语言搬山游戏,C语言实现搬山游戏代码解析
问题描述 设有n座山,计算机与人作为比赛的双方,轮流搬山.规定每次搬山数不能超过k座,谁搬最后一座淮输.游戏开始时,计算机请人输入山的总数n和每次允许搬山的最大数k,然后请人开始,等人输入了需要搬走的 ...
- c语言程序设计中三子棋游戏,C语言实现简易版三子棋游戏
本文实例为大家共享了C语言实现三子棋游戏的详细代码,供大家参考,详细内容如下 什么是多文件? 多数大型的工程的头文件和源文件非常多,我们也不可能把所有的代码都写在同一个文件里,这样也不方便代码的阅读与 ...
- 使用Dart/Flutter语言开发的命令行文字RPG类型小游戏
使用Dart/Flutter语言开发的命令行文字RPG类型小游戏 项目源码:https://gitee.com/FantasyWind/word_game 介绍 项目背景 本项目为使用Dart/Flu ...
- 做游戏,学编程(C语言)教材《C语言课程设计与游戏开发实践教程》出版了...
经过半年多的写作.修改.校样.印制,我们的实践教材<C语言课程设计与游戏开发实践教程>终于出版了.这本书可以看成是"做游戏,学编程(C语言)专栏"的详细版本,以下为书中 ...
- stg游戏c语言,坦克大战改版
<坦克大战改>是一款国内玩家模仿FC经典游戏坦克大战所自制的小游戏,游戏中玩家将会控制坦克保卫基地,一旦基地失守关卡就会失败.游戏支持手柄震动 ,同时包含有关卡编辑器,让玩家能够自由编辑关 ...
- 用C语言扩展Python的功能的实例
用C语言扩展Python的功能的实例 分类: C/C++ 编程技巧 Programes 2008-04-23 09:31 1232人阅读 评论(0)收藏 举报 python扩展语言cmethodsnu ...
- c语言程序链接过程,C语言简明教程(二):C程序编译链接过程和实例对照详解...
不像高级编程语言,在C语言开发中,了解其编译链接过程显得相对重要,因为C语言是较为底层的语言,很多时候我们调试C程序或者解决其它问题都可能会涉及到C编译链接的相关知识,例如编译动态库或者静态库.下面我 ...
最新文章
- 玉林财经学校计算机及应用课程,广西玉林财经学校
- Matlab实用程序--图形应用-图形的叠加
- IFRAME jquery 获取document对象
- 集群节点间的延迟问题
- 第5篇K8S创建资源的两种方式
- html5拖动的面板 panel,基于jQuery UI的Bootstrap Panel面板功能增强插件
- HackRF 无线门铃信号录制与重放
- 解决Visual Studio 2008 下,打开.dbml(LINQ) 文件时,提示The operation could not be completed. 的问题。...
- Python笔记16-------类
- Effective C++条款05:了解C++默默编写并调用哪些函数
- windows中squid更改默认安装路径配置说明
- winform textbox提示历史记录
- php优缺点ppt,ppt和pdf有什么区别
- 从零搭建与好友“一起看王心凌《爱你》MV”功能
- adb shell 获取手机分辨率
- thinkphp使用dompdf导出pdf(html转pdf)
- 游戏攻略 Re:LieF ~親愛なるあなたへ~ (relief给挚爱的你)
- 弘辽电商主题四:淘宝店遇到恶意敲诈怎么办?客服应该如何应对?
- 建立桌面文件管理格子_告别混乱!5分钟get电脑桌面整理术!
- java 项目 预警_java开发中的常见代码黄线预警
热门文章
- 蚂蚁算法python_蚁群算法python编程实现
- /Users/xxxx/.zshrc:export:101: not valid in this context: /Users/xxxx/xxxx
- 视觉Transformer综述
- Maya Mental Ray焦散效果
- 判断两个单词是否互为变位词
- idea windows找不到文件chrome
- Nginx如何跳转到非443端口的https
- SOFA Weekly | SOFAJRaft 发布、SOFAJRaft 源码解析文章合集
- Ubuntu下如何获取usb相机的PID/VID并打开指定的相机
- 决战618!摩杜云爆款秒杀,最低一年3.3元起