Участник:Vary10
CSChat
1. Разобрался с swift и написал игрушку в playground:
import Foundation
class Soldier {
var HP, Strength: Int
var Team: String
init (team: String) {
HP = Int(arc4random_uniform(20)) + 40
Strength = Int(arc4random_uniform(10)) + 1
Team = team
}
func hit(enemy: Soldier) -> Int{
var crit = Int(arc4random_uniform(3))
var dam = (Strength + Int(arc4random_uniform(10)) + 1) * crit
enemy.HP -= dam
return dam
}
func dead() -> Bool{
if HP <= 0 {
println("Soldier from team \(self.Team) dies.\n")
}
return (HP <= 0)
}
}
class Swordsman: Soldier {
override func hit(enemy: Soldier) -> Int{
var dam = super.hit(enemy)
if dam != 0 {
println("Swordsman from team \(self.Team) slashes enemy soldier for \(dam) HP.\n")
} else {
println("Swordsman from team \(self.Team) misses.\n")
}
return 1
}
}
class Archer: Soldier {
override func hit(enemy: Soldier) -> Int{
var dam = super.hit(enemy)
if dam != 0 {
println("Archer from team \(self.Team) slashes enemy soldier for \(dam) HP.\n")
} else {
println("Archer from team \(self.Team) misses.\n")
}
return 1
}
}
class Army {
let Name: String
var Soldiers: [Soldier] = []
init (n: Int, name: String) {
Name = name
for i in 0..<n {
var k = Int(arc4random_uniform(2))
if k == 0 {
Soldiers.append(Swordsman(team: name))
} else {
Soldiers.append(Archer(team: name))
}
}
}
}
func battle(A: Army, B: Army) -> Army {
var attacker = true
while A.Soldiers.count != 0 && B.Soldiers.count != 0 {
if attacker {
A.Soldiers.last!.hit(B.Soldiers.last!)
if B.Soldiers.last!.dead(){
B.Soldiers.removeLast()
}
attacker = false
} else {
B.Soldiers.last!.hit(A.Soldiers.last!)
if A.Soldiers.last!.dead(){
A.Soldiers.removeLast()
}
attacker = true
}
}
if A.Soldiers.count > 0 {
return A
} else {
return B
}
}
println(battle(Army(n: 5, name: "Red"), Army(n: 5, name: "White")).Name + " wins.\n")}
2) Освоился в среде Xcode, написал простую записную книжку:
https://github.com/vary10/phonebook/tree/master/PhoneBook.git
3) Узнал, как использовать CocoaPods, установил его в новое todo приложение: https://github.com/vary10/ToDo.git
4) С помощью CocoaPods установил Magical Record для лучшего использования бд CoreData в своем todo приложении: https://github.com/vary10/ToDo.git
5) Начал использовать делегатов, сделал popup-viewcontroller для выбора цвета для события в todo: https://github.com/vary10/ToDo.git
6) Перешел к работе над основным приложением, сделал внешний вид: https://github.com/cs-hse-projects/CSChat.Valery_Girkin/tree/develop