首页 > 其他分享 >C语言练习--拿球小游戏

C语言练习--拿球小游戏

时间:2023-10-07 19:33:25浏览次数:37  
标签:-- C语言 int 小游戏 choose printf include 拿球

题目:

一共100个球,两人轮流拿,每人每次最多拿5个,最后一个拿的人赢;如果我先拿,怎么拿一定会赢?

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int sc();

int main()
{
    // 设置随机数生成器的种子为当前时间
    srand(time(NULL));
    
    
    int bal = 100;    // 初始化球数量
    int count = 1;    // 计数
    while(1){
        printf("======================【%d】======================\n", count++);
        int choose;    // 玩家选择拿走的球
        //TODO
        int rm = rand() % 5 + 1;    // 模拟人机拿走球的数量
        if(bal<=5){    // 小于最大拿走量则直接拿走全部
            //TODO
            rm = bal;
        }
        bal -= rm;
        printf("【人机】选择拿走【%d】个球,当前剩余【%d】个球\n", rm, bal);
        if(bal <=0){    // 球被拿光后获胜
            //TODO
            printf("【人机】获胜!");
            break;
        }
        printf("【玩家】请选择拿球数量:");
        choose = sc();
        
        bal -= choose;
        printf("【玩家】选择拿走【%d】个球,当前剩余【%d】个球\n",choose, bal);
        if(bal <=0){    // 球被拿光后获胜
            //TODO
            printf("【玩家】获胜!");
            break;
        }
        printf("=================================================\n\n");
    }
    return 0;        
}

int sc(){    // 递归校验玩家拿走数量
    int choose;
    scanf("%d", &choose);
    if(choose>5){
        //TODO
        printf("请输入1-5之间的数字:");
        choose = sc();
    }
    return choose;
}

 

 

 

标签:--,C语言,int,小游戏,choose,printf,include,拿球
From: https://www.cnblogs.com/0099-ymsml/p/17747275.html

相关文章

  • python28days
    面向过程编程面向对象编程类的定义和对象的产生定制对象自己独有的属性属性的查找顺序(类属性,对象属性)—————————————————————————————————————————————————————————————在编程中,面向过程和面向对象是编程的两大......
  • 基于Java的大学生线上心理咨询系统(亮点:在线预约、在线咨询、留言回复)
    (大学生线上心理咨询室系统)三、开发环境与技术3.1MySQL数据库本课题研究研发的应用程序在数据操作过程中是难以预测的,而且常常产生变化。没有办法直接从word里写数据,这不但不安全,并且难以实现应用程序的功能。想要实现运用所需要的数据存放功能,就必定要选择专业的数据库存储软......
  • CentOS环境:离线安装配置gitlab(适用于内网环境)
    前言:  此篇是为了完结真实的物理隔离环境下、验证yum缓存的文件包安装配置是否成功,对上篇在线安装文章的补充。1.互联网电脑环境准备1.1电脑环境配置信息IP:192.168.31.164OS:CentOSLinuxrelease7.9.2009(Core)1.2清除yum的rpm包缓存数据包清除前的数据记录:[root@bdlab......
  • 无涯教程-OC - Pickers函数
    Pickers包含一个旋转的可滚动视图,该视图用于从项目列表中选择一个值。Pickers-重要属性delegatedataSourcePickers-重要方法-(void)reloadAllComponents-(void)reloadComponent:(NSInteger)component-(NSInteger)selectedRowInComponent:(NSInteger)component-(v......
  • ThbinBook16+ Win10 蓝屏崩溃的解决思路
    背景近日,手头的联想笔记本频繁蓝屏重启,严重时一天三次,持续了近一周。错误代码基本均为:DRIVER_IRQL_NOT_LESS_OR_EQUAL​‍笔记本型号:ThinkBook16G4+ARA(21D1)操作系统:Win10排障思路重装驱动首先google和百度检索了一番错误代码,基本都指向驱动问题。‍上官网重新下载......
  • Python 图片管理工具介绍(筛像素+从文件夹取出图片并放到文件夹内+excel读取)
    功能介绍:这是一个Python脚本工具,用于批量管理和复制图片。其主要功能如下:从Excel表格读取数据:程序使用openpyxl库从Excel文件中读取数据,其中A列包含源图片的路径(可以有多个路径,用逗号分隔),B列包含目标目录。图片筛选:仅复制最小维度大于800像素的图片,这可以确保目标目录中的......
  • FastAPI学习-27 使用@app.api_route() 设置多种请求方式
    对同一个访问函数设置多个http请求方式api_route使用使用methods参数设置请求方式fromfastapiimportFastAPIapp=FastAPI()@app.api_route('/demo/b',methods=['get','post'])asyncdefdemo2():return{"msg":"demo2su......
  • 路飞项目需求
    1.企业项目类型1.面向互联网用户:商城类项目-微信小程序商城-线上线下结合2.面向互联网用户:二手交易-闲鱼-转转-交友平台3.公司内部项目,给某些用户定制项目:python写的重点-运维管理,监控平台,资产管理-oa系统-打卡系统工资核......
  • 学习Runnable接口来实现多线程
    1、先创建一个线程类来实现Runable接口 2、跟Thread类的一样照样调用FileUtils文件工具类创建下载器 3、对下载器的形参在线程类中创建属性,用构造方法对属性赋值,并且重写run方法,run方法中实例化下载器 4、实例化Runnable接口并且调用start方法 这里Runnable接口和T......
  • 实验3:OpenFlow协议分析实践 实验4:开源控制器实践——OpenDaylight
    实验3:OpenFlow协议分析实践一、实验目的能够运用wireshark对OpenFlow协议数据交互过程进行抓包;能够借助包解析工具,分析与解释OpenFlow协议的数据包交互过程与机制。二、实验环境Ubuntu21.10三、实验内容搭建拓扑,完成相关IP配置,并连接OpenDaylight控制器,实现主机......