C语言小实战开发——猜数字游戏

游戏流程

  • 随机产生4个:1-9 不重复,从小到大排好序的数
  • 玩家从终端输入猜测的数字
  • 用A和B来提示
    A:数字和位置都正确
    B:数字和位置都不正确
    限制次数最多不超过十次
#include <stdio.h>
#include <stdlib.h> 
#include <time.h>

int main(int argc, const char * argv[]) {
    int org[4] = {};//保存随机数
    int input[4] = {};//保存用户输入
    int aCount = 0;
    int bCount = 0;
    
    //播种子
    srand(time(NULL));
    //产生随机数
    for(int i = 0; i < 4; i++){
        int temp = rand()%9 + 1;
        
        if (i == 0) {
            //第一次 直接保存
            org[i] = temp;
        } else{
            //判断是否重复
            //i正好和当前已有个数对应
            int j = 0;
            for(; j < i; j++){
                if (temp == org[j]) {
                    //重复了
                    break;
                }
            }
            
            //判断for循环怎么出来的额
            if (i == j) {
                //不重复 保存
                org[i] = temp;
            }else{
                //重复了
                i--;
            }
        }
    }
    
    //排序 冒泡 选择 插入
    //冒泡排序
    for (int i = 0; i < 4-1; i++){
        for(int j = 0; j < 4 - i-1; j++){
            if (org[j] > org[j+1]) {
                int temp = org[j];
                org[j] = org[j+1];
                org[j+1] = temp;
            }
        }
    }
    
//    for(int i = 0; i < 4; i++){
//        printf("%d ", org[i]);
//    }
    
    //开始游戏
    while(1){
        //提示输入
        printf("请输入猜测的数字:");
        for (int i = 0; i < 4; i++) {
            scanf("%d", &input[i]);
        }
        
        //开始
        //1 5 8 9
        //1 2 3 5
        for (int i = 0; i < 4; i++) {
            for (int j = 0; j < 4; j++) {
                if (org[i] == input[j]) {
                    //数字存在 判断位置
                    if (i == j){
                        aCount++;
                    }else{
                        bCount++;
                    }
                }
            }
        }
        
        //提示用户结果
        printf("%dA%dB\n", aCount, bCount);
        
        //判断是否正确
        if( aCount == 4){
            printf("全对!!!!\n");
            break;
        }else{
            aCount = 0;
            bCount = 0;
        }
    }
    return 0;
}

输出结果:
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 专业考题类型管理运行工作负责人一般作业考题内容选项A选项B选项C选项D选项E选项F正确答案 变电单选GYSZ本规程...
    小白兔去钓鱼阅读 10,557评论 0 13
  • 目的: 学习用c语言写一个猜数字游戏的demo,练习使用c语言里的for,while循环,数组,排序方法等,加强对...
    yuan_hh阅读 664评论 0 0
  • 游戏简述系统随机产生4个0~9不相同的数字,从小到大排序,玩家从终端输入4个从小到大排好序的不相同数字,如果数字相...
    凌云struggle阅读 401评论 0 1
  • 背景:妈妈和丫头盘腿坐在客厅的地上,旁边放着几样的玩具,有玩具小熊,有超级飞侠,有塑料拼装积木。 丫头:妈妈,我们...
    张瓓阅读 342评论 0 0
  • 国民糖果马大姐邀千余名合作伙伴,观摩智能化生产基地,歌唱祖国共庆70华诞 2019年7月30日,我国糖果行业规模化...
    视界就是世界阅读 531评论 0 0

友情链接更多精彩内容