程序主界面



程序文件目录


(xcode开发程序模板自动生成目录,内含各种方法可以重写,而我的程序是单界面,所以只用一个ViewController, .h为接口文件, .m为实现文件,代码主要在ViewController.m, student_photo 2是学生照片的文件夹,包含在工程里)

storyboard文件

(storyboard可以通过拖拽来添加插件并设置属性,也可以实现多个界面的跳转,使用storyboard可以大大减少代码量跟工作量,当然也可以使用纯代码的方式来编写,这里由于我没有加约束,所以此程序按照我的设计只能在Iphone5或5s上运行,否则界面会出现各种显示不完全)

ViewController.m

//
//  ViewController.m
//  caicaikan
//
//  Created by 林嘉文 on 15/6/15.
//  Copyright (c) 2015年 linjiawen. All rights reserved.
//#import "ViewController.h"@interface ViewController ()
//IBOutlet和IBAction为storyboard创建的对象和方法
@property (weak, nonatomic) IBOutlet UIImageView *Aimage;
@property (weak, nonatomic) IBOutlet UIImageView *Bimage;
@property (weak, nonatomic) IBOutlet UIImageView *Cimage;
@property (weak, nonatomic) IBOutlet UILabel *NameLabel;
-(void) reset;
- (IBAction)atap:(id)sender;
- (IBAction)btap:(id)sender;
- (IBAction)ctap:(id)sender;
@property (weak, nonatomic) IBOutlet UILabel *HintLabel;
@end@implementation ViewController
{//a,b,c,i作为索引号调用数组元素int a,b,c,i;
}- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view, typically from a nib.[self reset];self.HintLabel.text = @"你还没答题.";
}//重置函数
-(void) reset {//将图片名称存入数组NSArray *photoname = [NSArray arrayWithObjects:@"201211671101蔡济屹.jpg",@"201211671102蔡小莹.jpg",@"201211671103陈柏安.jpg",@"201211671105冯黄怡.jpg",@"201211671107何燕玲.jpg",@"201211671108黄春妹.jpg",@"201211671109黄立沛.jpg",@"201211671110赖嘉仁.jpg",@"201211671111黎绮霞.jpg",@"201211671112李思婷.jpg",@"201211671113练晓发.jpg",@"201211671115刘仙妹.jpg",@"201211671116卢泳蓬.jpg",@"201211671117聂双燕.jpg",@"201211671118宋晓茹.jpg",@"201211671119谭玉梅.jpg",@"201211671120汤梓苡.jpg",@"201211671121王晓俊.jpg",@"201211671122吴丹妮.jpg",@"201211671123吴坚鑫.jpg",@"201211671124吴明辉.jpg",@"201211671125严登辉.jpg",@"201211671126余姣.jpg",@"201211671127曾婷.jpg",@"201211671128张华楠.jpg",@"201211671129张亮祖.jpg",@"201211671130周绿锋.jpg",@"201211671131朱嘉颖.jpg",@"201211671132朱文婷.jpg",@"201211671202陈春娣.jpg",@"201211671203陈家宜.jpg",@"201211671204陈穗兴.jpg",@"201211671205冯嘉敏.jpg",@"201211671207何伟明.jpg",@"201211671208黄灿凤.jpg",@"201211671209黄树森.jpg",@"201211671210黎京勇.jpg",@"201211671211林奋.jpg",@"201211671212林瑜红.jpg",@"201211671213林志杰.jpg",@"201211671215陆俊球.jpg",@"201211671216罗思阳.jpg",@"201211671217彭政.jpg",@"201211671218戚水仙.jpg",@"201211671219阮文栅.jpg",@"201211671220施学剑.jpg",@"201211671222魏明星.jpg",@"201211671223吴瑞琦.jpg",@"201211671225杨君梦.jpg",@"201211671227叶琛.jpg",@"201211671228袁春丽.jpg",@"201211671229郑碧君.jpg",@"201211671230周荃.jpg",@"201211671231周伟峰.jpg", nil];//通过数组取图片a = arc4random() % 52;UIImage *aimage = [UIImage imageNamed:[photoname objectAtIndex:a]];[self.Aimage setImage:aimage];b = arc4random() % 52;UIImage *bimage = [UIImage imageNamed:[photoname objectAtIndex:b]];[self.Bimage setImage:bimage];//跟第一张图重复的话,重新随机,直到不重复while (b==a) {b = arc4random() % 52;UIImage *bimage = [UIImage imageNamed:[photoname objectAtIndex:b]];[self.Bimage setImage:bimage];}c = arc4random() % 52;UIImage *cimage = [UIImage imageNamed:[photoname objectAtIndex:c]];[self.Cimage setImage:cimage];while (c==a || c==b) {c = arc4random() % 52;UIImage *cimage = [UIImage imageNamed:[photoname objectAtIndex:c]];[self.Cimage setImage:cimage];}//在上面三张图片中,随机文本框的名称i = arc4random() % 3;if (i==0) {i = a;}if (i==1) {i = b;}if (i==2) {i = c;}self.NameLabel.text = [photoname objectAtIndex:i];NSLog(@"%i,%i,%i,%i",a,b,c,i);
}//点击动作发生后,判断正误,并重置
- (IBAction)atap:(id)sender {if (i==a) {self.HintLabel.text = @"恭喜你,答对了!";}else{self.HintLabel.text = @"很遗憾,答错了!";}[self reset];
}- (IBAction)btap:(id)sender {if (i==b) {self.HintLabel.text = @"恭喜你,答对了!";}else{self.HintLabel.text = @"很遗憾,答错了!";}[self reset];
}- (IBAction)ctap:(id)sender {if (i==c) {self.HintLabel.text = @"恭喜你,答对了!";}else{self.HintLabel.text = @"很遗憾,答错了!";}[self reset];
}- (void)didReceiveMemoryWarning {[super didReceiveMemoryWarning];// Dispose of any resources that can be recreated.
}@end

