HTDP学习笔记(3)--习题5.1.5之我的答案

来源:互联网 发布:身边的女神自律知乎 编辑:程序博客网 时间:2024/06/06 21:01
习题 5.1.5 设计函数 check-color,它是猜色游戏的主要部分,游戏参与者之一给两个方块挑选了两个颜色,
它们是游戏的两个目标,游戏的另一个参与者猜测每个方块的颜色,第一个参与者对猜测给出下面四种可
能的回答:
1. 'Perfect,如果第一个目标与第一个猜测相符合,第二个目标与第二个猜测相符合;
2. 'OneColorAtCorrectPosition,如果第一个目标与第一个猜测相符合或第二个目标与第二个猜测相
符合;
3. 'OneColorOccurs, 猜测的颜色在某一方块出现;
4. 'NothingCorrect, 其他。
第二个参与者的目标是用尽可能少的次数猜测方块的颜色。
函数 check-color 模仿第一个参与者的行为,它的参数是 4 种颜色,为简单起见,假定颜色的类型是符
号,如'red,前两个参数是目标,后两个参数是猜测,函数的结果是上述 4 个答案之一。
在对函数进行测试之后,使用 teachpack 中的 master.ss 进行游戏,即计算(master check-color)

并使用鼠标挑选颜色。


我的答案:

代码:

(define (check-color goal-1 goal-2 guess-1 guess-2)
  (cond
  [(and (symbol=? goal-1 guess-1) (symbol=? goal-2 guess-2)) 'perfect]
  [(or (symbol=? goal-1 guess-1) (symbol=? goal-2 guess-2)) 'OneColorAtCorrectPosition]
  [(or (symbol=? goal-1 guess-2) (symbol=? goal-2 guess-1)) 'OneColorOccurs]
  [else 'NothingCorrect]))


(master check-color)



0 0
原创粉丝点击