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

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

主要了解了MVC模型。

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

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

 1 //2 //  Rps.swift3 //  rockios4 //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 UIKitclass 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 = "?" case .Scissor: statString = "✌️" case .Paper: statString = "✋" } switch anotherStat{ case .Rock: anotherString = "?" case .Scissor: anotherString = "✌️" case .Paper: anotherString = "✋" } textUp.text = "你" + resultString + "了!" textDown.text = "你出了" + statString + ",但电脑出了" + anotherString + "!" } override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib.  } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated.  } }

转载于:https://www.cnblogs.com/aezero/p/4977183.html

Swift实战(一): 剪子包袱锤ios应用相关推荐

  1. 卷积神经网络之优化参数(剪子包袱锤)

    目录 一.优化参数的三个方法 1.手动修改 2.for循环调参 3.Keras Tunner自动调参工具 介绍 1.安装 2.准备训练数据和加载的库 3.创建HyperParameters对象以及模型 ...

  2. golang小案例 —— 剪子剪子包袱锤小游戏

    go语言简单的玩耍一下剪子包袱锤游戏...... package mainimport ("fmt""math/rand""time" )f ...

  3. 简单的c语言实现剪子包袱锤

    简单的c语言实现剪子包袱锤 该游戏开局可以选两种模式,第一种是选择与电脑玩多少局,并且以输入R.P.S分别代表石头.布和剪刀:第二种模式是选择获胜多少句结束游戏,同样输入R.P.S.最后将玩家.电脑分 ...

  4. python:使用条件语句实现剪子包袱锤

    第一个python程序: 使用条件语句实现剪子包袱锤的小游戏 ```python mark = input("规则:剪刀(0),石头(1),布(2) 请输入:") print(&q ...

  5. java算数题--剪子包袱锤、完数、年月

    完成一个简单的儿时游戏-剪子包袱锤.提示玩家出拳,玩家出拳后,电脑自动出拳,根据双方的出拳,来判定输赢. 提示:约定 0 表示剪子:1 表示包袱:2 表示锤头.可以调用本章的 getRand 方法来获 ...

  6. OJ:剪子包袱锤游戏

    问题 C: 剪子包袱锤游戏 时间限制: 1 Sec   内存限制: 2 MB 提交: 1077   解决: 474 [ 提交][ 状态][ 讨论版] 题目描述 Tom.Jack和Mary三人在同一个小 ...

  7. SDUSTOJ 1191 - 剪子包袱锤游戏 ( 结构体 函数的巧妙应用 )

    Description Tom.Jack和Mary三人在同一个小学上学,又住在同一个小区.所以每天上学.放学的路上,他们都玩一些小游戏.某天,三人玩剪子包袱锤(Scissors-Paper-Rock) ...

  8. 【聆思CSK6视觉AI开发套件试用】基于AI手势识别的剪子包袱锤游戏

    本篇文章来自极术社区与聆思科技组织的CSK6 视觉AI开发套件活动,更多开发板试用活动请关注极术社区网站.作者:寒冰1988 感谢极术社区联合聆思组织的本次活动,很荣幸得到本次体验国产AI MCU的机 ...

  9. 剪子-包袱-锤(模拟题,机器人根据我出的情况进行统计,决定他出什么,我再根据他出什么决定我出什么,7种情况)

    剪子-包袱-锤 Time Limit: 1000 ms Memory Limit: 65536 KiB Special Judge Submit Statistic Problem Descripti ...

最新文章

  1. 王石:人生60岁才是开始
  2. CoreData 从入门到精通(四)并发操作
  3. springboot扫描组件_springboot多模块包扫描问题的解决方法
  4. 线程之售票系统pthread_mutex,_lock,_unlock
  5. python写空气质量提醒_Python数据可视化:2018年空气质量分析
  6. oracle加大内存对大表,在ORACLE里如果遇到特别大的表,可以使用分区的表来改变其应用程序的性能...
  7. Linux下硬盘分区详解
  8. 栈的基本操作(详细)
  9. ibm刀片服务器 维护,IBM刀片服务器 一刀搞定企业信息化
  10. 九、SpringBoot——默认错误页面错误页面定制
  11. fabs在python中是什么意思_Python fabs() 与 abs() 区别是什么?
  12. 小学计算机教学打字,怎么快速学拼音打字-小学生如何更快的学习拼音
  13. 卸载2345套件的本人认为最好的方法
  14. Python求两个或三个正整数的最大公约数和最小公倍数
  15. 有效解决应用程序无法正常启动(0xc000007b)的错误
  16. web前端开发基础知识_薪资30K+的web前端怎么做到的?
  17. Metal 框架之使用 Metal Debugger 查看 GPU 工作负载
  18. 微信小程序商城优势在什么地方
  19. 音视频领域火爆的开源播放器项目
  20. 线性代数 04.07 向量组的线性相关性 习题课

热门文章

  1. 云计算基础与应用 第六章 数据库
  2. Paddle使用半监督式学习完成语句分类
  3. 【模板整合】LCT模板
  4. GPT-4冲击下,知识图谱的现在与未来
  5. XDS100V3连接Pandaboard ES OMAP4460开发板
  6. hash、set、zset的底层数据结构原理,非科班生金九银十求职经历
  7. 礼帽黑帽操作,开闭运算
  8. MySQL常用存储引擎——Archive
  9. 关于SQLyog创建函数
  10. win2000 java,月光软件站 - 编程文档 - Java - win2000下jsp环境配置