来自十奶的大作业教学视频。

http://www.swiftv.cn/course/ic2tqzob

主要了解了MVC模型。

首先是View,通过设计mainstoryboard构建UI界面,主要靠拖动,用到了label和button。

接着是model,设计RPS(剪子包袱锤)结构体,见Rps.swift。

 1 //
2 // Rps.swift
3 // rockios
4 //
5 // Created by can on 15/11/9.
6 // Copyright (c) 2015年 can. All rights reserved.
7 //
8
9 import Foundation
10
11
12 struct Rps{
13 private var stat:Stats!
14
15 enum Stats {
16 case Rock
17 case Scissor
18 case Paper
19 }
20
21 func getStats () -> Stats {
22 return stat
23 }
24
25 mutating func setStats (inputStat: Stats!) {
26 stat=inputStat
27 }
28
29 func randomRps () -> Stats{ //生成一个随机的手势
30 let randomNumer = arc4random_uniform(3)
31 var randomStat:Stats!
32 switch randomNumer{
33 case 0:
34 randomStat = .Rock
35 case 1:
36 randomStat = .Scissor
37 case 2:
38 randomStat = .Paper
39 default:
40 print("Error")
41 }
42 return randomStat
43 }
44
45 func compare (aRpsStat:Stats, anotherRpsStat:Stats) -> Int {
46 //返回三种状态,0为前者数,1为前者赢,2为平局
47 var result:Int!
48 switch aRpsStat {
49 case .Rock:
50 switch anotherRpsStat{
51 case .Rock:
52 result=2
53 case .Scissor:
54 result=1
55 case .Paper:
56 result=0
57 }
58
59 case .Scissor:
60 switch anotherRpsStat{
61 case .Rock:
62 result=0
63 case .Scissor:
64 result=2
65 case .Paper:
66 result=1
67 }
68
69 case .Paper:
70 switch anotherRpsStat{
71 case .Rock:
72 result=1
73 case .Scissor:
74 result=0
75 case .Paper:
76 result=2
77 }
78
79 }
80 return result
81 }
82
83 }

最后是control,即ViewControl.swift,要和mainstoryboard关联起来,靠outlet和action。

//
// ViewController.swift
// rockios
//
// Created by can on 15/11/9.
// Copyright (c) 2015年 can. All rights reserved.
// import UIKit class ViewController: UIViewController { var rps = Rps(); // outlet and action @IBOutlet weak var Rock: UIButton! @IBOutlet weak var Paper: UIButton! @IBOutlet weak var Scissor: UIButton! @IBOutlet weak var textUp: UITextField! @IBOutlet weak var textDown: UITextField! @IBAction func Rock(sender:AnyObject){
rps.setStats(.Rock)
judgement()
} @IBAction func Paper(sender:AnyObject){
rps.setStats(.Paper)
judgement()
} @IBAction func Scissor(sender:AnyObject){
rps.setStats(.Scissor)
judgement()
} @IBAction func again(sender:AnyObject){
resetAll()
} //全局初始化
func resetAll(){
textUp.text = ""
textDown.text = ""
rps.setStats(nil)
} //判断输赢
func judgement () {
let randomRps=rps.randomRps()
let currentStat=rps.getStats()
let result = rps.compare(currentStat, anotherRpsStat: randomRps)
screen(result,stat:currentStat,anotherStat:randomRps)
} //控制显示的方法
func screen(result:Int,stat:Rps.Stats,anotherStat:Rps.Stats){
var resultString=""
var statString=""
var anotherString="" switch result{
case 0:
resultString="输"
case 1:
resultString="赢"
case 2:
resultString="竟然平局"
default:
resultString="醉"
} switch stat{
case .Rock:
statString = "

Swift实战(一): 剪子包袱锤ios应用的更多相关文章

  1. Swift实战-豆瓣电台(九)简单手势控制暂停播放(全文完)

    Swift实战-豆瓣电台(九)简单手势控制暂停播放 全屏清晰观看地址:http://www.tudou.com/programs/view/tANnovvxR8U/ 这节我们主要讲UITapGestu ...

  2. Swift实战-豆瓣电台(八)播放进度与时间

    视频观看地址:http://www.tudou.com/programs/view/4mEtz8S72k0/?resourceId=399000367_06_02_99 这节主要内容是NSTimer, ...

  3. Swift实战-豆瓣电台(七)显示动画

    youku观看地址http://v.youku.com/v_show/id_XNzMxODQzNDIw.html 这是一个很酷的动画效果.特别是数据多的时候 知识点 在单元格(Cell)显示方法中设置 ...

  4. Swift实战-豆瓣电台(六)视图跳转,传参及回跳

    youku观看地址:http://v.youku.com/v_show/id_XNzMxMzQ3MDcy.html 要点 在ChannelController里面声明一个代理 这个代理遵循我们自定义的 ...

  5. Swift实战-豆瓣电台(五)播放音乐

    观看地址 http://v.youku.com/v_show/id_XNzMwODM0MzI0.html 在这节里面,我们简单学习了一下MediaPlayer的使用 引入媒体框架 import Med ...

  6. Swift实战-豆瓣电台(四)歌曲列表的展现

    观看地址 http://v.youku.com/v_show/id_XNzMwNDE0OTA4.html 这节的主要内容是如何利用cell展现获取到的数据. 首先申明两个数组来储存我们获取到的数据 v ...

  7. Swift实战-豆瓣电台(三)获取网络数据

    观看地址:http://v.youku.com/v_show/id_XNzMwMzQxMzky.html 这节内容,我们先说了怎么将storyboard中的组件在类中进行绑定.然后写了一个类用来获取网 ...

  8. Swift实战技巧

    Swift实战技巧 从OC转战到Swift,差别还是蛮大的,本文记录了我再从OC转到Swift开发过程中遇到的一些问题,然后把我遇到的这些问题记录形成文章,大体上是一些Swift语言下面的一些技巧,希 ...

  9. Swift开发iOS项目实战视频教程(一)---iOS真简单

    本课主要介绍iOS项目的创建.第一个iOS项目的开发.UILabel.UIButton的使用. 假设你看完此视频还认为iOS非常难,请你来找我! 本教程摒弃枯燥的语法和知识解说,全是有趣有料的项目实战 ...

随机推荐

  1. python第三方库安装和卸载

    库的安装与卸载 pip install requests pip uninstall requests 查看安装好的库 pip list   第三方库的各种安装方式如下: 一.包管理器 Python有 ...

  2. With语句在数据统计应用

    WITH TMP_EXECUTOR(EXECUTOR,EXECUTORNAME) AS ( SELECT DISTINCT T.EXECUTOR ,T1.FULLNAME AS EXECUTORNAM ...

  3. jersey上传文件解决办法

    这两天在使用jersey 构建的jersey JAX-RS REST服务器,在通过POST方法上传文件的时候,如果根据example来操作的话会引发如下异常: SEVERE: Missing depe ...

  4. oracle查询、删除表中相同的数据

    delete FROM tablename a WHERE rowid > ( SELECT min(rowid) FROM tablename b WHERE b.id = a.id and ...

  5. php报错配置问题

    在开发的时候php.ini ,要显示所有的错误 error_reporting=E_ALL | E_STRICT 在发布的时候可以显示除了notice之外的错误,打开错误记录功能 error_repo ...

  6. centos 编译 安装php

    安装phpcd /usr/local/srctar -zvxf php-5.3.10.tar.gzcd  php-5.3.10mkdir -p /usr/local/php5  #建立php安装目录. ...

  7. Flutter接入极光推送

    (1)搜索 https://pub.dartlang.org/packages/jpush_flutter ,安装插件,并且按照官方配置 /android/app/build.gradle andro ...

  8. 七天学会ASP.NET MVC (二)——ASP.NET MVC 数据传递 【转】

    http://www.cnblogs.com/powertoolsteam/p/MVC_two.html 通过第一天的学习之后,我们相信您已经对MVC有一些基本了解. 本节所讲的内容是在上节的基础之上 ...

  9. cocos2d-x 3.0游戏实例学习笔记 《跑酷》移植到android手机

    说明:这里是借鉴:晓风残月前辈的博客.他是将泰然网的跑酷教程.用cocos2d-x 2.X 版本号重写的,眼下我正在学习cocos2d-X3.0 于是就用cocos2d-X 3.0重写,并做相关笔记 ...

  10. 聚合数据 iOS 项目开发实战:条码查询器

    记录下,聚合数据 iOS 项目开发实战:条码查询器:视频地址:http://www.jikexueyuan.com/course/324.html 条码查询API:https://www.juhe.c ...