C语言简单游戏规则编程

游戏规则:ABCD1A>B: A<C: A>D2B>C: B>D3C<D:

由玩家输入四个数字代表ABCD 系统生成四个随机数与其判定 由四次比赛 最终输出游戏结果

“Devil组”引证GPT后的撰写:

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

int main()
{
    int A, B, C, D; // 存储玩家输入的四个数字
    int a, b, c, d; // 存储系统生成的四个随机数字
    int guess_count = 0; // 记录猜测的次数
    int A_count = 0, B_count = 0, C_count = 0, D_count = 0; // 记录猜中数字的个数

    srand(time(NULL)); // 设置随机数种子,使用系统时间来生成随机数

    // 生成四个随机数
    a = rand() % 10;
    b = rand() % 10;
    c = rand() % 10;
    d = rand() % 10;

    printf("游戏开始!\n");

    // 进行四次比赛
    while (guess_count < 4)
    {
        printf("请输入四个数字,用空格分隔:");
        scanf("%d %d %d %d", &A, &B, &C, &D);
        guess_count++;

        // 检查每个数字是否猜中
        if (A == a)
        {
            A_count++;
        }
        else if (A == b || A == c || A == d)
        {
            B_count++;
        }
        else
        {
            C_count++;
        }

        if (B == b)
        {
            A_count++;
        }
        else if (B == a || B == c || B == d)
        {
            B_count++;
        }
        else
        {
            C_count++;
        }

        if (C == c)
        {
            A_count++;
        }
        else if (C == a || C == b || C == d)
        {
            B_count++;
        }
        else
        {
            C_count++;
        }

        if (D == d)
        {
            A_count++;
        }
        else if (D == a || D == b || D == c)
        {
            B_count++;
        }
        else
        {
            C_count++;
        }

        // 输出猜测结果
        printf("%dA%dB%dC%dD\n", A_count, B_count, C_count, D_count);

        // 判断是否猜中所有数字
        if (A_count == 4)
        {
            printf("恭喜你,猜中了所有数字!\n");
            return 0;
        }

        // 重置数字个数计数器
        A_count = 0;
        B_count = 0;
        C_count = 0;
        D_count = 0;
    }

    // 如果没有猜中所有数字,则输出系统生成的数字
    printf("很遗憾,你没有在规定次数内猜中所有数字,系统生成的数字是:%d %d %d %d\n", a, b, c, d);

    return 0;
}

这个程序会先生成四个随机数,然后要求玩家输入四个数字,分别与随机数进行比较,输出每个数字猜中的情况

参考GPT和自己的思路:以下是用C语言编写的一个简单的游戏规则程序,可以实现上述的游戏规则。其中,使用了rand()函数来生成系统的随机数,使用了scanf()函数来获取玩家输入的数字,使用了if语句来进行条件判断,最终输出游戏结果。

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

int main()
{
    int a, b, c, d;   // 玩家输入的四个数字
    int sys_a, sys_b, sys_c, sys_d;   // 系统生成的四个随机数字

    // 初始化随机数种子
    srand(time(NULL));

    // 生成系统的四个随机数字
    sys_a = rand() % 10;
    sys_b = rand() % 10;
    sys_c = rand() % 10;
    sys_d = rand() % 10;

    // 获取玩家输入的四个数字
    printf("请输入四个数字,以空格分隔:\n");
    scanf("%d %d %d %d", &a, &b, &c, &d);

    // 根据游戏规则进行比较
    if ((a > b && a < c && a > d) && (b < c && b < d) && (c < d)) {
        printf("你赢了!\n");
    } else {
        printf("你输了!\n");
    }

    // 输出系统生成的随机数字
    printf("系统生成的四个数字为:%d %d %d %d\n", sys_a, sys_b, sys_c, sys_d);

    return 0;
}


注意,这只是一个简单的示例程序,实际的游戏规则可能更加复杂。在实现游戏规则时,需要根据具体的要求进行编程。

该回答引用CHATGPT,以下是一个C语言程序的示例,可以实现你所描述的猜数字游戏:

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

// 生成四个随机数
void generate_numbers(int *numbers) {
    int i, j, num;
    srand(time(NULL));
    for (i = 0; i < 4; i++) {
        do {
            num = rand() % 10;
            for (j = 0; j < i; j++) {
                if (numbers[j] == num) {
                    break;
                }
            }
        } while (j < i);
        numbers[i] = num;
    }
}