百度网盘链接

开发过程

整个猜猜看程序我用了大概4小时来编写,因为之前已经有构思过整个程序的逻辑.我之前学过C++只学到了类,所以开学第一个代码行统计的作业就用C++来做,这个也是我第一个做的程序.而我从这个学期开始学习objective-c,几乎所有学习的时间都放上去了,所以我也决定猜猜看课程设计用objective-c来编写.

我是个编程的菜鸟,没写过任何程序,只跟过视频里面写例程或者再修改一下功能,所以开发猜猜看开始的时候也比较迷茫.刚开始我只用storyboard写了一个界面就想不到接下来要怎样去继续写.然后我就试着在上面显示第一张图片,这里也是我耗费最多时间的一个地方,因为我开始添加图片文件夹的时候,只添加了引用,而并没有把文件添加到工程里面.然后无论我通过纯代码,还是直接从storyboard里面直接添加图片都显示不出来.后来我去请教班上另一个一样在学习oc(objective-c简称)的同学,他说他也遇到同样的问题,后来才帮我重新添加解决了.然后我按照我的思路,首先想如何显示3张图片和1个其中的名称,因为oc里面只要图片在工程里面,就可以通过图片名称来选定显示图片,于是我就把所有图片名称放在一个数组里面,然后通过索引号选出不重复的3张图片,最后在3个索引号里面随机出一个来作为答案显示在文本框.这里的内容我全部写在了reset方法里面,方便我调用.接下来就要进行选择正确的图片,因为oc里面有现成的手势类,本来我想添加点击手势的,但发现添加了手势之后怎么点都没有反应,但百度过后里面也是说跟按钮一样写回调函数就可以,但就是实现不了.所以最后我在3张图片上面添加了3个透明的按钮,并在3个回调函数里面判断所点击的图片的索引号是否与文本框的索引号一致,然后改变最下面的文本框的状态,最后调用reset方法重置3张图片.

学习收获

可以说猜猜看是第一个我编出来有界面的程序,虽然编出来后觉得是很简单的一个程序,但其中关于程序的逻辑全是自己写出来的.

真正实际操作了storyboard来进行界面添加UIViewController,UIImageView,Label,Button这四个控件,但其实UIViewController还有更加复杂的要学.但后面3个控件基本上是掌握并能进行操作了.

还有NSArray的使用,这是个元素为对象的数组,而存储在里面的图片名称全是字符串对象,并不是普通的字符串,在oc里面NSArray的用处很广泛.

感受体会

由于是第一次开发程序,所以有点小激动,真正来说我大三这个学期才开始学习编程.在开学时很迷茫,不知道要学什么,所以借了C++来看,用了2个星期就把老师之前一年教的内容都看完了.然后迷茫之中曾经想学java,但由于学习java的人感觉太多了,而且竞争太大,最终就选择了学习ios开发,因为一个已经就业的师兄说ios开发学习swift不错,但后来加了各种开发群后,发现人家都是先学习oc的,而且swift是新出的语言,有点不完善,所以我就决定学习oc并往里面钻研,然后这个学期基本所有学习的时间都放在oc的学习上.开始时学习觉得自己什么都做不了,但我还是继续学下去,我只能相信一直学总有一天人家叫你做东西能做出来,所以就这样坚持下来了.这个猜猜看的程序也是一个证明吧,开学时说这个设计的时候我以为很难做,因为那是什么都不会,以为做不出来,但到了今天发现我坚持学了这么久,做出来并不怎么费工夫.猜猜看可以说是对我信念的一个坚定,经过了猜猜看我相信我只要继续学下去,我可以做出一些功能更加强大的东西.

