开发一个循环 5 次计算的小游戏, 设置随机种子为10,每次随机产生两个 1~10的数字以及随机选择

开发一个循环 5 次计算的小游戏,
设置随机种子为10,每次随机产生两个 1~10的数字以及随机选择
“+、-、*”运算符,构成一个表达式,
让用户计算式子结果并输入结果,如果计算结果正确则加一分,
如果计算结果错误不加分。如果正确率大于等于 80%,则打印“闯关成功”,
否则打印“闯关不成功”。(分值:20)

请在【python数据分析之禅】gzh后台,回复‘作业’获取答案

好的,这是一个使用 C++ 和 EasyX 图形库在 VC 中实现的小游戏,以下是实现代码: ```C++ #include <graphics.h> #include <stdio.h#include <stdlib.h> #include <time.h> #include <math.h> // 窗口宽度和高度 const int WIDTH = 800; const int HEIGHT = 600; // 定义小球类 class Ball { public: Ball(int x, int y, int radius, COLORREF color) { this->x = x; this->y = y; this->radius = radius; this->color = color; this->speed_x = rand() % 2 == 0 ? -5 : 5; // 随机初始化 x 方向速度 this->speed_y = rand() % 2 == 0 ? -5 : 5; // 随机初始化 y 方向速度 } // 移动小球 void move() { this->x += this->speed_x; this->y += this->speed_y; } // 检测小球是否碰撞到窗口边界 void check_boundary_collision() { if (this->x - this->radius < 0 || this->x + this->radius > WIDTH) { this->speed_x = -this->speed_x; } if (this->y - this->radius < 0 || this->y + this->radius > HEIGHT) { this->speed_y = -this->speed_y; } } // 检测小球是否碰撞到另一个小球 void check_ball_collision(Ball& other_ball) { int distance = sqrt(pow(this->x - other_ball.x, 2) + pow(this->y - other_ball.y, 2)); if (distance < this->radius + other_ball.radius) { // 随机初始化碰撞后的速度方向 this->speed_x = rand() % 2 == 0 ? -5 : 5; this->speed_y = rand() % 2 == 0 ? -5 : 5; other_ball.speed_x = rand() % 2 == 0 ? -5 : 5; other_ball.speed_y = rand() % 2 == 0 ? -5 : 5; } } // 绘制小球 void draw() { setfillcolor(this->color); setlinecolor(this->color); fillcircle(this->x, this->y, this->radius); } private: int x, y, radius, speed_x, speed_y; COLORREF color; }; int main() { // 初始化随机数种子 srand(time(NULL)); // 创建窗口 initgraph(WIDTH, HEIGHT); setbkcolor(WHITE); // 创建两个小球 Ball ball1(50, 50, 30, RED); Ball ball2(200, 200, 50, BLUE); // 游戏循环 while (true) { // 移动小球 ball1.move(); ball2.move(); // 检测小球是否碰撞到窗口边界 ball1.check_boundary_collision(); ball2.check_boundary_collision(); // 检测小球是否碰撞到另一个小球 ball1.check_ball_collision(ball2); // 绘制窗口和小球 cleardevice(); ball1.draw(); ball2.draw(); Sleep(10); } // 关闭窗口 closegraph(); return 0; } ``` 当你运行这个程序时,会显示出一个窗口,里面有两个小球在随机运动,当两个小球碰撞时,会随机弹开。
评论 66
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值