// 判断玩家输入的数字是否与系统生成的数字相同
void check_numbers(int *numbers, int *guess, int *result) {
    int i, j;
    result[0] = result[1] = 0;
    for (i = 0; i < 4; i++) {
        if (numbers[i] == guess[i]) {
            result[0]++;
        } else {
            for (j = 0; j < 4; j++) {
                if (numbers[i] == guess[j]) {
                    result[1]++;
                    break;
                }
            }
        }
    }
}

// 主函数
int main() {
    int numbers[4], guess[4], result[2], i;
    generate_numbers(numbers);
    printf("系统已生成四个数字,请开始猜测!\n");
    for (i = 0; i < 4; i++) {
        printf("请输入四个数字(0-9之间,不重复):");
        scanf("%1d%1d%1d%1d", &guess[0], &guess[1], &guess[2], &guess[3]);
        check_numbers(numbers, guess, result);
        printf("第%d次猜测结果:%dA%dB\n", i+1, result[0], result[1]);
        if (result[0] == 4) {
            printf("恭喜你,猜对了!\n");
            break;
        }
    }
    if (i == 4) {
        printf("很遗憾,你没有在规定次数内猜对。正确答案是:%d%d%d%d\n", numbers[0], numbers[1], numbers[2], numbers[3]);
    }
    return 0;
}

该回答引用GPTᴼᴾᴱᴺᴬᴵ
下面是一个用C语言编写的简单游戏规则程序,满足您的需求。该程序要求用户输入四个数字作为ABCD,并随机生成四个数字进行比较。每次比较后,程序将输出判断结果,最后输出游戏的最终结果。代码如下:

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

int main()
{
    int a, b, c, d;
    int ra, rb, rc, rd;
    int count = 0;

    srand(time(0));  // 用当前时间初始化随机数生成器

    // 生成四个随机数
    ra = rand() % 10;
    rb = rand() % 10;
    rc = rand() % 10;
    rd = rand() % 10;

    while (1)
    {
        printf("请输入四个数字(A, B, C, D):\n");
        scanf("%d %d %d %d", &a, &b, &c, &d);

        count++; // 记录比赛次数

        // 判断游戏是否结束
        if (a == ra && b == rb && c == rc && d == rd)
        {
            printf("恭喜你,猜对了!\n");
            printf("你一共猜了 %d 次。\n", count);
            break;
        }

        // 输出判断结果
        printf("第 %d 次比赛结果:\n", count);
        if (a > b && a < c && a > d)
        {
            printf("A > B, A < C, A > D\n");
        }
        else if (b > c && b > d)
        {
            printf("B > C, B > D\n");
        }
        else if (c < d)
        {
            printf("C < D\n");
        }
        else
        {
            printf("没有符合条件的判断。\n");
        }
    }

    return 0;
}


程序中使用了随机数生成器来生成四个随机数。每次比赛后,程序会输出判断结果,并记录比赛次数。当用户猜对后,程序会输出猜对的信息和比赛次数,并退出游戏。

参考GPT的回答和自己的思路,以下是一个简单的用C语言编写游戏规则的示例:

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

int main()
{
    int a, b, c, d; // 玩家输入的四个数字
    int rand_a, rand_b, rand_c, rand_d; // 系统生成的四个随机数字
    int count = 0; // 计数器,记录比赛次数

    // 设置随机数种子
    srand(time(NULL));

    // 生成四个随机数字
    rand_a = rand() % 10 + 1; // 生成1~10之间的随机数
    rand_b = rand() % 10 + 1;
    rand_c = rand() % 10 + 1;
    rand_d = rand() % 10 + 1;

    // 读取玩家输入
    printf("请输入四个数字(1~10之间):\n");
    scanf("%d %d %d %d", &a, &b, &c, &d);

    // 进行四次比赛,并输出比赛结果
    if (a > b && a < c && a > d)
    {
        printf("A 比赛胜利!\n");
        count++;
    }
    if (b > c && b > d)
    {
        printf("B 比赛胜利!\n");
        count++;
    }
    if (c < d)
    {
        printf("C 比赛胜利!\n");
        count++;
    }
    if (rand_a > rand_b && rand_a < rand_c && rand_a > rand_d)
    {
        printf("系统中的 A 比赛胜利!\n");
        count++;
    }
    if (rand_b > rand_c && rand_b > rand_d)
    {
        printf("系统中的 B 比赛胜利!\n");
        count++;
    }
    if (rand_c < rand_d)
    {
        printf("系统中的 C 比赛胜利!\n");
        count++;
    }

    // 输出比赛结果
    if (count > 3)
    {
        printf("你赢了!\n");
    }
    else
    {
        printf("你输了!\n");
    }

    return 0;
}