C# 程序设计之猜猜看相关推荐

  1. 《C#程序设计》猜猜看游戏开发总结

    <猜猜看>游戏开发总结 一.开发目的 在校园中,我们经常遇到某个学生叫自己老师,但老师却想不出该学生的名字,彼此显得有点尴尬.不仅师生之间的互动交流会有这样的问题存在,就连我们身边的同学之 ...

  2. Rust程序设计语言-猜猜看游戏

    在 Rust 中,变量默认是不可变的.下面的例子展示了如何在变量名前使用 mut 来使一个变量可变: let foo = 5; // 不可变 let mut bar = 5; // 可变 Rust 标 ...

  3. C#程序设计开发总结(猜猜看游戏开发)

    <C#程序设计>开发总结 李 杰 信息学院:物联1121:201211672114 一.课程设计的任务 设计一个猜数字游戏程序,该游戏可以由程序产生随机数字,玩家通过输入数字来匹配程序生成 ...

  4. 《JAVA程序设计》实训第三天——《猜猜看》游戏

    基本的代码运行可以通过了.显示图片,猜猜看基本可以运行,游戏整体代码已经完成.就是统计猜对猜错次数那个还在努力,在查找中,不知能不能运行得了一个可以统计猜对猜错次数的猜猜看游戏. <pre na ...

  5. 猜猜看软件-学习总结(不定时更新)

    学习总结 物联网 201211672109 黄润明 成果展示: 源码可以到我的百度云盘下载   http://pan.baidu.com/s/1qW9Qqo0 ,用5以上的qt版本才能跑 建议手动将图 ...

  6. 微信无法连接服务器501,微信成语猜猜看第501关BUG出现全是英文怎么过解决方法...

    近日因为跳一跳许多微信小程序游戏异常火爆,其中就包括了成语猜猜看游戏,但是很多小伙伴向小编反应游戏之中出现了BUG,那么微信成语猜猜看BUG怎么办呢?为了帮助各位小伙伴,小编特意带来了成语猜猜看BUG ...

  7. c#课程设计---猜猜看游戏

    1:游戏要求 1. 随机显示 一个名字 与 若干张相片(如3张).选择正确的相片. 2. 记录老师对每一个学生的认识概率P.并依据认识概率,确定"猜猜看"游戏中学生出现的频率. 认 ...

  8. 《JAVA课程设计》实训第四天——《猜猜看》游戏

    第四天,本来想进一步去改进<猜猜看>游戏的.可是非常多问题都不理解.也不熟悉怎么去弄到连接数据库.统计猜对次数,所以并没有进行再多的改动. 基本上就是这种执行结果了 import java ...

  9. 微信无连接服务器1.104,微信成语猜猜看太子少师答案汇总 太子少师1-104关攻略...

    本文导航第1页: 太子少师 第8页:翰林 第2页:学童 第9页:侍郎 第3页:童生 第10页:尚书 第4页:秀才 第11页:大学士 第5页:举人 第12页:御史 第6页:贡士 第13页:丞相 第7页: ...

最新文章

  1. 华为网赛云数据中心基础原理自测答案
  2. Cookie中文存储页面500问题
  3. 移动app显示远程服务器错误,KIS移动应用常见问题汇总
  4. 谷歌浏览器怎么设置字体 chrome默认字体设置方法
  5. 二自由度振动仿真:matlab直接解微分方程virtual.lab motion仿真
  6. Python知识点之Python面向对象
  7. MATLAB 线性运算之图像相加去噪
  8. linux管理员权限下执行popen,执行shell命令的函数——system()、popen()
  9. 光盘版的DOS启动盘
  10. android cos函数,Android三角函数
  11. 失物招领小程序_可查询失物、可了解换乘,京港地铁今日上线微信小程序
  12. PDF如何转换成EPUB格式
  13. Python 和 Web 前端选择哪个比较合适?哪个前景好?
  14. android 修改应用权限设置在哪里,Android在应用设置里关闭权限,返回生命周期处理...
  15. 2020-05-13
  16. Metric评价指标-Embedding Similarity
  17. 信而泰测试仪之 TeleATT软件 模拟 路由性能测试
  18. IJ下的JavaWeb的搭建
  19. Balance安装及用法小结
  20. c语言中abs与labs的区别,C / C ++中的abs(),labs(),llabs()函数

热门文章

  1. ouc-exp5-blog
  2. 电动汽车平均每天起火近10辆,再次强调能买燃油车就别买电动汽车
  3. Python制作微信聊天机器人
  4. win11鼠标右键菜单还原win10样式
  5. mapreduce JVM参数配置的问题
  6. 华为荣耀盒子怎么用 华为荣耀盒子连接电视和联网及看电视教程
  7. hive配置参数的说明
  8. 【实施】畅捷通T+软件生产成本结转的理解
  9. 将MS-DOS6.22装入U盘和硬盘
  10. Vue响应式原理---双向绑定