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

游戏流程

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

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;
}

输出结果:
C语言小实战开发——猜数字游戏_第1张图片

你可能感兴趣的:(C语言小实战开发——猜数字游戏)