【问题标题】:Assistance with my class assignment协助我的课堂作业
【发布时间】:2016-02-21 15:13:23
【问题描述】:

谁能帮我解决这个问题?

问题陈述 如背景故事中所述,您正身处鲨鱼出没的中心 海洋。你可以旅行的沙洲很窄(只有很宽 足以走直线,有一点空间可以转弯)并且是 沿边缘被电线包围,即如果您触电,您将触电并掉入大海 - 这是一种无法返回的状态。

入狱多年对身心都造成了伤害。由于 不利的睡眠条件、感觉剥夺和经常殴打,您的 感觉很差,动作现在仅限于采取 1 个完全相同的步骤 一次向前的方向(即您所面对的方向)。 此外,您不再能够向左转,只能向右转 一次完成 90 度。 2.) 您可以存储的唯一数据 内存仅限于单个整数值(可能会搜刮 一些空间来存储布尔值,虽然你不太可能需要这个)。

幸运的是,您仍然可以进行基本的加法运算和 减法。为了帮助您做出决策并控制重复性动作,您 了解 IF 语句和 WHILE 循环。你也认识一个真实的或 对问题的错误回答,并且可以使用任何一种来测试整数的值 运算符 、≤ 和 ≥。当然,你也知道整数 值 0、1、2 等。不幸的是,逻辑运算超出了您当前的范围 处理能力。任何进一步的假设都应由导师确认。

HAL 罕见地表示同情,允许您询问 3 问题,您将收到正确或错误的回答:“在前面 门?”,“在电线前?”和“在沙子前?”。你也可以问 这些问题的补充,即“不在门前?”,“不在门前? 金属丝?”和“不在沙子前?”。次数没有限制 你可以问这些问题,这些状态不能同时存在。

基本上,我需要一个简短的算法来从 1 号门到 2 号门。我已经做了好几个小时了,但似乎做不到,所以今天就到期了。请帮忙谢谢

【问题讨论】:

    标签: variable-assignment


    【解决方案1】:
    While (not in front of gate)
      int right_count = 0
      While (not in front of sand)
        Turn right
        right_count++
        If right_count == 2
          Turn right
      Step forward
    Step forward // party time
    

    编辑:我很想看看你的一些尝试

    【讨论】:

    • 我敢打赌没有尝试。 ;-)
    • 事后看来我应该先要求那个
    • @ParrisVarney 我已经有一个像这样的算法,但它不起作用,因为你会到达一个点,你会转身 180 度,然后回到你来的路。
    • 我想知道所有这些变量赋值的东西是干什么用的,很好,我已经编辑了我的答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-02
    • 1970-01-01
    • 2020-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多