Участник:Vary10

Материал из Wiki - Факультет компьютерных наук
Версия от 22:40, 17 марта 2015; Vary10 (обсуждение | вклад) (CSChat)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

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

7) Научились перемещать вью: https://github.com/vary10/physics.git