(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹)

目录

第1关:火柴游戏1

题目:

代码思路:

代码表示:

第2关:火柴游戏2

题目:

代码思路:

代码表示:


第1关:火柴游戏1

题目:

火柴游戏

23 根火柴游戏。请编写一个简单的 23 根火柴游戏程序,实现人跟计算机玩这个游戏的程序。为了方便程序自动评测,假设计算机移动的火柴数不是随机的,而是将剩余的火柴根数对 3 求余后再加1来作为计算机每次取走的火柴数。如果剩余的火柴数小于 3,则将剩余的火柴数减 1 作为计算机移走的火柴数。计算机不可以不取,剩下的火柴数为1时,必须取走 1 根火柴。假设游戏规则如下:

  1. 两个游戏者开始拥有 23 根火柴;

  2. 每个游戏者轮流移走 1 根、2 根或 3 根火柴;

  3. 谁取走最后一根火柴为失败者。

代码思路:

本题只需要根据题目提示,编程出计算机选择的火柴数和结局判定即可,我们可以利用if语句,将计算机选择火柴的数量分为四种情况

1.剩余火柴数量g>=3时,计算机取走火柴数量为c=g%3+1

2.剩余火柴数量g<3&&g>1时,计算机取走火柴数量为c=g-1;

3.剩余火柴数量g==1时,计算机取走火柴数量为c=1;

4.剩余火柴数量g==0时,玩家输了

代码表示:

#include<stdio.h>
int main(void)
{int g = 23;int k = 3;int b, c;printf("这里是23根火柴游戏!!\n");printf("注意:最大移动火柴数目为三根\n");do{printf("请输入您移动的火柴数目:\n");scanf("%d", &b);/*************** Begin ***************/printf("您移动的火柴数目为:%d\n",b);g=g-b;printf("您移动后剩下的火柴数目为:%d\n",g);if(g>=3){c=g%3+1;printf("计算机移动的火柴数目为:%d\n",c);printf("计算机移动后剩下的火柴数目为:%d\n",g-c);g=g-c;}else if (g<3&&g>1){c=g-1;printf("计算机移动的火柴数目为:%d\n",c);printf("计算机移动后剩下的火柴数目为:%d\n",g-c);g=g-c;}else if(g==1){c=1;printf("计算机移动的火柴数目为:%d\n",c);printf("计算机移动后剩下的火柴数目为:%d\n",g-c);g=g-c;printf("恭喜您!您赢了!");}else if(g==0){printf("对不起!您输了!");}/*************** End ***************/}while (g > 0);return 0;
}

第2关:火柴游戏2

题目:

火柴游戏

21 根火柴游戏。现有 21 根火柴,两人轮流取,每人每次可以取 1 至 4 根,不可多取(假如多取或者取走的数量不在合法的范围内,则要求重新输入),也不能不取,谁取最后一根火柴谁输。请编写一个程序进行人机对弈,要求人先取,计算机后取;请设计一种计算机取走火柴的规则,使得计算机一方为常胜将军。

代码思路:

