用c语言做一个心算小游戏

有加减和乘法3种运算,由于除法涉及到浮点数存储有误差,所以比较难实现,改程序还有判定分数机制,根据难度给定合适的分数,随机抽取运算题目和符号。下面的代码适合Linux和安卓上的编译器,因为用了ANSI转义字符\033[3xm,其中x是0到7的数字表示颜色,如果电脑也想用那么只需删除这个即可。

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
enum sig {
    ADD,SUB,MUL
};
int main()
{
    int C;
    int guess,a,b,res,score=0,sig=0,level,arr[4]= {700/C,1000/C,1600/C,2800/C};
    struct timeval start, end;
    char* sigstr[3]= {"+","-","×"};
    float pass_time;
    printf("测试心算能力,请所有运算都靠在脑海中完成,时间越快分值越高\n请输入题目数量(1道以上)");
    scanf("%d",&C);
    srand(time(0));
    for(int i=0; i<C; i++)
    {
        sig=rand()%3;
        if(sig==DEV) {
            a=rand()%90+10;
            b=rand()%90+10;
            res=a*b;
            int moda=a%10,modb=b%10;
            if(a<20||b<20||moda==0||modb==0)//十位为1或是整十数视为简单
                level=2;
            else if(moda>4&&moda<9&&modb>4&&modb<9||a/10>6&&b/10>6)//数字比较大并且不整十
                level=4;
            else level=3;

        }
        else {
            a=rand()%9000+1000;
            b=rand()%9000+1000;
            if(sig==ADD)
                res=a+b;
            else res=a-b;
            level=1;
        }
        printf("\033[36m%d%s%d=",a,sigstr[sig],b);
        gettimeofday( &start, NULL );
        scanf("%d",&guess);
        gettimeofday( &end, NULL );
        pass_time=(end.tv_sec - start.tv_sec) + (end.tv_usec - start.tv_usec)/1000000.0;
        if(guess==res)
        {
            printf("\033[32m答对了!,花费时间%.2f秒\n",pass_time);
            float tmp=arr[level]/pass_time;
            if(tmp>150/C)
                tmp=150/C;//如果单道题目用时太短导致分数过高那么取值为上限
            score+=tmp;
        }
        else printf("\033[31m错了,正确答案为%d,再接再厉\n",res,pass_time);
    }
    if(score>100)
        score=100;
    printf("你的分数为%d",score);
}

### 回答1: 可以用 C 语言来编写贪吃蛇小游戏。C 语言是一种通用的、结构化的编程语言,具有较高的灵活性和可移植性,可以用来开发各种软件,包括游戏。如果你想学习编写贪吃蛇小游戏,可以先了解 C 语言的基础知识,然后学习如何使用 C 语言的图形库来绘制图像并在屏幕上控制移动。还可以学习如何使用 C 语言的键盘输入函数来控制贪吃蛇的移动方向。通过努力学习和实践,你就可以用 C 语言来编写贪吃蛇小游戏了。 ### 回答2: 可以用C语言一个贪吃蛇小游戏C语言是一种功能强大的高级编程语言,可以用于开发各种应用程序,包括游戏。贪吃蛇是一款简单但经典的游戏,非常适合用C语言实现。 在C语言中,可以使用控制台窗口进行字符绘制和用户输入的处理。贪吃蛇游戏的实现主要包括以下几个方面: 1. 绘制游戏界面:使用C语言中的字符输出函数,如printf()函数,根据游戏状态和蛇的位置,绘制蛇、食物和边界等元素。 2. 处理用户输入:通过C语言中的输入函数,如scanf()函数,获取用户的键盘输入,实现蛇的控制。 3. 更新游戏状态:根据蛇的移动和吃食物的情况,更新蛇的位置和长度,同时生成新的食物。 4. 判断游戏结束:当蛇碰到边界或者碰到自己身体时,游戏结束。通过判断游戏状态,提示游戏结果。 通过以上步骤的循环执行,即可实现贪吃蛇小游戏C语言的灵活性和底层控制能力,使其成为一个很好的选择用于编写此类小游戏。编写贪吃蛇小游戏可以帮助学习C语言的基本语法和算法思维,同时也能加深对游戏开发原理的理解。 ### 回答3: 可以用C语言编写一个贪吃蛇小游戏。贪吃蛇是一款非常经典的游戏,它的操作简单、规则清晰,因此非常适合用C语言来实现。 在用C语言编写贪吃蛇游戏时,首先需要定义贪吃蛇的数据结构。通常使用链表或者数组来表示蛇的身体,用一个变量来表示蛇的长度。接下来需要定义蛇的移动规则,即根据用户的输入改变蛇的位置,并判断蛇与食物的碰撞情况来决定是否增加蛇的长度。还需要考虑蛇与边界的碰撞,如果蛇撞到边界则游戏结束。 在编写游戏界面时,可以使用C语言提供的终端输出函数来绘制蛇的身体、食物和边界等元素。可以使用循环和条件语句来不断更新界面,实现游戏的动态效果。 此外,还可以增加一些额外的功能,如计分、速度控制、难度选择等,以增加游戏的趣味和挑战性。 总之,用C语言编写贪吃蛇小游戏是完全可行的,通过合理的算法和数据结构设计,配合合适的界面绘制方法,可以实现一个简单却有趣的贪吃蛇游戏。这也是很多初学者学习C语言一个常见的练手项目。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值