<C语言>大佬们求代码!!急急急

以下是题目:

编一个枪,石头,剪刀,布的游戏,

枪赢剪刀和石头,

枪赢不了布,

剪刀输石头,

剪刀赢布,

石头输布,

获胜者每人获得一分。如果两个玩家都选择了相同的符号,则为平局,并且双方都不会得到一 分。为此,首先实现以下功能:

int computerwahl(void)  (1 = 枪, 2 = 剪刀, 3 = 石头, 4 = 布) 计算器永远不会重复上次的情况

int 用户选择

int 赢者 (int symbolPlayer1, int symbolPlayer2)

如果玩家 1 的符号赢了,则函数返回 1,如果玩家 2 赢了,则返回 2,如果是平局, 则返回 0。

在主程序中调用这些函数是为了让用户与计算机对战,直到两者之一赢得 10 分为止。

必须使用到自定义函数,并创建单独的项目!

 


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

int computerwahl(void) {
    static int last;
    int value;
    do {
        value = rand() % 4;
    }     while (last == value);
    printf("电脑选择:%d\n",value);
    return value;
}

int user(void) {
    int input;
    while (true)
    {
        printf("0枪、1石头、2剪刀、3布输入选择:");
        scanf_s("%d", &input);
        if (input>3)
        {
            printf("输入有误,重新输入\n");
        }
        else
        {
            break;
        }
    }
    return input;
}

int winner(int symbolPlayer1, int symbolPlayer2) {
    
    if (symbolPlayer1 == symbolPlayer2)
    {
        return 0;
    }
    if (symbolPlayer1 == 0 && (symbolPlayer2 == 1 || symbolPlayer2 == 2))
    {
        return 1;
    }
    if (symbolPlayer1 == 1 && symbolPlayer2 == 2)
    {
        return 1;
    }
    if (symbolPlayer1 == 2 && symbolPlayer2 == 3)
    {
        return 1;
    }
    if (symbolPlayer1 == 3 && symbolPlayer2 == 1)
    {
        return 1;
    }
    if (symbolPlayer1 == 0 && symbolPlayer2 == 3)
    {
        return 2;
    }

    if (symbolPlayer2 == 0 && (symbolPlayer1 == 1 || symbolPlayer1 == 2))
    {
        return 2;
    }
    if (symbolPlayer2 == 1 && symbolPlayer1 == 2)
    {
        return 2;
    }
    if (symbolPlayer2 == 2 && symbolPlayer1 == 3)
    {
        return 2;
    }
    if (symbolPlayer2 == 3 && symbolPlayer1 == 1)
    {
        return 2;
    }
    if (symbolPlayer2 == 0 && symbolPlayer1 == 3)
    {
        return 1;
    }
    return 0;
}

int main()
{
    int computer_value=0,user_value=0;
    while (computer_value<10 && user_value<10)
    {
        switch (winner(computerwahl(), user()))
        {
        case 1:
            computer_value++;
            printf("电脑得一分\n");
            break;
        case 2:
            user_value++;
            printf("玩家得一分\n");
            break;
        default:
            printf("平局\n");
            break;
        }
        printf("电脑分数%d,玩家分数%d\n-------------------\n",computer_value,user_value);
    }
    if (computer_value==10)
    {
        printf("电脑赢了\n");
    }
    if (user_value==10)
    {
        printf("玩家赢了\n");
    }
    printf("按任意键退出\n");
    scanf_s("");
}