本题难点在于创建随机函数(http://t.csdn.cn/UQ2t7),和上一题一样,可以将剩余火柴数分为两种情况

1.玩家拿完后剩余火柴数a==0,电脑赢

2.电脑拿完后剩余火柴数a==0,玩家赢

代码表示:

#include<stdio.h>
#include<stdlib.h>
int main(void)
{int a = 21, i,k;printf("Game begin:\n");while (a > 0){do{printf("How many sticks do you wish to take (1~%d)?",a > 4 ? 4 : a);scanf("%d", &i);}while (i>4 || i<1 || i>a);/*************** Begin ***************/a = a-i;if(a==0){printf("You have taken the last sticks.\n");printf("***You lose!\n");break;}printf("%d sticks left in the pile.\n",a);srand(0);k=rand()%4-1;printf("Computer take %d sticks.\n",k);a=a-k;if(a==0){printf("Computer have taken the last sticks.\n");printf("***You win!\n");break;}        /*************** End ***************/printf("%d sticks left in the pile.\n", a);}printf("Game Over.");return 0;
}

头歌c语言实训项目-综合案例课外练习:火柴游戏相关推荐

  1. 头歌c语言实训项目-综合案例课外练习:大奖赛现场统分

    (创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 第1关:大奖赛现场统分 题目: 代码思路: 代码表示: 第1关:大奖赛现场统分 题目: 大奖赛现场统分 ...

  2. 头歌c语言实训项目-结构体

    (创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 第1关:结构体变量的初始化和引用: 题目: 代码思路: 代码表示: 第2关:结构体排序 题目: 代码思 ...

  3. 头歌c语言实训作业题解

    头歌c语言实训作业题解 持续更新 C语言程序设计编辑与调试环境 1.打印输出 Hello World 2.打印输出图形 3.求三个数的最大值 4.熟悉C语言调试环境 C语言中最基本的输入输出 1.看看 ...

  4. 头歌MySQL数据库实训答案2022

    答案由本人收集+自己写的,仅作参考,帮助写不完作业的小伙伴 目录 实训1 数据库.表与完整性约束的定义(Create) 实训2 数据库.表与完整性约束的定义(Create) 实训3 基于金融应用的数据 ...

  5. 头歌-信息安全技术-实训04 数据库SQL注入漏洞

    头歌-信息安全技术-实训04 数据库SQL注入漏洞 第一关:获取dvwa环境 任务描述 实验步骤 1. 安装appach 2.安装php 3.修改apache配置文件 4.安装mysql 5.安装dv ...

  6. 头歌MySQL数据库实训答案 有目录

    头歌MySQL数据库答案 特别感谢黄副班.小青提供代码,有问题联系公众号[学思则安]留言更正 其他作业链接 数据库1-MySQL数据定义与操作实战 MySQL数据库 - 初识MySQL MySQL数据 ...

  7. 头歌C++面向对象实训一

    ** C&C++ 面向过程编程综合练习 ** 一.实训目的 熟练以下内容: (1)函数的定义及使用: (2)数组的定义及使用: (3)指针的定义及使用: (4)结构的定义及使用: (5)多文件 ...

  8. R语言实训项目——信用卡客户风险分析

    实训1 处理信用卡数据异常值(数据预处理) (1)读取信用卡数据. #读取数据 credit <- read.csv('F:/R-Project/data/credit_card.csv') ( ...

  9. 头歌C++面向对象实训二

    ** C++ 面向对象 - 类和对象的创建和使用 ** 一.实训目的 1.熟悉C++中类和对象的创建和使用 2.理解C++中的关键字public.protected.private 二.实训内容 1. ...

最新文章

  1. 联想r720内存频率_联想 IdeaPad14s 2020 轻薄本双十一促销
  2. 浅谈协同工作流的分布式应用
  3. 我对Java Serializable(序列化)的理解和总结
  4. html回车按键确认按钮,button默认enter事件(回车事件)。
  5. linux下socket编程-TCP
  6. 【算法微解读】浅谈线段树
  7. 多用继承 android,Android温习之路之继承
  8. 【转】C#进阶系列——WebApi 接口参数不再困惑:传参详解
  9. linux系统下载r软件安装,在Linux系统安装R
  10. mint-ui之toast使用(messagebox,indicator同理)
  11. 将字符串中的html标签编译,将字符串中的HTML标签包含的内容移除
  12. 逻辑删除用户后 用户名重复怎么办?
  13. 中小企业如何搭建数据分析平台?
  14. 06.大厂面试题:请讲下SpringBoot的日志框架原理
  15. SSH和SSM两个框架的浅显的区别
  16. ruby通过ftp下载文件
  17. python画玫瑰图_python windrose(风玫瑰图)
  18. cwRsync实现windows server文件定时自动同步
  19. cmake的使用(cmake不是内部或外部命令)
  20. 华为交换机sftp 配置

热门文章

  1. 平衡小车制作系列之三——stm32软件调试
  2. cancelBubble 和 preventDefault
  3. HTML实现炫酷的流星雨
  4. 海思Hi3516C V500R001C02SPC002-sdk完整开发包
  5. 基于人工智能图像识别的智能音响:未来智能生活的核心技术
  6. 07---布儒斯特角
  7. jQuery的简单特效
  8. 20个最值得一读的科技名言
  9. Python GUI之tkinter窗口视窗教程
  10. vue如何使用mockjs摸拟接口数据