这个程序会首先生成四个随机数字,并提示玩家输入四个数字。接着程序会根据游戏规则进行四次比赛,每次比赛都会判断胜利者并记录比赛次数。最后程序会根据比赛次数输出游戏结果。注意,这个程序仅仅是一个示例,实际的游戏规则可能更加复杂,需要根据实际情况进行修改和完善。

回答不易,还请采纳!!!

以下答案由GPT-3.5大模型与博主波罗歌共同编写:
实现过程如下:

  1. 生成系统随机数,需要用到 srand() 和 rand() 函数,需要包含 stdlib.h 头文件

  2. 玩家输入四个数字,需要用到 scanf() 函数,需要包含 stdio.h 头文件

  3. 进行四次比赛,每次比较两个数大小关系,进行相应的操作

  4. 输出游戏结果

注:由于不能直接比较四个数字的大小关系,需要逐个比较,可以逐个比较的写法如下:

if (A > B && A < C && A > D) {
    // A 的情况 
} else if (B > A && B < C && B > D) {
    // B 的情况 
} else if (C > B && C < D) {
    // C 的情况 
} else {
    // D 的情况 
}

完整代码如下:

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

int main() {
    int A, B, C, D; // 玩家输入的四个数字
    int a, b, c, d; // 系统生成的随机数
    srand(time(NULL)); // 初始化系统随机数种子
    a = rand() % 10;
    b = rand() % 10;
    c = rand() % 10;
    d = rand() % 10;
    printf("系统生成的随机数为:%d %d %d %d\n", a, b, c, d);
    printf("请输入四个数字:\n");
    scanf("%d%d%d%d", &A, &B, &C, &D);
    if (A > b && A < c && A > d) {
        printf("A 胜出!\n");
    } else if (B > a && B < c && B > d) {
        printf("B 胜出!\n");
    } else if (C > b && C < d) {
        printf("C 胜出!\n");
    } else {
        printf("D 胜出!\n");
    }
    return 0;
}

可以进一步简化判断写法为:

if ((A > B && A < C && A > D) ||
    (B > A && B < C && B > D && B > C && B > D) ||
    (C > B && C < D && C < B && C < A) ||
    (D > A && D < B && D < C)) {
    // A 的情况 
} else if ((B > A && B < C && B > D) ||
           (A > B && A < C && A < D && A < B)) {
    // B 的情况 
} else if ((C < D && C < B && C < A && C < B) ||
           (B > C && B > D && B < A)) {
    // C 的情况 
} else {
    // D 的情况 
}

如果我的回答解决了您的问题,请采纳!

望采纳


#include<stdio.h>
#include<stdlib.h>
#include<time.h>
main()
{
    int n;
    for (;;)
    {
        int num = rand() % 3 + 1;
        printf("请您先出(1:石头 2:剪子 3:布 4:退出): ");
        scanf("%d", &n);
        if (n == 1 || n == 2 || n == 3)
        {
            if (n == 1)
                printf("您出【石头】,");
            else if (n == 2)
                printf("您出【剪子】,");
            else
                printf("您出【布】,");
            srand(time(0));
            if (num == 1)
                printf("电脑出【石头】,");
            else if (num == 2)
                printf("电脑出【剪刀】,");
            else
                printf("电脑出【布】,");
            if (n == num)
                printf("平局\n");
            else if ((n == 1 && num == 2) || (n = 2 && num == 3) || (n == 3 && num == 1))
                printf("您赢了\n");
            else
                printf("您输了\n");
        }
        else if (n == 4)
        {
            printf("退出\n");
            return 0;
        }
        else
            printf("输入错误,请重新输入!\n");
    }
    return 0;
}

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

// 定义游戏规则
#define RULES_SIZE 3
char rules[] = {'A', 'B', 'C'};
char rules_operator[][3] = {{'>', '<', '>='}, {'>', '>='}, {'<'}};
char rules_compare[][3] = {{'B', 'C', 'D'}, {'C', 'D', '\0'}, {'D', '\0', '\0'}};

// 比较两个数的大小,并返回结果(1表示大于,-1表示小于,0表示等于)
int compare(int a, int b) {
    if (a > b) {
        return 1;
    } else if (a < b) {
        return -1;
    } else {
        return 0;
    }
}

