Advertisement
Guest User

Untitled

a guest
Jan 16th, 2019
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 4.42 KB | None | 0 0
  1. //: Playground - noun: a place where people can play
  2.  
  3. import UIKit
  4.  
  5. //var str = "Hello, playground"
  6.  
  7. //print(str)
  8. /*
  9.  
  10. //var person = ("John", "Smith")
  11.  
  12. var person = (firstName: "John", lastName: "Smith")
  13.  
  14. var firstName = person.firstName // John
  15. var lastName = person.lastName // Smith
  16.  
  17. var lastName2 = person.1 // Smith
  18.  
  19. print(lastName2)
  20.  
  21. var point = (0, 0)
  22.  
  23. point.0 = 10
  24. point.1 = 15
  25.  
  26. print(point) // (10, 15)
  27.  
  28.  
  29. var origin = (x: 0, y: 0)
  30.  
  31. var point2 = origin
  32. point2.x = 3
  33. point2.y = 5
  34.  
  35. print(origin) // (0, 0)
  36. print(point2) // (3, 5)
  37.  
  38.  
  39.  
  40. var number = (123)
  41.  
  42. print(number) // 123
  43. print(number.0) // 123
  44. print(number.0.0) // 123
  45. print(number.0.0.0) // 123
  46. print(number.0.0.0.0.0.0.0) // 123
  47.  
  48.  
  49.  
  50. var person = (firstName: "John", lastName: "Smith")
  51.  
  52. var (firstName, lastName) = person
  53.  
  54. var (onlyFirstName, _) = person
  55. var (_, onlyLastName) = person
  56.  
  57.  
  58. */
  59. /*
  60. enum iOSDeviceType {
  61.     case iPhone(String)
  62.     case iPad(String)
  63.     case iWatch
  64. }
  65.  
  66. var myDevice = iOSDeviceType.iPhone("8")
  67. var six = iOSDeviceType.iPhone("8")
  68. var sixPlus = iOSDeviceType.iPhone("8 Plus")
  69.  
  70. // testing equlity with == wont work
  71. // myDevice == six
  72. // myDevice == sixPlus
  73.  
  74. func sameDevice(firstDevice: iOSDeviceType,
  75.                 secondDevice: iOSDeviceType) -> Bool {
  76.     switch (firstDevice, secondDevice) {
  77.     case (.iPhone(let a), .iPhone(let b)) where a == b:
  78.         return true
  79.     case (.iPad(let a), .iPad(let b)) where a == b:
  80.         return true
  81.     case (.iWatch, .iWatch):
  82.         return true
  83.     default:
  84.         return false
  85.     }
  86. }
  87.  
  88. print(sameDevice(myDevice, six)) // true
  89. print(sameDevice(myDevice, sixPlus)) // false
  90. print(sameDevice(myDevice, iWatch)) // false
  91.  
  92. */
  93.  
  94.  
  95. print("Exercise One")
  96. enum Direction
  97. {
  98.     case Up
  99.     case Down
  100.     case Left
  101.     case Right
  102. }
  103.  
  104. var location = (x: 0, y: 0)
  105.  
  106. var steps: [Direction] = [.Up, .Up, .Left, .Down, .Left]
  107.  
  108. // your code here
  109. let sizeOfSteps = steps.count
  110.  
  111. for steps in steps //0...sizeOfSteps
  112. {
  113.     switch (steps)
  114.     {
  115.         /*
  116.         case 0:
  117.             print(steps)
  118.         default:
  119.             break
  120.         */
  121.        
  122.         case .Up :
  123.             location.y+=1
  124.         case .Down :
  125.             location.y-=1
  126.         case .Left :
  127.             location.x-=1
  128.         case .Right :
  129.             location.x+=1
  130.         default:
  131.             print("There is a problem. Please contact the developer.")
  132.             break
  133.     }
  134. }
  135.  
  136. print(location)
  137.  
  138.  
  139. print("")
  140. print("")
  141. print("")
  142. print("")
  143.  
  144. print("Exercise 2")
  145.  
  146. enum HandShape
  147. {
  148.     case Rock
  149.     case Paper
  150.     case Scissors
  151. }
  152.  
  153. enum MatchResult
  154. {
  155.     case Win
  156.     case Draw
  157.     case Lose
  158.     case error
  159. }
  160.  
  161.  
  162. func match(_ Player1: HandShape, _ Player2: HandShape) -> MatchResult
  163. {
  164.     //print(Player1)
  165.     //print(Player2)
  166.     if(Player1==Player2)
  167.     {
  168.         return .Draw
  169.     }
  170.     else if(Player1 == .Rock && Player2 == .Scissors)
  171.     {
  172.         return .Win
  173.     }
  174.     else if(Player1 == .Rock && Player2 == .Paper)
  175.     {
  176.         return .Lose
  177.     }
  178.     else if(Player1 == .Scissors && Player2 == .Paper)
  179.     {
  180.         return .Win
  181.     }
  182.     else if(Player1 == .Scissors && Player2 == .Rock)
  183.     {
  184.         return .Lose
  185.     }
  186.     else if(Player1 == .Paper && Player2 == .Rock)
  187.     {
  188.         return .Win
  189.     }
  190.     else if(Player1 == .Paper && Player2 == .Scissors)
  191.     {
  192.         return .Lose
  193.     }
  194.    
  195.     return .error
  196. }
  197.  
  198. print(match(.Rock, .Scissors))
  199. print(match(.Rock, .Paper))
  200. print(match(.Scissors, .Scissors))
  201.  
  202.  
  203. print("")
  204. print("")
  205. print("")
  206. print("")
  207.  
  208. print("Exercise 3")
  209.  
  210.  
  211. var strings = ["tuples", "are", "awesome", "tuples", "are", "cool",
  212.                "tuples", "tuples", "tuples", "shades"]
  213.  
  214. var countedStrings: [(String,Int)] = []
  215.  
  216. var stringsLength=strings.count
  217. var count=0
  218. var count2=0
  219.  
  220.  
  221. for string in strings
  222. {
  223.     var countedStringsLength=countedStrings.count
  224.     var addedToArray=false;
  225.    
  226.     for x in 0..<countedStrings.count
  227.     {
  228.         if(countedStrings[x].0 == string)
  229.         {
  230.             countedStrings[x].1 += 1
  231.             addedToArray=true
  232.             //print(addedToArray)
  233.         }
  234.         //print(addedToArray)
  235.     }
  236.     //print("")
  237.     if(addedToArray==false)
  238.     {
  239.        
  240.         let input = (string,1)
  241.         countedStrings.insert(input, at: count)
  242.         count+=1
  243.     }
  244.    
  245. }
  246.  
  247. print(countedStrings)
  248.  
  249. print("")
  250. print("")
  251. print("")
  252. print("")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement