[边学边纪录] Hacking with macOS - 第三部分:项目2,猜数字(Cows and Bulls)
勉强算是游戏吧
![[边学边纪录] Hacking with macOS - 第三部分:项目2,猜数字(Cows and Bulls)](/content/images/size/w2000/2020/07/2-1.jpg)
先上最终成品的图片

这个是 Project 2

我解释一下规则
初次打开时是这样的:

这个游戏具体来说就是猜数字。
每次你猜的时候程序会给你一点线索,让你逐步缩小范围
程序会有一个4位数字,比如1234,是藏起来的,不让你知道
你需要输入4位数字去猜
如果数字对了+位置对了,就叫做 bull
如果数字对了+位置错了,就叫做 cow
举个例子,假设正确数字是 1234,
那么你猜测了 9876
此时就得到 0 bull 0 cow,因为一个都没对
界面上会显示 0b 0c
假设你猜的是 1987
那么结果是 1b 0c
因为1猜对了+位置也对了,其他的错了。
假设你猜的是 4321
那么就是 0b 4c
4个数字都对了,可惜位置都错了。
游戏终止条件:猜对为止
大致步骤描述
1. 先做界面(看 Main.storyboard)

- 1个 Text Field 用来给用户输入

- 1个 push button 让用户提交

- 一个 table view 显示结果

3个都拖到界面里,调整下位置和大小,做到如下效果:

剩下就是写 ViewController 这一个文件了
代码大概看看就行,不用纠结太多



刚好100行代码 + 一些 Interface builder 的操作
就完成了这个项目
书的页数是161到181
我看英文还凑合
一边看,一边做,一边理解,一边摸鱼
花了大概30-60分钟吧。
总结这个项目学会了什么
- 怎么从 Text Field 取值
- 怎么监听 Push Button 的点击事件
- 怎么操作 Table View
- 包括提供数据
全文完
第四部分编写中