// 判断是否符合游戏规则
int check_rules(char c, int a, int b) {
    int i;
    for (i = 0; i < RULES_SIZE; i++) {
        if (c == rules[i]) {
            int cmp_res = compare(a, b);
            char op = rules_operator[i][cmp_res + 1];
            char comp = rules_compare[i][cmp_res + 1];
            if (comp == '\0') {
                return -1;
            } else if (op == '=') {
                cmp_res = compare(a, b);
                op = rules_operator[i][cmp_res + 1];
                comp = rules_compare[i][cmp_res + 1];
            }
            if (op == '>') {
                return comp == 'B' ? 1 : 0;
            } else if (op == '<') {
                return comp == 'C' ? 1 : 0;
            } else {
                return comp == 'D' ? 1 : 0;
            }
        }
    }
    return -1;
}

int main() {
    srand((unsigned int)time(NULL));  // 初始化随机数种子

    // 玩家输入四个数字
    int player_nums[4];
    printf("请输入四个数字(用空格分开):");
    scanf("%d %d %d %d", &player_nums[0], &player_nums[1], &player_nums[2], &player_nums[3]);

    // 系统生成四个随机数
    int sys_nums[4];
    int i;
    for (i = 0; i < 4; i++) {
        sys_nums[i] = rand() % 100 + 1;  // 生成1~100之间的随机整数
    }

    // 比赛过程
    int win_count = 0;
    for (i = 0; i < 4; i++) {
        int res = check_rules('A', player_nums[i], sys_nums[i]);
        if (res == -1) {
            printf("检查游戏规则出错!\n");
            return 1;
        } else if (res == 1) {
            res = check_rules('B', player_nums[i], sys_nums[i]);
            if (res == -1) {
                printf("检查游戏规则出错!\n");
                return 1;
            } else if (res == 1) {
                win_count++;
            }
            res = check_rules('D', player_nums[i], sys_nums[i]);
            if (res == -1) {
                printf("检查游戏规则出错!\n");
                return 1;
            } else if (res == 1) {
                win_count++;
            }
        } else {
            res = check_rules('C', player_nums[i], sys_nums[i]);
            if (res == -1) {
                printf("检查游戏规则出错!\n");
                return 1;
            } else if (res == 1) {
                win_count++;
            }
        }
    }

    // 输出比赛结果
    if (win_count >= 2) {
        printf("恭喜您获胜!\n");
    } else {
        printf("很遗憾,您失败了。\n");
    }

    return 0;
}

首先,定义了游戏规则和相应的比较函数和判断函数。玩家输入四个数字并存储在数组player_nums中,系统生成四个随机数并存储在数组sys_nums中。
然后,通过for循环模拟比赛过程。对于每一次比赛,调用check_rules函数判断玩家输入的数字和系统生成的随机数是否符合游戏规则,并根据规则进行相应的计分。
最后,根据计分情况输出比赛结果。
1、为了确保每次运行程序时生成的随机数不同,需要在main函数开始前调用srand函数初始化随机数种子;
2、可以根据具体情况对代码进行适当的修改或优化。

下面是完整代码实现,其中涉及的随机数生成使用了rand()函数:


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

int main() {
    // 随机数生成器的种子
    srand((unsigned int)time(NULL));

    int a, b, c, d; // 玩家输入的四个数字
    int x, y, z, w; // 系统生成的四个随机数
    int count = 0; // 比赛次数
    int result; // 游戏结果

    printf("请输入四个数字,以空格分隔:");
    scanf("%d %d %d %d", &a, &b, &c, &d);

    // 比赛1
    x = rand() % 10;
    y = rand() % 10;
    if ((a > b && x > y) || (a < b && x < y) || (a == b && x == y)) {
        count++;
    }

    // 比赛2
    y = rand() % 10;
    z = rand() % 10;
    if ((b > c && y > z) || (b < c && y < z) || (b == c && y == z)) {
        count++;
    }

    // 比赛3
    z = rand() % 10;
    w = rand() % 10;
    if ((c > d && z > w) || (c < d && z < w) || (c == d && z == w)) {
        count++;
    }

    // 比赛4
    x = rand() % 10;
    w = rand() % 10;
    if ((a > d && x > w) || (a < d && x < w) || (a == d && x == w)) {
        count++;
    }

    // 判断游戏结果
    if (count >= 3) {
        result = 1;
    } else {
        result = 0;
    }

    // 输出游戏结果
    if (result == 1) {
        printf("恭喜你,你赢了!\n");
    } else {
        printf("很遗憾,你输了!\n");
    }

    return 0;
}

这份代码实现了游戏规则,首先读入玩家输入的四个数字,然后生成四个随机数,并对这四个随机数按照游戏规则进行比较,记录比赛次数,最后判断游戏结果并输出。

啥意思?、?说清楚点啊。游戏规则是啥?四个随机数和ABCD之间怎么个判断法?结果是什么形式???