Swift实战(一): 剪子包袱锤ios应用
来自十奶的大作业教学视频。
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.手动修改 2.for循环调参 3.Keras Tunner自动调参工具 介绍 1.安装 2.准备训练数据和加载的库 3.创建HyperParameters对象以及模型 ...
- golang小案例 —— 剪子剪子包袱锤小游戏
go语言简单的玩耍一下剪子包袱锤游戏...... package mainimport ("fmt""math/rand""time" )f ...
- 简单的c语言实现剪子包袱锤
简单的c语言实现剪子包袱锤 该游戏开局可以选两种模式,第一种是选择与电脑玩多少局,并且以输入R.P.S分别代表石头.布和剪刀:第二种模式是选择获胜多少句结束游戏,同样输入R.P.S.最后将玩家.电脑分 ...
- python:使用条件语句实现剪子包袱锤
第一个python程序: 使用条件语句实现剪子包袱锤的小游戏 ```python mark = input("规则:剪刀(0),石头(1),布(2) 请输入:") print(&q ...
- java算数题--剪子包袱锤、完数、年月
完成一个简单的儿时游戏-剪子包袱锤.提示玩家出拳,玩家出拳后,电脑自动出拳,根据双方的出拳,来判定输赢. 提示:约定 0 表示剪子:1 表示包袱:2 表示锤头.可以调用本章的 getRand 方法来获 ...
- OJ:剪子包袱锤游戏
问题 C: 剪子包袱锤游戏 时间限制: 1 Sec 内存限制: 2 MB 提交: 1077 解决: 474 [ 提交][ 状态][ 讨论版] 题目描述 Tom.Jack和Mary三人在同一个小 ...
- SDUSTOJ 1191 - 剪子包袱锤游戏 ( 结构体 函数的巧妙应用 )
Description Tom.Jack和Mary三人在同一个小学上学,又住在同一个小区.所以每天上学.放学的路上,他们都玩一些小游戏.某天,三人玩剪子包袱锤(Scissors-Paper-Rock) ...
- 【聆思CSK6视觉AI开发套件试用】基于AI手势识别的剪子包袱锤游戏
本篇文章来自极术社区与聆思科技组织的CSK6 视觉AI开发套件活动,更多开发板试用活动请关注极术社区网站.作者:寒冰1988 感谢极术社区联合聆思组织的本次活动,很荣幸得到本次体验国产AI MCU的机 ...
- 剪子-包袱-锤(模拟题,机器人根据我出的情况进行统计,决定他出什么,我再根据他出什么决定我出什么,7种情况)
剪子-包袱-锤 Time Limit: 1000 ms Memory Limit: 65536 KiB Special Judge Submit Statistic Problem Descripti ...
最新文章
- 王石:人生60岁才是开始
- CoreData 从入门到精通(四)并发操作
- springboot扫描组件_springboot多模块包扫描问题的解决方法
- 线程之售票系统pthread_mutex,_lock,_unlock
- python写空气质量提醒_Python数据可视化:2018年空气质量分析
- oracle加大内存对大表,在ORACLE里如果遇到特别大的表,可以使用分区的表来改变其应用程序的性能...
- Linux下硬盘分区详解
- 栈的基本操作(详细)
- ibm刀片服务器 维护,IBM刀片服务器 一刀搞定企业信息化
- 九、SpringBoot——默认错误页面错误页面定制
- fabs在python中是什么意思_Python fabs() 与 abs() 区别是什么?
- 小学计算机教学打字,怎么快速学拼音打字-小学生如何更快的学习拼音
- 卸载2345套件的本人认为最好的方法
- Python求两个或三个正整数的最大公约数和最小公倍数
- 有效解决应用程序无法正常启动(0xc000007b)的错误
- web前端开发基础知识_薪资30K+的web前端怎么做到的?
- Metal 框架之使用 Metal Debugger 查看 GPU 工作负载
- 微信小程序商城优势在什么地方
- 音视频领域火爆的开源播放器项目
- 线性代数 04.07 向量组的线性相关性 习题课