gpt4 book ai didi

c - 随机开关

转载 作者:行者123 更新时间:2023-11-30 15:35:54 26 4
gpt4 key购买 nike

如何为此代码创建一个随机循环,以便它不会始终执行相同的情况,而且这是一个被调用到 main.c 的函数。希望这能有所帮助,我只是想使用 rand() 函数。

int escapeRoom()
{
alt_u16 wheels;
alt_u16 Bumper;
int i;

Bumper = IORD_ALTERA_AVALON_PIO_DATA(EXPANSION_JP1_BASE);
Bumper = rand() & (LEFT_FRONT_BUMPER | RIGHT_FRONT_BUMPER);

switch(Bumper)
{
case BOTH_BUMPERS:
wheels = BACKWARDS;
IOWR_ALTERA_AVALON_PIO_DATA(EXPANSION_JP1_BASE, wheels);
break;

case RIGHT_FRONT_BUMPER:
wheels = RIGHT_BACKWARDS;
IOWR_ALTERA_AVALON_PIO_DATA(EXPANSION_JP1_BASE, wheels);
break;

case LEFT_FRONT_BUMPER:
wheels = LEFT_BACKWARDS;
IOWR_ALTERA_AVALON_PIO_DATA(EXPANSION_JP1_BASE, wheels);
break;

case NO_BUMPERS:
wheels = FORWARD;
IOWR_ALTERA_AVALON_PIO_DATA(EXPANSION_JP1_BASE, wheels);
break;

for (i=1 ; i<5 ; i++) ;
{
IOWR_ALTERA_AVALON_PIO_DATA(EXPANSION_JP1_BASE, !wheels);
}
break;

}
}

最佳答案

您需要制作Bumper是随机的。例如使用

Bumper = rand() & (LEFT_FRONT_BUMPER | RIGHT_FRONT_BUMPER);

该特定陈述是否适合您取决于您​​所拥有的内容头脑。例如,我不知道为什么要从 I/O 端口进行初始读取。如果您需要这些位,那么您需要将它们保存在除你的随机保险杠。

更新: rand()每次都可以给出相同的伪随机序列。对于与不确定环境交互的机器人来说,这可能没问题;但在大多数应用程序中,您需要一个随机种子。最简单的选择就是调用 srand(some unpredictable value such as sensor data or a high-resolution timer) 。我总是假设您不需要高质量的随机性。

关于c - 随机开关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22761970/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com