c使用easyx实现转盘随机选取一个1到300之间的数,用户重点重新选取
时间: 2024-03-21 16:42:26 浏览: 52
用c语言产生随机数
5星 · 资源好评率100%
好的,我来回答您的问题。
首先,使用X 实现转盘可以参考以下代码:
```c
#include <graphics.h>
#include <time.h>
#include <stdlib.h>
int main()
{
initgraph(640, 480); // 初始化图形界面
srand(time(NULL)); // 设置随机种子
int angle = 0; // 初始角度为 0
while (true) {
// 绘制转盘
setlinecolor(YELLOW);
setfillcolor(GREEN);
fillcircle(320, 240, 200);
setfillcolor(YELLOW);
fillcircle(320, 240, 180);
// 绘制指针
setlinecolor(RED);
setlinestyle(PS_SOLID, 5);
setfillcolor(RED);
filltriangle(320, 240, 320 + 150 * cos(angle * 3.14 / 180),
240 - 150 * sin(angle * 3.14 / 180),
320 + 20 * cos((angle + 90) * 3.14 / 180),
240 - 20 * sin((angle + 90) * 3.14 / 180));
// 选取随机角度
int random_angle = rand() % 360;
int total_angle = random_angle + 360 * 3; // 转 3 圈
int speed = 10; // 转动速度
// 逐渐减速转动
while (total_angle > 0) {
angle += speed;
total_angle -= speed;
speed--;
if (speed == 0) {
speed = 1;
}
delay(20);
cleardevice();
}
}
getch();
closegraph();
return 0;
}
```
以上代码实现了一个转盘的绘制,并且随机选取一个角度转动 3 圈,最后停留在指定的角度。
接下来,用户可以通过重新点击鼠标来重新选取随机数。具体实现可以在鼠标点击事件中添加重新选取随机数的代码,例如:
```c
if (MouseHit()) {
MOUSEMSG m = GetMouseMsg();
if (m.uMsg == WM_LBUTTONDOWN) {
// 重新选取随机数
random_angle = rand() % 360;
total_angle = random_angle + 360 * 3; // 转 3 圈
speed = 10; // 转动速度
}
}
```
以上代码可以在每次鼠标左键点击时重新选取随机数,并且重新开始转动转盘。
阅读全文