uz
Feedback
ToCode

ToCode

Kanalga Telegramโ€™da oโ€˜tish

ื˜ื™ืคื™ื ืงืฆืจื™ื ืœืžืชื›ื ืชื™ื ืžืืช ื™ื ื•ืŸ ืคืจืง

Ko'proq ko'rsatish
1 419
Obunachilar
Ma'lumot yo'q24 soatlar
Ma'lumot yo'q7 kunlar
Ma'lumot yo'q30 kunlar
Postlar arxiv
ToCode
1 419
# ืœื•ืœืื•ืช ื‘ืื’ื™ื ื–ื” ื”ืชื—ื™ืœ ื›ืžื• ืจืขื™ื•ืŸ ื˜ื•ื‘, ื”ื ืชืžื™ื“ ืžืชื—ื™ืœื™ื ื›ื›ื”. ืžื•ืฆื™ืื™ื ืืช ื–ื” ืžืคื” ื•ืžื—ื‘ืจื™ื ืืช ื”ื”ื•ื ืœืฉื ื•ื”ื›ืœ ื™ืขื‘ื•ื“. ืฉืœื•ืฉื” ื—ื•ื“ืฉื™ื ืื—ืจื™ ื•ืืชื” ืขื“ื™ื™ืŸ ืจื•ื“ืฃ ืื—ืจื™ ื‘ืื’ื™ื, ืžืจื’ื™ืฉ ื›ืžื• ื‘ืœื•ืœืืช ื–ืžืŸ ื•ืžืฉื—ืง ืืช ืื•ืชื• ื™ื•ื ื‘ื”ื™ืœื•ืš ื—ื•ื–ืจ. ื•ืขื›ืฉื™ื• ืžื”? ืœื”ื—ื–ื™ืจ ืืช ื”ืžืคืชื—ื•ืช? ืœื–ืจื•ืง ืขื‘ื•ื“ื” ืฉืœ ืฉืœื•ืฉื” ื—ื•ื“ืฉื™ื? ื•ืื•ืœื™ ืื ื—ื ื• ื›ืžืขื˜ ืฉื? ืœื•ืœืื•ืช ื‘ืื’ื™ื ื›ืืœื” ื”ืŸ ื‘ืขื™ื” ืืžื™ืชื™ืช. ื”ืŸ ื™ื›ื•ืœื•ืช ืœืฉืื•ื‘ ื’ื ืžืชื›ื ืชื™ื ื˜ื•ื‘ื™ื, ื•ื”ืŸ ืชืžื™ื“ ืžื˜ืขื•ืช. ื‘ื›ืœ ื ืงื•ื“ื” ืงืœ ืœืจืื•ืช ืืช ื”ื‘ืื’ ื”ื‘ื, ืื• ืืช ื”ื“ื‘ืจ ื”ื‘ื ืฉืฆืจื™ืš ืœืขืฉื•ืช ื›ื“ื™ ืœืžืฆื•ื ืืช ื”ื‘ืื’ ื”ื‘ื; ืื‘ืœ ืืฃ ืคืขื ืื™ ืืคืฉืจ ืœื“ืขืช ืžืชื™ ืื• ืื ื‘ื›ืœืœ ื ื’ื™ืข ืœืกื•ืฃ ื”ื“ืจืš. ืงืฆืช ื›ืžื• ื’ื™ืจืกื” ื–ื“ื•ื ื™ืช ืฉืœ ืžืžืฉืง ื”ื’ืœื™ืœื” ื”ืื™ื ืกื•ืคื™ ื‘ืคื™ื™ืกื‘ื•ืง. ืคื™ืชืจื•ืŸ ืฉื”ื™ื™ืชื™ ืฉืžื— ืœืจืื•ืช ืœืกื™ืคื•ืจ ื”ื–ื” ืงืฉื•ืจ ืœื”ืขืจื›ื•ืช ื–ืžื ื™ื: ื›ืžื• ืฉืžื ื”ืœื™ื ืžื‘ืงืฉื™ื ืžืžืชื›ื ืชื™ื ื”ืขืจื›ื” ื›ืžื” ื–ืžืŸ ื™ื™ืงื— ืœื‘ื ื•ืช ืคื™ืฆ'ืจ ืžืกื•ื™ื, ื ืจืฆื” ืฉืื•ืชื ืžื ื”ืœื™ื ื™ื•ื›ืœื• ืœืฉืงืฃ ื›ืžื” ื–ืžืŸ ืคื™ืฆ'ืจ ืžืกื•ื™ื ืฉื•ื•ื” ืœื”ื. ื ื’ืžืจ ื”ื–ืžืŸ? ืฉืžื™ื ื‘ืฆื“ ืืช ืžื” ืฉืขืฉื™ื ื• ื•ืขื•ื‘ืจื™ื ืœื“ื‘ืจื™ื ืื—ืจื™ื. ื ืงืกื˜!

ToCode
1 419
# ื˜ื™ืคื™ื ืœื’ื™ื•ืก ืžื•ืฆืœื— ื“ืจืš upwork ืืคื•ื•ืจืง ื”ื•ื ืืชืจ ืœื’ื™ื•ืก ืžืชื›ื ืชื™ื ืคืจื™ืœืื ืกืจื™ื. ื‘ืขื•ืœื ืคื™ืชื•ื— ื•ื•ื‘ ื”ืžื“ื™ื ื•ืช ื”ืžื›ื›ื‘ื•ืช ืฉื ื”ืŸ ื”ื•ื“ื• ื•ืื•ืงืจืื™ื ื” ื•ื”ืžื—ื™ืจื™ื ื ืขื™ื ื‘ื™ืŸ 20 ืœ 50 ื“ื•ืœืจ ืœืฉืขื”. ืžื” ืฉื”ื•ืคืš ืืช ืืคื•ื•ืจืง ืœื›ืœ ื›ืš ืžื•ืฆืœื— ื”ื•ื ื”ืœื™ืš ื”ื’ื™ื•ืก ื”ืžื”ื™ืจ - ื‘ืขื•ื“ ืฉืื ื ืจืฆื” ืœื’ื™ื™ืก ืžืชื›ื ืชืช ืฉื›ื™ืจื” ืœืขื‘ื•ื“ื” ื ืฆื˜ืจืš ืœืขื‘ื•ืจ ื‘ืจื•ื‘ ื”ื—ื‘ืจื•ืช ืฉื‘ืขื” ืžื“ื•ืจื™ ื’ื™ื”ื ื•ื (ื•ืื– ืขื•ื“ ืงืฆืช), ื‘ืืคื•ื•ืจืง ืืคืฉืจ ืœื”ืชื—ื™ืœ ืœืขื‘ื•ื“ ื”ืจื‘ื” ืคืขืžื™ื ืชื•ืš ื™ื•ื ืื• ื™ื•ืžื™ื™ื, ื•ืื ืื™ืŸ ื›ื™ืžื™ื” ืืคืฉืจ ื’ื ืœื—ืชื•ืš ืžื”ื™ื•ื ืœื”ื™ื•ื. ืื ื™ืฉ ืœื›ื ืคืจื•ื™ืงื˜ ื•ืจื•ืฆื™ื ืœื ืกื•ืช ืœื’ื™ื™ืก ืื ืฉื™ื ืื ื™ ืžืžืฉ ืžืžืœื™ืฅ ืœื ืกื•ืช ืืช ืืคื•ื•ืจืง. ื”ื ื” ื›ืžื” ื˜ื™ืคื™ื ืฉืขื–ืจื• ืœื™ ื‘ื’ื™ื•ืกื™ื ื•ืื ื™ ืžืงื•ื•ื” ืฉื™ืขื–ืจื• ื’ื ืœื›ื: 1. ืคืจืกืžื• ืžื•ื“ืขื” ื‘ืจื•ืจื” ืขื ื“ืจื™ืฉื•ืช ื›ืžื” ืฉื™ื•ืชืจ ืžืคื•ืจื˜ื•ืช. ืขื“ื™ืฃ ืœื’ื™ื™ืก ืคืจื™ืœืื ืกืจ ืœืžืฉื™ืžื” ืกืคืฆื™ืคื™ืช ื‘ืคืจื•ื™ืงื˜ ื•ืื– ืœื”ืžืฉื™ืš ืื™ืชื• ื”ืœืื”, ืžืืฉืจ ืœื ืกื•ืช ืœื’ื™ื™ืก "ืžืชื›ื ืช ื•ื•ื‘" ืฉื™ืขืฉื” ื”ื›ืœ ืžื”ื›ืœ. 2. ืื—ืจื™ ืคื™ืจืกื•ื ื”ืžื•ื“ืขื” ืชืงื‘ืœื• ืื™ื ืกื•ืฃ ืคื ื™ื•ืช, ื›ื•ืœืœ ืžืื ืฉื™ื ืœื ืจืœื•ื•ื ื˜ื™ื. ืžืืœื” ืฉื ืจืื™ื ืœื›ื ืจืœื•ื•ื ื˜ื™ื ื‘ืงืฉื• ืœืจืื•ืช ืงื•ื“. ืœืคืจื™ืœืื ืกืจื™ื ืจืฆื™ื ื™ื™ื ืฉื ื™ืฉ ื—ืฉื‘ื•ืŸ ื’ื™ื˜ื”ืื‘ ืื• ืคืจื•ื™ืงื˜ื™ื ืฉืขื‘ื“ื• ืขืœื™ื”ื ื›ื‘ืจ ื•ื”ื ื™ื›ื•ืœื™ื ืœืฉืชืฃ, ืื• ืœืคื—ื•ืช ืคืจื•ื™ืงื˜ื™ ื“ื•ื’ืžื” ืฉื›ืชื‘ื•. 3. ื‘ืงืจื™ืืช ื”ืงื•ื“ ืขื“ื™ืฃ ืœืงื‘ืœ ืงื•ื“ ืงื˜ืŸ ื•ื˜ื•ื‘ ืžืืฉืจ ื’ื“ื•ืœ ื•ืจืข. ืชื ื™ื—ื• ืฉื”ืคืจื™ืœืื ืกืจ ืฉืชื™ืงื—ื• ืœื ื”ื•ืœืš ืœืฉื ื•ืช ืืช ืกื’ื ื•ืŸ ื”ืขื‘ื•ื“ื” ืฉืœื• ื‘ืฉื‘ื™ืœื›ื. 4. ืฉื™ื—ืช ื–ื•ื ืงืฆืจื” ื™ื›ื•ืœื” ืœื”ื’ื™ื“ ืœื›ื ื”ืžื•ืŸ ืขืœ ื”ื‘ืŸ ืื“ื ื•ืขืœ ื”ืชืงืฉื•ืจืช ืฉืœื›ื ืื™ืชื•. ืชืงืฉื•ืจืช ื”ื™ื ืืคื™ืœื• ื™ื•ืชืจ ื—ืฉื•ื‘ื” ืžืื™ื›ื•ืช ื”ืงื•ื“, ื•ื›ื‘ืจ ื ืคืœืชื™ ื›ืžื” ืคืขืžื™ื ื‘ื’ื™ื•ืก ืคืจื™ืœืื ืกืจ ืขื ืงื•ื“ ื˜ื•ื‘ ื•ืื ื’ืœื™ืช ื’ืจื•ืขื”. 5. ื”ืžื—ื™ืจ ืœื ื—ืฉื•ื‘ - ื‘ืžื•ื‘ืŸ ื”ื–ื” ืฉืคืจื™ืœืื ืกืจ ื˜ื•ื‘ ืฉื•ื•ื” ืœืงื—ืช ื’ื ื‘ืžื—ื™ืจ ื™ื•ืชืจ ื’ื‘ื•ื”, ื•ืคืจื™ืœืื ืกืจ ื’ืจื•ืข ืœื ื›ื“ืื™ ืœืงื—ืช ืœื ืžืฉื ื” ื›ืžื” ื”ื•ื ื–ื•ืœ. ื–ื™ื›ืจื• ืฉื”ืคืจื™ืœืื ืกืจ ืœื ื”ื•ืœืš ืœื”ืฉืชื ื•ืช ื‘ืฉื‘ื™ืœื›ื. 6. ื”ืžื˜ืจื” ืฉืœื ื• ื‘ื’ื™ื•ืก ืคืจื™ืœืื ืกืจ ื”ื™ื ืœืžืฆื•ื ื›ืžื” ืฉื™ื•ืชืจ ืžื”ืจ ื‘ืŸ ืื“ื ืฉื›ื•ืชื‘ ืงื•ื“ ื˜ื•ื‘ ื•ื™ืฉ ืœื ื• ืชืงืฉื•ืจืช ื˜ื•ื‘ื” ืื™ืชื•. ืชืžื™ื“ ืืคืฉืจ ืœื—ืชื•ืš ื›ืฉื–ื” ืœื ื”ื•ืœืš (ื•ืงืจื” ืœื™ ื’ื ืฉืคืจื™ืœืื ืกืจื™ื ื ืขืœืžื• ืœื™ ื‘ืืžืฆืข ืขื‘ื•ื“ื”). 7. ื”ื›ื™ื ื• ืืช ื”ืคืจื•ื™ืงื˜ ืฉืœื›ื. ืืชื ืœื ืจื•ืฆื™ื ืฉื”ืคืจื™ืœืื ืกืจ ื™ื‘ื–ื‘ื– ื–ืžืŸ ื‘ื”ืชืงื ื•ืช ืื• ื‘ืœื”ื‘ื™ืŸ ืžื” ืฆืจื™ืš ืœืขืฉื•ืช. ืขื“ื™ืฃ ืœื”ื›ื™ืŸ ืžืจืืฉ ืงื‘ืฆื™ ื“ื•ืงืจ ืื• ืžืกืžืš ื”ื•ืจืื•ืช ืžืคื•ืจื˜ ืฉืžืกื‘ื™ืจ ืžื” ืฆืจื™ืš ืœืขืฉื•ืช ื‘ืฉื‘ื™ืœ ืœื”ืชื—ื™ืœ ืœืขื‘ื•ื“. 8. ื“ื™ืจืฉื• ืชื™ืขื•ื“ ืžืกื•ื“ืจ ืฉืœ ื”ืขื‘ื•ื“ื” ื•ืจืง ื“ืจืš ื”ืคืœื˜ืคื•ืจืžื” ืฉืœ ืืคื•ื•ืจืง. ืฉื•ื•ื” ืœื–ื›ื•ืจ ืฉืืชื ืœื ื‘ืืžืช ื™ื•ื“ืขื™ื ืžื™ ื”ื‘ืŸ ืื“ื ืฉืขื•ื‘ื“ ืืชื›ื, ื•ืœืคื—ื•ืช ื‘ื”ืชื—ืœื” ืชื™ืขื•ื“ ื˜ื•ื‘ ืฉืœ ื”ืฉืขื•ืช ืžื•ืจื™ื“ ืืช ื”ืกื™ื›ื•ืŸ ืœืจืžืื•ื™ื•ืช.

ToCode
1 419
ืื– ืžื”, ืœื•ื•ืชืจ? ืœื ืœื”ืชื›ื•ื ืŸ ืœืฉื•ื ื“ื‘ืจ? ืœื›ืชื•ื‘ ืงื•ื“ ื›ืื™ืœื• ืื™ืŸ ืžื—ืจ ื›ื™ ืžืžื™ืœื ื›ืœ ืžื” ืฉื ื›ืชื•ื‘ ื ืฆื˜ืจืš ืœืฉื›ืชื‘? ืื ื™ ืœื ื”ื™ื™ืชื™ ื”ื•ืœืš ืœืฉื. ื”ืžืกืงื ื” ืฉืœื™ ืžืฉืœื•ืฉืช ื”ื’ื™ืฉื•ืช ืฉืจืื™ื ื• ื”ื™ื ืฉื›ื“ืื™ ืœื”ืชืืžืฅ ื•ืœื›ืชื•ื‘ ืงื•ื“ ืคืฉื•ื˜ - ืงื•ื“ ืฉืงืœ ืœื”ื‘ื™ืŸ ืื•ืชื• ื•ืงืœ ืœืฉื ื•ืช ืื•ืชื• ื›ืฉื ืฆื˜ืจืš. ืฉื•ื•ื” ื’ื ืœื”ื•ืกื™ืฃ ื‘ื“ื™ืงื•ืช ืœืงื•ื“ ื”ืคืฉื•ื˜ ื”ื–ื”. ื”ืขื•ื‘ื“ื” ืฉื”ื™ื” ืœื™ ืงืœื˜ ืœื“ื•ื’ืžื” ืฉื™ื›ืœืชื™ ืœื”ืคืขื™ืœ ื•ื™ื“ืขืชื™ ื‘ื“ื™ื•ืง ืžื” ื”ืžืกืคืจ ืฉืื ื™ ืืžื•ืจ ืœืงื‘ืœ ืื—ืจื™ 80 ื™ืžื™ื ืขื–ืจื” ืœื™ ืžืื•ื“ ืœื”ืจื™ืฅ ืขื•ื“ ื•ืขื•ื“ ื’ื™ืฉื•ืช ื•ืคื™ืชืจื•ื ื•ืช ื•ืœืืจื’ืŸ ืžื—ื“ืฉ ืืช ื”ืงื•ื“ ืขื“ ืฉืžื’ื™ืขื™ื ืœืชื•ืฆืื” ืขื•ื‘ื“ืช. ื”ืžืฆื™ืื•ืช ื”ื™ื ืœื ื—ื‘ืจื”. ื”ื™ื ืชืžื™ื“ ืชืคืชื™ืข ืขื ื“ืจื™ืฉื•ืช ืฉืœื ื™ื“ืขื ื• ืฉื”ื•ืœื›ื•ืช ืœื”ื’ื™ืข ื•ืชืžื™ื“ ืชืงืœืงืœ ื‘ื“ื™ื•ืง ื›ืฉื“ื‘ืจื™ื ืžืชื—ื™ืœื™ื ืœืขื‘ื•ื“. ื”ื“ืจืš ืœื”ืชืžื•ื“ื“ ืื™ืชื” ื”ื™ื ืœื ืœืงื—ืช ืœืœื‘, ืœืžื—ื•ืง ืงื•ื“ ื•ืœื›ืชื•ื‘ ืงื•ื“ ื—ื“ืฉ ืฉื™ืชืื™ื ื˜ื•ื‘ ื™ื•ืชืจ ืœืžืฆื™ืื•ืช ื”ื—ื“ืฉื” ืฉื’ื™ืœื™ืชื.

ToCode
1 419
    def grow_up(self):
        if self.time_to_reproduce == 0:
            self.time_to_reproduce = 6
            self.fish_tank.create_fish(8)
        else:
            self.time_to_reproduce -= 1

    def __repr__(self):
        return f"{self.time_to_reproduce}"

class FishTank:
    def __init__(self, fish_initial_states):
        self.fish = [Fish(i, self) for i in fish_initial_states]

    def create_fish(self, time_to_reproduce):
        self.fish.append(Fish(time_to_reproduce, self))

    def count(self):
        return len(self.fish)

    def play(self):
        for fish in self.fish[:]:
            fish.grow_up()

################

fish = []

with open('demo.txt') as f:
    fish = [int(x) for x in f.read().split(',')]

tank = FishTank(fish)

for i in range(80):
    tank.play()

print(tank.count())
ื”ืคื™ืชืจื•ืŸ ืžื•ื ื—ื” ื”ืขืฆืžื™ื ื™ืฆื (ื›ืฆืคื•ื™) ื”ื›ื™ ืืจื•ืš ืžื›ืœ ื”ืฉืœื•ืฉื”. ื”ืœื•ื’ื™ืงื” ื”ืžืจื›ื–ื™ืช ืฉืœ ื”ื’ื“ื™ืœื” ืžืฆืื” ืืช ืžืงื•ืžื” ื‘ืžื—ืœืงื” Fish ื•ื”ืืงื•ื•ืจื™ื•ื ืื—ืจืื™ ืขืœ ื™ืฆื™ืจืช ื“ื’ื™ื ื—ื“ืฉื™ื. ื’ื ืคื” ืœื ื‘ืจื—ื ื• ืžืฉื›ืคื•ืœ ื”ืžืขืจืš ืœืคื ื™ ื”ืื™ื˜ืจืฆื™ื” ื‘ play, ืื‘ืœ ื‘ื’ืœืœ ืžื‘ื ื” ื”ืงื•ื“ ื™ื•ืชืจ ืงืฉื” ืœืจืื•ืช ืืช ื”ืฆื•ืจืš ื‘ืฉื›ืคื•ืœ ื”ื–ื”. ืฉื™ืžื• ืœื‘ ืœืคื•ื ืงืฆื™ื”:
    def play(self):
        for fish in self.fish[:]:
            fish.grow_up()
ืžืงืจื™ืืช ืฉืœื•ืฉืช ื”ืฉื•ืจื•ืช ืœื ื‘ืจื•ืจ ืœืžื” ืื ื™ ืฆืจื™ืš ืœืฉื›ืคืœ ืืช self.fish ืœืคื ื™ ืฉืื ื™ ืงื•ืจื ืœ grow_up. ืจืง ืื ืžื“ืคื“ืคื™ื ืœืžืขืœื” ืืคืฉืจ ืœืจืื•ืช ืฉืœื›ืœ ื“ื’ ื™ืฉ ื‘ืขืฆื ื—ื™ื‘ื•ืจ ืœืืงื•ื•ืจื™ื•ื ื‘ื• ื”ื•ื ื ืžืฆื ื•ืฉื”ืคื•ื ืงืฆื™ื” grow_up ืขืœื•ืœื” ืœืฉื ื•ืช ืืช ืžืขืจืš ื”ื“ื’ื™ื. ื‘ืžื›ืฉื•ืœ ื”ื™ื•ืชืจ ืจืฆื™ื ื™ ื ืชืงืœืชื™ ื›ืฉื”ื’ืขืชื™ ืœื›ืชื•ื‘ ืืช ื”ืื•ืคื˜ื™ืžื™ื–ืฆื™ื”. ื‘ืขื•ืœื ืžื•ื ื—ื” ื”ืขืฆืžื™ื, ื›ื“ื™ ืœื—ืœืง ืืช ื”ื“ื’ื™ื ืœืงื‘ื•ืฆื•ืช ื”ื™ื™ืชื™ ืžืขื“ื™ืฃ ืœื”ืฉืชืžืฉ ื‘ืžื‘ื ื” ื”ืงื™ื™ื - ื›ืœื•ืžืจ ืœื‘ื ื•ืช 10 ืืงื•ื•ืจื™ื•ืžื™ื. ื›ืœ ืืงื•ื•ืจื™ื•ื ื™ื›ื™ืœ ื“ื’ื™ื ืฉืžืชืื™ืžื™ื ื‘ื’ื™ืœ, ื•ืืคืฉืจ ื™ื”ื™ื” ืœื”ืขื‘ื™ืจ ื“ื’ื™ื ื‘ื™ืŸ ืืงื•ื•ืจื™ื•ืžื™ื ืฉื•ื ื™ื. ื ื›ื•ืŸ, ืื ื™ ืืžื—ืง ืืช ื”ืžื—ืœืงื” Fish ื•ืืฆื˜ืจืš ืœืฉื ื•ืช ืงืฆืช ืืช FishTank, ืื‘ืœ ื”ื™ื™ ื–ื” ื™ื›ื•ืœ ืืคื™ืœื• ืœืขื‘ื•ื“. ื”ื ื™ืกื™ื•ืŸ ื”ืจืืฉื•ืŸ ืฉืœื™ ืœืคื™ืชืจื•ืŸ ื ืจืื” ื›ืš ืื‘ืœ ื”ื•ื ืœื ืขื‘ื“:
class FishTank:
    def __init__(self, fish_count, next_tanks):
        self.fish = fish_count
        self.next_tanks = next_tanks

    def create_fish(self):
        self.fish += 1

    def count(self):
        return self.fish

    def play(self):
        for fish_tank in self.next_tanks:
            fish_tank.fish += self.fish
        self.fish = 0

    def __repr__(self):
        return f"{self.fish}"

################

fish = []

with open('demo.txt') as f:
    fish = [int(x) for x in f.read().split(',')]

tanks = [FishTank(0, []) for i in range(10)]
for ti in range(9, 1, -1):
    tanks[ti].next_tanks = [tanks[ti - 1]]
tanks[0].next_tanks = [tanks[6], tanks[8]]

for i in fish:
    tanks[i].create_fish()

for i in range(80):
    for ti in range(9, 0, -1):
        tanks[ti].play()

print(sum(t.count() for t in tanks))
ืžื” ืฉืงื•ืจื” ื›ืืŸ ื–ื” ืฉื›ืฉืื ื™ ืžืขื‘ื™ืจ ื“ื’ื™ื ืžืืงื•ื•ืจื™ื•ื ืื—ื“ ืœืฉื ื™ ื”ื ื‘ืขืฆื ืžืชื•ื•ืกืคื™ื ืœื“ื’ื™ื ืฉื›ื‘ืจ ื ืžืฆืื™ื ื‘ืืงื•ื•ืจื™ื•ื ื”ืฉื ื™ ื•ืื– ืื™ ืืคืฉืจ ืœื”ื‘ื“ื™ืœ ื‘ื™ื ื ืœื‘ื™ืŸ ื”ื“ื’ื™ื ืฉื”ื™ื• ืฉื ืงื•ื“ื (ืื•ืชื ืฆืจื™ืš ืœื”ืขื‘ื™ืจ ืœืืงื•ื•ืจื™ื•ื ื”ื‘ื ื‘ืชื•ืจ). ื‘ืžื™ืœื™ื ืื—ืจื•ืช, ื”ื™ื™ื ื• ืจื•ืฆื™ื ืœื”ืขื‘ื™ืจ ืืช ื›ืœ ื”ื“ื’ื™ื ืžื›ืœ ืืงื•ื•ืจื™ื•ื ืœื–ื” ืฉืื—ืจื™ื• ื‘ืื•ืชื• ื–ืžืŸ, ืื‘ืœ ื”ืงื•ื“ ืฉืœื™ ืขื•ืฉื” ืืช ื–ื” ืืงื•ื•ืจื™ื•ื ืื—ืจื™ ืืงื•ื•ืจื™ื•ื. ื–ืืช ื”ืœื•ืœืื” ื”ื‘ืขื™ื™ืชื™ืช:
for i in range(1):
    for ti in range(9, 0, -1):
        tanks[ti].play()
ื•ืื– ื‘ืชื•ืš play ื™ืฉ ืœื ื•:
def play(self):
    for fish_tank in self.next_tanks:
        fish_tank.fish += self.fish
    self.fish = 0
ื›ืฉืžื‘ื™ื ื™ื ืืช ื”ื‘ืขื™ื” ืืคืฉืจ ื’ื ืœืคืชื•ืจ ืื•ืชื” ื‘ืื•ืชื” ื“ืจืš ืฉื”ื™ื ื ืคืชืจื” ื‘ืฉื™ื˜ื•ืช ื”ืงื•ื“ืžื•ืช, ื›ืœื•ืžืจ ื”ืงื•ื“ ื”ืจืืฉื™ ื™ื”ื™ื”:
for i in range(80):
    grown_up_fish_count = tanks[0].count()
    tanks = [*tanks[1:], FishTank(0, [tanks[-2]])]
    tanks[6].fish += grown_up_fish_count
    tanks[8].fish += grown_up_fish_count
    print(tanks)
ืื‘ืœ ื”ืืžืช ืฉืื™ืš ืฉืœื ืžืกื•ื‘ื‘ื™ื ืืช ื–ื” ื”ืคื™ืชืจื•ืŸ ืžื•ื ื—ื” ื”ืขืฆืžื™ื ืœื ื‘ืืžืช ื ืชืŸ ืขืจืš. ื›ืชื™ื‘ืช ื”ืžื—ืœืงื•ืช ื•ื—ืœื•ืงืช ื”ืขื‘ื•ื“ื” ื‘ื™ื ื™ื”ืŸ ืจืง ืงื™ื‘ืขื” ืืฆืœื™ ื“ืจืš ืžื—ืฉื‘ื” ืžืกื•ื™ืžืช ื•ืœื ืฉืจื“ื” ื™ืคื” ืืช ื”ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ืฉืœ ื”ื—ืœืง ื”ืฉื ื™. ## ืฉื•ืจื” ืชื—ืชื•ื ื”

ToCode
1 419
ื”ื‘ืขื™ื” ืฉืฉื™ื“ืจื•ื’ ืžื”ืคื™ืชืจื•ืŸ ืฉื›ืชื‘ืชื™ ืœืคื™ืชืจื•ืŸ ืฉืžื—ืœืง ืืช ื”ื“ื’ื™ื ืœืงื‘ื•ืฆื•ืช ืื•ืžืจ ื‘ืขืฆื ืœื”ื—ืœื™ืฃ ืืช ื›ืœ ื”ืงื•ื“. ื”ื“ื‘ืจ ื”ื™ื—ื™ื“ ืฉืื•ืœื™ ืื•ื›ืœ ืœื”ืฉืชืžืฉ ื‘ื• ื–ื• ื”ืคืงื•ื“ื” ืฉืงื•ืจืืช ืืช ื”ืงืœื˜ ืžื”ืงื•ื‘ืฅ. ื›ืœ ื”ืฉืืจ - ื”ืžืขื‘ืจ ืขืœ ื”ื“ื’ื™ื, ื”ื•ืจื“ืช 1 ืžืžืกืคืจ ื”ื™ืžื™ื ืฉืœ ื›ืœ ื“ื’, ื‘ื“ื™ืงื” ื›ืžื” ื™ืžื™ื ื ืฉืืจื• - ื›ืœ ื–ื” ืฆืจื™ืš ืœืœื›ืช. ื”ืงื•ื“ ื”ืžืขื•ื“ื›ืŸ ืฉืœื™ ื ืจืื” ื›ืš:
fish = [0] * 10

with open('demo.txt') as f:
    fish_ages = [int(x) for x in f.read().split(',')]
    for age in fish_ages:
        fish[age] += 1

def play():
    global fish
    new_fish = [*fish[1:], 0]
    new_fish[6] += fish[0]
    new_fish[8] += fish[0]
    fish = new_fish

for i in range(80):
    play()

print(sum(fish))
ื•ื”ื•ื ื›ื‘ืจ ืคื•ืชืจ ื‘ืœื™ ื‘ืขื™ื” ืืช ื”ืชืจื’ื™ืœ ื’ื ืขื‘ื•ืจ 256 ื™ืžื™ื. ## ืคื™ืชืจื•ืŸ 2 - ื”ื’ื™ืฉื” ื”ืคื•ื ืงืฆื™ื•ื ืืœื™ืช ื”ื™ืชืจื•ืŸ ืฉืœ ื”ื’ื™ืฉื” ื”ื ืื™ื‘ื™ืช ื”ื™ื” ืฉืงืœ ืœื›ืชื•ื‘ ืื•ืชื”. ื”ื’ื™ืจืกื” ื”ืจืืฉื•ื ื” ืชืืžื” ืคื—ื•ืช ืื• ื™ื•ืชืจ ืœืื™ืš ืฉื—ืฉื‘ืชื™ ืขืœ ื”ืฉืืœื” ื‘ืงืจื™ืื” ื”ืจืืฉื•ื ื” ืฉืœื”, ื•ื”ืืชื’ืจ ื”ื™ื—ื™ื“ ื”ื™ื” ืœืจืื•ืช ืืช ื”ืฆื•ืจืš ืœืฉื›ืคืœ ืืช ื”ืžืขืจืš ื›ื“ื™ ืœื ืœืขื“ื›ืŸ ืื•ืชื• ื‘ืืžืฆืข ื”ืœื•ืœืื”. ืื‘ืœ ื”ื—ื™ืกืจื•ืŸ ืฉืœ ื”ื’ื™ืฉื” ื”ื ืื™ื‘ื™ืช ื”ื•ื ืฉื™ืฉ ืจืง ืงืฉืจ ืงืœื•ืฉ ื‘ื™ืŸ ืฉื ื™ ื”ื—ืœืงื™ื ืฉืœ ื”ืฉืืœื”. ื‘ื’ืœืœ ื”ืฆื•ืจืš ื‘ืื•ืคื˜ื™ืžื™ื–ืฆื™ื”, ื”ื™ื™ืชื™ ืฆืจื™ืš ืœื–ืจื•ืง ื›ืžืขื˜ ืืช ื›ืœ ื”ืงื•ื“ ืฉื›ืชื‘ืชื™. ื”ืžื—ืฉื‘ื” ื”ื‘ืื” ืฉืืคืฉืจ ืœื”ืฆื™ืข ื”ื™ื ืฉืื•ืœื™ ืื ื ื™ืงื— ื’ื™ืฉื” ื™ื•ืชืจ ืžืชื•ื—ื›ืžืช ืœืงื™ื“ื•ื“, ืื•ืœื™ ืื ื ืืจื’ืŸ ืืช ื”ืงื•ื“ ืื—ืจืช ืœืžืฉืœ ื‘ืชื•ืจ ืคื•ื ืงืฆื™ื•ืช ืงื˜ื ื•ืช, ืื– ื›ืŸ ื ื•ื›ืœ ืœื”ืฉืชืžืฉ ืžื—ื“ืฉ ื‘ืงื•ื“ ืฉื›ืชื‘ื ื• ืื• ืœืคื—ื•ืช ื‘ื—ืœืงื™ื ืžืžื ื• ื‘ืขืช ืžื™ืžื•ืฉ ื”ืื•ืคื˜ื™ืžื™ื–ืฆื™ื”. ืื– ื”ืœื›ืชื™ ืœื›ืชื•ื‘ ืคื™ืชืจื•ืŸ ืคื•ื ืงืฆื™ื•ื ืืœื™, ืื• ืœืคื—ื•ืช ื›ื–ื” ืฉืขื•ื ื” ืขืœ ื”ืื™ืœื•ืฆื™ื ืฉืœ ืชื›ื ื•ืช ืคื•ื ืงืฆื™ื•ื ืืœื™: ืื™ืŸ ืžืฉืชื ื™ื ื’ืœื•ื‘ืืœื™ื™ื, ืื™ืŸ Mutable Data, ื•ื›ืœ ื”ืงื•ื“ ื›ืชื•ื‘ ื‘ืชื•ืจ ืคื•ื ืงืฆื™ื•ืช ืงื˜ื ื•ืช. ื–ื” ืžื” ืฉื™ืฆื:
def flat_map(f, items):
    output = []
    for i in items:
        res = f(i)
        if type(res) == list:
            output.extend(res)
        else:
            output.append(res)
    return output

            
def process_fish(single_fish):
    if single_fish == 0:
        return [6, 8]
    else:
        return single_fish - 1


def play(fish):
    return flat_map(process_fish, fish)


def part1():
    fish = []

    with open('demo.txt') as f:
        fish = [int(x) for x in f.read().split(',')]

    for i in range(80):
        fish = play(fish)

    print(len(fish))

part1()
ื”ืคื•ื ืงืฆื™ื” process_fish ืžืงื‘ืœืช ื“ื’ ื•ืžื—ื–ื™ืจื” ืืช ื”ื“ื’ ืื• ื”ื“ื’ื™ื ืฉืฆืจื™ืš ืœืฉื™ื ื‘ืžืงื•ืžื•, ื›ืืฉืจ ื“ื’ ืžื™ื•ืฆื’ ืขืœ ื™ื“ื™ ืžืกืคืจ ืฉื”ื•ื ื›ืžื” ื™ืžื™ื ื ืฉืืจื• ืขื“ ืฉื™ืชืจื‘ื”. ื”ืคื•ื ืงืฆื™ื” play ืžืคืขื™ืœื” ืืช flat_map ืฉืžืขื“ื›ื ืช ืืช ืžืขืจืš ื”ื“ื’ื™ื ืขื ืชื•ืฆืืช ื”ืคืขืœืช process_fish ืขืœ ื›ืœ ื“ื’, ื•ืืช ื”ืคื•ื ืงืฆื™ื” flat_map ืžื™ืžืฉืชื™ ืœื‘ื“ ื›ื™ื•ื•ืŸ ืฉืื™ืŸ ื›ื–ืืช ื‘ืคื™ื™ืชื•ืŸ. ื”ืงื•ื“ ืขื•ื‘ื“. ืžื—ื–ื™ืจ ืชื•ืฆืื” ื ื›ื•ื ื” ืขื‘ื•ืจ 80 ื™ืžื™ื ื•ื ื•ืคืœ ืขื 256 ื™ืžื™ื ื›ืฆืคื•ื™. ื•ื’ื ืื•ืชื• ืฆืจื™ืš ืœื–ืจื•ืง ืœืคื— ื›ืฉืจื•ืฆื™ื ืœืชืงืŸ ืืช ื‘ืขื™ื™ืช ื”ื‘ื™ืฆื•ืขื™ื. ื–ืืช ื”ื’ื™ืจืกื” ื”ืžืชื•ืงื ืช:
def play(groups):
    new_groups = [*groups[1:], 0]
    new_groups[8] += groups[0]
    new_groups[6] += groups[0]
    return new_groups


def group_fish(fish):
    groups = [0] * 10
    for f in fish:
        groups[f] += 1

    return groups


def part2():
    fish = []
    with open('demo.txt') as f:
        fish = [int(x) for x in f.read().split(',')]

    fish = group_fish(fish)
    for i in range(80):
        fish = play(fish)

    print(sum(fish))


part2()
ืคื•ื ืงืฆื™ื™ืช ื” main ื•ื”ืžื‘ื ื” ื”ื›ืœืœื™ ื ืฉืืจ ื›ืžื• ืฉื”ื™ื”, ืื‘ืœ ืืช play ืฉื™ื ื™ืชื™ ืœื’ืžืจื™, ืืช flat_map ืฉื›ืœ ื›ืš ื”ืชืืžืฆืชื™ ืœื›ืชื•ื‘ ื–ืจืงืชื™, ืืช process_fish ื•ื” if ืฉื‘ืชื•ื›ื” ืžื—ืงืชื™ ื•ื”ื•ืกืคืชื™ ืคื•ื ืงืฆื™ื” ื—ื“ืฉื” ืฉืžืืจื’ื ืช ืืช ื”ื“ื’ื™ื ืœืคื™ ืงื‘ื•ืฆื•ืช. ื”ื’ื™ืฉื” ื”ืคื•ื ืงืฆื™ื•ื ืืœื™ืช ืœื ื”ื‘ื™ืื” ืœืฉื™ืคื•ืจ ืžืฉืžืขื•ืชื™ ื‘ื›ืžื•ืช ื”ืขื‘ื•ื“ื” ืฉืื ื™ ืฆืจื™ืš ื‘ืฉื‘ื™ืœ ืœืžืžืฉ ืืช ื”ืื•ืคื˜ื™ืžื™ื–ืฆื™ื”. ื’ื ืื™ืชื” ื”ื™ื™ืชื™ ืฆืจื™ืš ืœืฉื ื•ืช ื—ืœืง ืžืฉืžืขื•ืชื™ ืžื”ืงื•ื“. ื”ื™ื ื›ืŸ ืืคืฉืจื” ืœื™ ืœื”ืชืขืœื ืœื’ืžืจื™ ืžื”ืกื™ืคื•ืจ ืฉืœ ืขื“ื›ื•ืŸ ืžืขืจืš ื‘ืืžืฆืข ืœื•ืœืื” ื‘ื’ืœืœ ืฉื›ืœ ื”ืžื™ื“ืข ื”ื•ื Immutable, ืฉื–ื” ื ื—ืžื“. ืžืฆื“ ืฉื ื™ ื‘ื’ืœืœ ื—ื•ืกืจ ืชืžื™ื›ื” ืฉืœ ื”ืฉืคื” (ืื™ืŸ flat_map) ื”ื™ื™ืชื™ ืฆืจื™ืš ืœื”ืชืืžืฅ ื•ืœื›ืชื•ื‘ ื™ื•ืชืจ ืงื•ื“ ื‘ืฉื‘ื™ืœ ืœื”ื’ื™ืข ืœืชื•ืฆืื” ื•ื‘ืกื•ืคื• ืฉืœ ื“ื‘ืจ ื”ืคื™ืชืจื•ืŸ ื”ืคื•ื ืงืฆื™ื•ื ืืœื™ ื”ื™ื” ืืจื•ืš ื™ื•ืชืจ ืžื”ืคื™ืชืจื•ืŸ ื”ื ืื™ื‘ื™. ## ืคื™ืชืจื•ืŸ 3 - ืคื™ืชื•ื— ืžื•ื ื—ื” ืขืฆืžื™ื ืื ืงื•ื“ ืคื•ื ืงืฆื™ื•ื ืืœื™ ืœื ื—ืกืš ืœื™ ืืช ื”ืขื‘ื•ื“ื” ื‘ืฉื›ืชื•ื‘, ืื•ืœื™ ืงื•ื“ ืžื•ื ื—ื” ืขืฆืžื™ื ื™ืฆืœื™ื— ืœื”ืฆื™ืœ ืืช ื”ืžืฆื‘. ืžื™ื“ ื”ืœื›ืชื™ ืœืคืชื•ืจ ืืช ื”ื—ืœืง ื”ืจืืฉื•ืŸ ื‘ื’ื™ืฉื” ืžื•ื ื—ื™ืช ืขืฆืžื™ื ืขื ืžื—ืœืงื” ืฉืœ ื“ื’ ื•ืžื—ืœืงื” ื ื•ืกืคืช ืœืืงื•ื•ืจื™ื•ื ื•ืงื™ื‘ืœืชื™:
class Fish:
    def __init__(self, time_to_reproduce, fish_tank):
        self.time_to_reproduce = time_to_reproduce
        self.fish_tank = fish_tank

ToCode
1 419
# ืกื™ืคื•ืจ ืงืฆืช ืžื“ื›ื ืขืœ ื“ื’ื™ื ื•ืฉื™ื ื•ื™ื™ื ื‘ืงื•ื“ ืื ืจืง ื”ื—ื™ื™ื ื”ื™ื• ื™ื•ืชืจ ืคืฉื•ื˜ื™ื. ื‘ืืžืช. ื›ื™ ื—ื™ื™ื ืคืฉื•ื˜ื™ื ืžื•ื‘ื™ืœื™ื ืœืงื•ื“ ืคืฉื•ื˜, ื•ืœื”ื™ืคืš, ื›ืฉื”ื—ื™ื™ื ืžืกืชื‘ื›ื™ื ื”ืงื•ื“ ืžืกืชื‘ืš ืื™ืชื. ื™ืฉ ืื ืฉื™ื ืฉื™ื’ื™ื“ื• ืœื›ื ืฉืื ืจืง ืชื›ืชื‘ื• ืงื•ื“ ืคื•ื ืงืฆื™ื•ื ืืœื™, ืื• ืงื•ื“ ืžื•ื ื—ื” ืขืฆืžื™ื, ืื• ื‘ืฉืคื” ื›ื–ืืช ืื• ืื—ืจืช, ืื– ื”ืงื•ื“ ื™ื”ื™ื” ืคืฉื•ื˜ ื•ื™ืชืžื•ื“ื“ ื™ืคื” ืขื ืฉื™ื ื•ื™ื™ื. ื”ื ื˜ื•ืขื™ื. ืงื•ื“ ืžืกืชื‘ืš ื›ื™ ื”ื—ื™ื™ื ืžืกืชื‘ื›ื™ื ื›ืžื• ืฉื ืจืื” ืชื›ืฃ ื‘ื“ื•ื’ืžื” ืž Advent Of Code. ืื‘ืœ ืืœ ืชื“ืื’ื• ื™ืฉ ื’ื ื ืงื•ื“ืช ืื•ืจ ื‘ืกื•ืฃ ื”ืกื™ืคื•ืจ. ื•ื’ื ืคื™ื™ืชื•ืŸ, ื›ื™ ืฆืจื™ืš ืงืฆืช ื”ืคืกืงื” ืžื›ืœ ื”ืงืœื•ื–'ืจ. ## ืžื” ืื ื—ื ื• ื‘ื•ื ื™ื ื™ื•ื 6 ืฉืœ Advent Of Code ื”ืื—ืจื•ืŸ ื”ืชื—ื™ืœ ื‘ื™ื (ื›ืœ ื”ื™ืžื™ื ืขื“ ืขื›ืฉื™ื• ื”ืชื—ื™ืœื• ื‘ื™ื, ืื– ื–ื” ืœื ืžืคืชื™ืข). ืื ื—ื ื• ื‘ืฆื•ืœืœืช ื•ืคื•ื’ืฉื™ื ืœื”ืงื” ืฉืœ ื“ื’ื™ื, ื•ืจื•ืฆื™ื ืœื’ืœื•ืช ื›ืžื” ืžื”ืจ ื”ื“ื’ื™ื ืžืชืจื‘ื™ื. ื“ื’ ืฆืจื™ืš ื™ื•ืžื™ื™ื ื›ื“ื™ ืœื”ื’ื™ืข ืœื‘ื’ืจื•ืช, ื•ืื– ืขื•ื“ 6 ื™ืžื™ื ื›ื“ื™ ืœื”ื•ืœื™ื“ ื“ื’ ื—ื“ืฉ. ืื”, ื•ื“ื’ื™ื ืœื ืžืชื™ื. ืœื“ื•ื’ืžื” ืื ื™ืฉ ืœื ื• ืœื”ืงื” ืฉื’ื™ืœืื™ ื”ื“ื’ื™ื ื‘ื” ื”ื:
3, 2, 3, 5, 4
ืื– ื”ื“ื’ ื”ืจืืฉื•ืŸ ื™ื•ืœื™ื“ ื“ื’ ื—ื“ืฉ ื‘ืขื•ื“ ืฉืœื•ืฉื” ื™ืžื™ื, ื•ืื– ืฉื•ื‘ ืฉื™ืฉื” ื™ืžื™ื ืœืื—ืจ ืžื›ืŸ, ื•ืื– ืฉื•ื‘ ืฉื™ืฉื” ื™ืžื™ื ืœืื—ืจ ืžื›ืŸ. ื”ื“ื’ ื”ืฉื ื™ ื™ื•ืœื™ื“ ื“ื’ ื—ื“ืฉ ื‘ืขื•ื“ 4 ื™ืžื™ื, ื•ืื– ืฉื•ื‘ ืฉื™ืฉื” ื™ืžื™ื ืœืื—ืจ ืžื›ืŸ, ื•ืฉื•ื‘ ืฉื™ืฉื” ื™ืžื™ื ืœืื—ืจ ืžื›ืŸ. ื›ืœ ืื—ื“ ืžื”ื“ื’ื™ื ื”ื—ื“ืฉื™ื ื™ื™ืงื— ื™ื•ืžื™ื™ื ืœื’ื“ื•ืœ, ื•ืื– ืื—ืจื™ ืฉื™ืฉื” ื™ืžื™ื ื™ื•ืœื™ื“ ื’ื ื”ื•ื ื“ื’ ื—ื“ืฉ. ื ื•ื— ื‘ืžืงื•ื ืœื”ืกืชื›ืœ ืขืœ ื’ื™ืœืื™ ื”ื“ื’ื™ื, ืœื”ืกืชื›ืœ ืขืœ ื›ืžื” ื™ืžื™ื ื ืฉืืจื• ืœื›ืœ ื“ื’ ืขื“ ืฉื™ื•ืœื™ื“ ื“ื’ ื—ื“ืฉ, ื•ืื– ืืคืฉืจ ืœื“ืžื™ื™ืŸ ืžืขืจืš ืฉืžืฉืชื ื” ื‘ืื•ืคืŸ ื”ื‘ื:
Initial state: 3,4,3,1,2
After  1 day:  2,3,2,0,1
After  2 days: 1,2,1,6,0,8
After  3 days: 0,1,0,5,6,7,8
After  4 days: 6,0,6,4,5,6,7,8,8
After  5 days: 5,6,5,3,4,5,6,7,7,8
After  6 days: 4,5,4,2,3,4,5,6,6,7
After  7 days: 3,4,3,1,2,3,4,5,5,6
After  8 days: 2,3,2,0,1,2,3,4,4,5
After  9 days: 1,2,1,6,0,1,2,3,3,4,8
After 10 days: 0,1,0,5,6,0,1,2,2,3,7,8
After 11 days: 6,0,6,4,5,6,0,1,1,2,6,7,8,8,8
After 12 days: 5,6,5,3,4,5,6,0,0,1,5,6,7,7,7,8,8
After 13 days: 4,5,4,2,3,4,5,6,6,0,4,5,6,6,6,7,7,8,8
After 14 days: 3,4,3,1,2,3,4,5,5,6,3,4,5,5,5,6,6,7,7,8
After 15 days: 2,3,2,0,1,2,3,4,4,5,2,3,4,4,4,5,5,6,6,7
After 16 days: 1,2,1,6,0,1,2,3,3,4,1,2,3,3,3,4,4,5,5,6,8
After 17 days: 0,1,0,5,6,0,1,2,2,3,0,1,2,2,2,3,3,4,4,5,7,8
After 18 days: 6,0,6,4,5,6,0,1,1,2,6,0,1,1,1,2,2,3,3,4,6,7,8,8,8,8
ื”ืžืฉื™ืžื” ืฉืœื ื• ื”ื™ื ืœื›ืชื•ื‘ ืืช ื”ืงื•ื“ ืฉืžื—ืฉื‘ ื›ืžื” ื“ื’ื™ื ื™ื”ื™ื• ืื—ืจื™ X ื™ืžื™ื. ื‘ืฉืœื‘ ื”ืจืืฉื•ืŸ ืฆืจื™ืš ืœืžืฆื•ื ื›ืžื” ื“ื’ื™ื ื™ื”ื™ื• ืื—ืจื™ 80 ื™ืžื™ื, ื•ืื—ืจื™ ืฉื–ื” ืขื•ื‘ื“ ืžืงื‘ืœื™ื ืืช ืžืฉื™ืžืช ื”ื”ืžืฉืš ืฉืžืขืœื” ืืช ื”ืžืกืคืจ ืœ 256 ื™ืžื™ื. ## ืคื™ืชืจื•ืŸ 1 - ื’ื™ืฉื” ืคืจื•ืฆื“ื•ืจืœื™ืช ืœืคื™ืชืจื•ืŸ ื”ืจืืฉื•ืŸ ืื ื™ ืงื•ืจื ื”ื’ื™ืฉื” ื”ื ืื™ื‘ื™ืช ืื• ื”ื’ื™ืฉื” ื”ืคืจื•ืฆื“ื•ืจืœื™ืช. ื–ื” ืคื™ืชืจื•ืŸ ืฉื”ืจื‘ื” ืžืชื›ื ืชื™ ืคื™ื™ืชื•ืŸ ืฉืื ื™ ืžื›ื™ืจ ื™ืจื’ื™ืฉื• ืื™ืชื• ื”ื›ื™ ื‘ื‘ื™ืช. ื‘ื’ื™ืฉื” ื”ื–ืืช ืื ื—ื ื• ื›ื•ืชื‘ื™ื ืคื•ื ืงืฆื™ื•ืช ื›ืฉื–ื” ืขื•ื–ืจ ืœื ื•, ืื ื—ื ื• ืžืฉืชืžืฉื™ื ื‘ List Comprehension ื›ืฉื–ื” ืขื•ื–ืจ ืœื ื•, ืื‘ืœ ื’ื ืœื ืžืคืจื™ืข ืœื ื• ืœืฉื ื•ืช ืื•ื‘ื™ืงื˜ื™ื ื‘ื–ื™ื›ืจื•ืŸ ืื• ืœื›ืชื•ื‘ ืงื•ื“ ืžื—ื•ืฅ ืœืคื•ื ืงืฆื™ื•ืช. ื‘ืžืงืจื” ืฉืœ ื”ื“ื’ื™ื ืื ื™ ืฆืจื™ืš ืœืงืจื•ื ืืช ื–ืžื ื™ ื”ื”ืชืจื‘ื•ืช ืฉืœ ื”ื“ื’ื™ื ืžืงื•ื‘ืฅ ืงืœื˜, ืื—ืจ ื›ืš ืœืฉื™ื ื”ื›ืœ ื‘ืžืขืจืš ื•ืื– ื›ืœ ื™ื•ื ืื ื™ ืจืฅ ืขืœ ื”ืžืขืจืš ื•ืžื•ืจื™ื“ ื‘-1 ืืช ื”ื–ืžืŸ ืขื“ ืœื”ืชืจื‘ื•ืช ืฉืœ ื›ืœ ื“ื’. ืื ื”ื–ืžืŸ ื”ื’ื™ืข ืœืืคืก ืื ื™ ืžื•ืกื™ืฃ ื“ื’ ื—ื“ืฉ ืœืžืขืจืš. ื–ื” ื”ืงื•ื“:
fish = []

with open('demo.txt') as f:
    fish = [int(x) for x in f.read().split(',')]

def play():
    for index, remaining in enumerate(fish[:]):
        if remaining == 0:
            fish.append(8)
            fish[index] = 6
        else:
            fish[index] -= 1

for i in range(80):
    play()

print(len(fish))
ื™ืฉ ืคื” ืคื—ื•ืช ืž 20 ืฉื•ืจื•ืช ื•ื”ืชืฉื•ื‘ื” ืฉืœื• ื ื›ื•ื ื”. ืฆืจื™ืš ืจืง ืœืฉื™ื ืœื‘ ืฉื‘ืœื•ืœืื” ืื ื™ ืžืฉื›ืคืœ ืืช ื”ืžืขืจืš ืœืคื ื™ ืฉืื ื™ ืจืฅ ืขืœื™ื•, ื›ื“ื™ ืœื ืœื”ื•ืกื™ืฃ ื“ื’ื™ื ืœืžืขืจืš ืžืชื•ืš ืื™ื˜ืจืฆื™ื” (ืžื” ืฉื™ื’ืจื•ื ืœื‘ืœืื’ืŸ ื‘ื™ื ื•ื’ื ื‘ืคื™ื™ืชื•ืŸ). ## ื—ืœืง ืฉื ื™ - ื”ื”ืชืจืกืงื•ืช ื•ื”ืชื™ืงื•ืŸ ื”ื‘ืขื™ื” ืขื ื”ืคื™ืชืจื•ืŸ ื”ื ืื™ื‘ื™ ืžื•ืคื™ืขื” ื‘ื—ืœืง ื”ืฉื ื™, ื›ืฉืžืขืœื™ื ืืช ืžืกืคืจ ื”ื™ืžื™ื ืœ 256. ื™ืฉ ื™ื•ืชืจ ืžื“ื™ ื“ื’ื™ื ื•ื”ืงื•ื“ ืœื ืžืฆืœื™ื— ืœื”ืชืžื•ื“ื“ ืขื ืžืขืจืš ื›ืœ ื›ืš ื’ื“ื•ืœ ื•ืคืฉื•ื˜ ืžืžืฉื™ืš ืœืจื•ืฅ ื”ืžื•ืŸ ื”ืžื•ืŸ ื–ืžืŸ ื‘ืœื™ ืœื”ื’ื™ืข ืœืชื•ืฆืื”. ื”ื“ืจืš ืœืคืชื•ืจ ืืช ื”ืชืจื’ื™ืœ ืœืžืกืคืจ ื’ื“ื•ืœ ืฉืœ ื™ืžื™ื ื”ื™ื ืœืืจื’ืŸ ืืช ื”ื“ื’ื™ื ื‘ืงื‘ื•ืฆื•ืช, ื›ืœื•ืžืจ ื›ืœ ื”ื“ื’ื™ื ืฉื™ืฉ ืœื”ื ืขื•ื“ 3 ื™ืžื™ื ืขื“ ืฉืžื™ื™ืฆืจื™ื ื“ื’ ื—ื“ืฉ ื™ืฉื‘ื• ื‘ืชื ืื—ื“ ื‘ืžืขืจืš, ื›ืœ ืืœื” ืฉืฆืจื™ื›ื™ื ืขื•ื“ 4 ื™ืžื™ื ื›ื“ื™ ืœื”ืชืจื‘ื•ืช ื™ืฉื‘ื• ื‘ืชื ืื—ืจ ื‘ืžืขืจืš ื•ื›ืš ื”ืœืื”. ืกืš ื”ื›ืœ ื™ื”ื™ื” ืœื™ ืžืขืจืš ืฉืœ 8 ืชืื™ื ืฉื‘ื›ืœ ืชื ื™ื”ื™ื” ื›ืชื•ื‘ ื›ืžื” ื“ื’ื™ื ื™ืฉ ื‘ืงื‘ื•ืฆื” ื”ื–ืืช. ื‘ื›ืœ ื™ื•ื ืฉืขื•ื‘ืจ ืื ื™ ืžืขื‘ื™ืจ ืืช ื”ื“ื’ื™ื ืชื ืื—ื“ ืื—ื•ืจื” ื‘ืžืขืจืš, ื•ืืœื” ืฉื”ื™ื• ื‘ืชื 0 ื ื›ื ืกื™ื ื’ื ืœืชื 6 ื›ื“ื™ ืœื”ืชื—ื™ืœ ืกื™ื‘ื•ื‘ ื—ื“ืฉ ื•ื’ื ืœืชื 8 ื‘ืชื•ืจ ื“ื’ื™ื ื—ื“ืฉื™ื.

ToCode
1 419
# ืขื•ื‘ื“ ื–ื” ื™ืขื‘ื•ื“ ื’ื ืžื—ืจ ื‘ื‘ื•ืงืจ? ื–ื” ื™ืขื‘ื•ื“ ื’ื ืื—ืจื™ ืฉื™ื“ืจื•ื’ ื’ื™ืจืกื”? ื–ื” ื™ืขื‘ื•ื“ ื’ื ืื—ืจื™ Refactoring? ื–ื” ื™ืขื‘ื•ื“ ื’ื ืขื ื ืชื•ื ื™ื ืฉืœ ืคืจื•ื“ืงืฉืŸ? ื–ื” ื™ืขื‘ื•ื“ ื’ื ื›ืฉื ืขื‘ื•ืจ ืœืžืขืจื›ืช ื”ืคืขืœื” ืื—ืจืช? ื–ื” ื™ืขื‘ื•ื“ ื’ื ืขื‘ื•ืจ ืžืฉืชืžืฉื™ื ืžื”ื•ื“ื•? ื–ื” ื™ืขื‘ื•ื“ ื’ื ืื—ืจื™ ืฉื ื—ื–ื•ืจ ืžื’ื™ื‘ื•ื™? ื–ื” ื™ืขื‘ื•ื“ ื’ื ื›ืฉื™ื”ื™ื” ืขื•ืžืก ืขืœ ื”ืžืขืจื›ืช? ืฉื•ื ืžืขืจื›ืช ืœื ืขื•ื‘ื“ืช ื‘ื›ืœ ื”ืžืฆื‘ื™ื. ื›ื›ืœ ืฉื ืงืคื™ื“ ืœื”ื™ื•ืช ื‘ืจื•ืจื™ื ืœื’ื‘ื™ ื”ืžื’ื‘ืœื•ืช ืฉืœ ื”ืงื•ื“ ืฉืœื ื•, ื›ืš ื™ื”ื™ื” ื™ื•ืชืจ ืงืœ ืœื”ืฉืชืžืฉ ื‘ื• (ื•ืœืฉื‘ื•ืจ ืื•ืชื•) ื‘ืžืขืจื›ื•ืช ืืžื™ืชื™ื•ืช.

ToCode
1 419
# ืชื•ื›ื ื™ืช ื•ื•ื‘ื™ื ืจื™ื ืœืจื‘ืขื•ืŸ ื”ื‘ื ื”ื™ ื—ื‘ืจื™ื, ื‘ืื™ื—ื•ืจ ืงืœ ืื ื™ ืฉืžื— ืœื”ื–ืžื™ืŸ ืืชื›ื ืœื”ืฆื˜ืจืฃ ืœืื—ื“ ื”ื•ื•ื‘ื™ื ืจื™ื ื”ืงืจื•ื‘ื™ื ืฉืœื ื•. ืืช ื”ื•ื•ื‘ื™ื ืจื™ื ืื ื™ ืžืขื‘ื™ืจ ื›ืœ ื™ื•ื ื—ืžื™ืฉื™ ื‘ืขืฉืจ ื‘ื‘ื•ืงืจ, ื•ื”ืงืœื˜ื•ืช ืฉืœื”ื ื–ืžื™ื ื•ืช ื›ืืŸ ื‘ืืชืจ ื‘ื“ืฃ ื”ืงืœื˜ื•ืช ืžื•ื•ื‘ื™ื ืจื™ื. ืื ื™ ืžืฉืชื“ืœ ืœื‘ื—ื•ืจ ื ื•ืฉืื™ื ืฉืงืฉื•ืจื™ื ืœื ื•ืฉืื™ ื”ืงื•ืจืกื™ื ื•ืžืจื—ื™ื‘ื™ื ืื•ืชื. ืื ื™ืฉ ืœื›ื ืจืขื™ื•ื ื•ืช ืื• ื—ืœื•ืžื•ืช ืขืœ ื ื•ืฉืื™ื ืฉื”ื™ื™ืชื ืจื•ืฆื™ื ืœืœืžื•ื“ ืฉืœื—ื• ืœื™ ืžื™ื™ืœ ื•ืื ืกื” ืœื”ื•ืกื™ืฃ ืื•ืชื ื‘ื—ื•ื“ืฉื™ื ื”ื‘ืื™ื. ื–ืืช ื”ืจืฉื™ืžื” ืœืฉืœื•ืฉืช ื”ื—ื•ื“ืฉื™ื ื”ืงืจื•ื‘ื™ื: ## ืคื™ืฆ'ืจื™ื ื—ื“ืฉื™ื ื‘ืจื™ืืงื˜ 18 - ื•ื•ื‘ื™ื ืจ ืฉื™ืชืงื™ื™ื ื‘ 7.7.2022 ืœื ืžื–ืžืŸ ื™ืฆืื” ื’ื™ืจืกื” ื—ื“ืฉื” ืฉืœ ืจื™ืืงื˜ ืขื ืชืžื™ื›ื” ื‘ืจื™ื ื“ื•ืจ ืžืงื‘ื™ืœื™. ื‘ืขื‘ืจื™ืช ื–ื” ืื•ืžืจ ืฉืจื™ืืงื˜ ื™ื›ื•ืœ ืœื”ืชื—ื™ืœ ืœื—ืฉื‘ ืืช ืขืฅ ื” Virtual DOM, ื•ืื– ืœื”ื—ืœื™ื˜ ืฉื™ืฉ ืžืฉื”ื• ื™ื•ืชืจ ื—ืฉื•ื‘, ืœืฉื™ื ื”ื›ืœ ื‘ืฆื“, ืœื—ืฉื‘ ืขืฅ Virtual DOM ืื—ืจ ื—ืฉื•ื‘ ื™ื•ืชืจ ื•ืื—ืจื™ ืฉื™ืกื™ื™ื ื•ื™ืขื“ื›ืŸ ืืช ื”ืžืกืš ื™ื—ื–ื•ืจ ืœืขืฅ ืฉืฉื ื‘ืฆื“. ื‘ื•ื•ื‘ื™ื ืจ ืื ื—ื ื• ื ื—ืฉื•ื‘ ืœืžื” ื”ืคื™ืฆ'ืจ ื”ื–ื” ื—ืฉื•ื‘, ืื™ื–ื” ื“ื‘ืจื™ื ืืคืฉืจ ืขื›ืฉื™ื• ืœืขืฉื•ืช ืฉืงื•ื“ื ื”ื™ื• ืžืกื•ื‘ื›ื™ื ื•ืื™ื–ื” ื‘ืขื™ื•ืช ื—ื“ืฉื•ืช ื”ื•ื ืžื‘ื™ื. ื›ืžื•ื‘ืŸ ืฉืœื›ืœ ืžืฆื‘ ื ืจืื” ื“ื•ื’ืžืื•ืช ืงื•ื“ ื›ื“ื™ ืฉืชื•ื›ืœื• ืžื›ืืŸ ืžื™ื“ ืœื”ืžืฉื™ืš ื•ืœืฉื“ืจื’ ืืช ื”ื™ื™ืฉื•ืžื™ื ืฉืœื›ื ืœืจื™ืืงื˜ 18. ืœืคืจื˜ื™ื ื ื•ืกืคื™ื ื•ื”ืจืฉืžื”: https://www.tocode.co.il/workshops/117 ## ื”ื™ื›ืจื•ืช ืขื WSL - ื•ื•ื‘ื™ื ืจ ืฉื™ืชืงื™ื™ื ื‘ 3.8.2022 ื›ื‘ืจ ื›ืžื” ืฉื ื™ื ืฉ Microsoft ืžืืคืฉืจื™ื ื’ื ืœืžืฉืชืžืฉื™ ื—ืœื•ื ื•ืช ืœืงื‘ืœ ื—ื•ื•ื™ืช ืคื™ืชื•ื— ื™ื•ื ื™ืงืกื™ืช ืžืœืื” ื•ื‘ืœื™ ืœื”ืชืงื™ืŸ ืฉื•ื ืžื›ื•ื ื” ื•ื™ืจื˜ื•ืืœื™ืช. ื”ื ื‘ื ื• ืกื‘ื™ื‘ื” ื‘ืฉื WSL, ืฉื–ื” ืงื™ืฆื•ืจ ืœ Windows Subsystem for Linux, ืžืฉืžืฉืช ื›ืฉื›ื‘ืช ืชืจื’ื•ื ื‘ื™ืŸ ืงื•ื“ ืœื™ื ื•ืงืก ืœืงื•ื“ ื•ื•ื™ื ื“ื•ืก, ื•ื›ืš ืืคืฉืจ ืœื”ืจื™ืฅ ื™ื™ืฉื•ืžื™ื ื‘ื™ื ืืจื™ื™ื ืฉืงื•ืžืคืœื• ืœืœื™ื ื•ืงืก ืขืœ ืžื›ื•ื ืช ื•ื•ื™ื ื“ื•ืก. ื”ืžืฉืžืขื•ืช ืžื‘ื—ื™ื ืชื ื• ื”ื™ื ืขืฆื•ืžื” - ืื ืืชื ื›ื‘ืจ ืžื›ื™ืจื™ื Linux ื•ืฆืจื™ื›ื™ื ืœืขื‘ื•ืจ ืœืžื—ืฉื‘ Windows, ืชื•ื›ืœื• ืœื”ืชืงื™ืŸ ืืช ื›ืœ ื”ื›ืœื™ื ืฉืืชื ืžื›ื™ืจื™ื ื•ืื•ื”ื‘ื™ื ื•ืœื”ืฉืชืžืฉ ื‘ื”ื ื‘ืœื™ ื‘ืขื™ื”. ืื ืืชื ืœื ืžื›ื™ืจื™ื Linux ืชื•ื›ืœื• ืœืงื‘ืœ ื—ื•ื•ื™ืช ืœื™ืžื•ื“ ื‘ืชื•ืš ืžืขืจื›ืช ื”ื”ืคืขืœื” ืฉืœื›ื ื•ื‘ืงืฆื‘ ืฉืœื›ื. ื‘ื•ื•ื‘ื™ื ืจ ืืจืื” ืœื›ื ืื™ืš ืœืขื‘ื•ื“ ืขื WSL2 ื›ื“ื™ ืœืงื‘ืœ ืกื‘ื™ื‘ืช ืœื™ื ื•ืงืก ืžืœืื” ื‘ืชื•ืš ื” Windows ืฉืœื›ื. ืœืคืจื˜ื™ื ื ื•ืกืคื™ื ื•ื”ืจืฉืžื”: https://www.tocode.co.il/workshops/119 ## ืฉืœื•ื React Native World ืจื™ืืงื˜ ื ื™ื™ื˜ื™ื‘ ื”ื™ื ืคืจื™ื™ืžื•ื•ืจืง ืœืคื™ืชื•ื— ื™ื™ืฉื•ืžื™ ืžื•ื‘ื™ื™ืœ ื—ื•ืฆื™ ืคืœื˜ืคื•ืจืžื•ืช ืฉืžืืคืฉืจืช ืœื›ืชื•ื‘ ืงื•ื“ ืคืขื ืื—ืช ื•ืœื”ืจื™ืฅ ืื•ืชื• ื’ื ืขืœ ืื™ื™ืคื•ืŸ ื•ื’ื ืขืœ ืื ื“ืจื•ืื™ื“ (ื•ืชื›ืœ'ืก ื’ื ืขืœ ืžืง ื• Windows). ื‘ื•ื•ื‘ื™ื ืจ ื ืจืื” ืื™ืš ืœื™ืฆื•ืจ ืคืจื•ื™ืงื˜ React Native ื—ื“ืฉ, ืื™ืš ืœื‘ื“ื•ืง ืื•ืชื• ืขืœ ื”ืžื—ืฉื‘ ื•ืื™ืš ืœื™ืฆื•ืจ ืžืžื ื• ืืคืœื™ืงืฆื™ื™ืช ืื™ื™ืคื•ืŸ, ื•ืื—ืจื™ ื–ื” ื ืžืฉื™ืš ืœื”ืจื—ื™ื‘ ืืช ื”ืืคืœื™ืงืฆื™ื”, ืœื”ื•ืกื™ืฃ ืงื•ืžืคื•ื ื ื˜ื•ืช ื•ื“ืคื™ื ื•ื’ื ืœืขืฆื‘ ืื•ืชื”. ืœืคืจื˜ื™ื ื ื•ืกืคื™ื ื•ื”ืจืฉืžื”: https://www.tocode.co.il/workshops/118 ื›ืœ ื”ื•ื•ื‘ื™ื ืจื™ื ื™ืขื‘ืจื• ื‘ื–ื•ื, ื‘ื™ืžื™ ื—ืžื™ืฉื™ ื‘ืฉืขื” ืขืฉืจ ื‘ื‘ื•ืงืจ. ื ืชืจืื” ื‘ื–ื•ื.

ToCode
1 419
# ืืคืฉืจ ืจืžื–? ื‘ื”ืชืžื•ื“ื“ื•ืช ืขื ืืชื’ืจื™ื ืื ื—ื ื• ืฉืžื™ื ืœื‘ ืœืฉื ื™ ืจืฆื•ื ื•ืช ืžื ื•ื’ื“ื™ื ื•ื‘ืขื™ื™ืชื™ื™ื- 1. ื—ืœืง ืžื”ื–ืžืŸ ืื ื—ื ื• ืžืชืขืงืฉื™ื ืœืคืชื•ืจ ื”ื›ืœ ืœื‘ื“, ื›ืื™ืœื• ื›ื“ื™ ืœื”ื•ื›ื™ื— ืœืขืฆืžื ื• ืื• ืœืขื•ืœื ืฉืื ื—ื ื• ื™ื›ื•ืœื™ื. 2. ื—ืœืง ืžื”ื–ืžืŸ ืื ื—ื ื• ืžื™ื•ืืฉื™ื ืœื’ืžืจื™ ื•ืจืง ืจื•ืฆื™ื ืœื”ืกืชื›ืœ ื‘ืคื™ืชืจื•ืŸ ืื• ืฉืžื™ืฉื”ื• ื™ืกื‘ื™ืจ ืœื ื• ืžื” ืขื•ืฉื™ื. ื”ื‘ืขื™ื” ื‘ืœืคืชื•ืจ ื”ื›ืœ ืœื‘ื“ ื”ื™ื ืฉื›ืฉืืชื ืœื ืžืฆืœื™ื—ื™ื ื–ื” ื™ื›ื•ืœ ืœื™ื™ืืฉ ื•ืœืชืงื•ืข; ื•ืื ืืชื ืžืฆืœื™ื—ื™ื ื”ื›ืœ ื–ื” ืื•ืžืจ ืฉืœื ื‘ื—ืจืชื ืืชื’ืจื™ื ืงืฉื™ื ืžืกืคื™ืง. ื”ื‘ืขื™ื” ื‘ืœื”ืกืชื›ืœ ื‘ืคื™ืชืจื•ื ื•ืช ืฉืœ ืื—ืจื™ื ื•ืœื”ืขืชื™ืง ื”ื™ื ืฉืืชื ืœื ืžืืžื ื™ื ืืช ื”ืฉืจื™ืจื™ื ื”ื ื›ื•ื ื™ื ืฉืœ ืคื™ืชืจื•ืŸ ื‘ืขื™ื•ืช, ื•ืฉืจื•ื‘ ื”ืืชื’ืจื™ื ื‘ื—ื™ื™ื ื”ืืžื™ืชื™ื™ื ืœื ื“ื•ืžื™ื ืœืฉื•ื ื“ื‘ืจ ืฉื›ืชื•ื‘ ื‘ืกืคืจ. ื”ืคื™ืชืจื•ืŸ ืœืื ืฉื™ื ืฉืจื•ืฆื™ื ืœื”ืฉืชืคืจ ื•ืœืœืžื•ื“ ื”ื•ื ืœื”ืชืจื’ืœ ืœื—ืคืฉ ืจืžื–ื™ื: ืœืฉืื•ืœ ืื™ืคื” ืืคืฉืจ ืœืงืจื•ื ื™ื•ืชืจ ืขืœ XYZ, ืื• ืœื‘ืจืจ ืขืœ ืื™ื–ื” ื ื•ืฉืื™ื ื›ื“ืื™ ืœืœืžื•ื“ ื›ื“ื™ ืœื”ืชืžื•ื“ื“ ื˜ื•ื‘ ื™ื•ืชืจ ืขื ื”ื‘ืขื™ื”, ืื• ืœื”ืกืชื›ืœ ืขืœ ืคื™ืชืจื•ื ื•ืช ืฉืœ ื‘ืขื™ื•ืช ื“ื•ืžื•ืช ื•ืœื ืกื•ืช ืœื”ืชืื™ื ืื•ืชื ืœืืชื’ืจ ืฉืœื ื•, ืื• ื›ืœ ื—ื™ืคื•ืฉ ื“ื•ืžื”. ืจืžื– ืžืืคืฉืจ ืœื ื• ืœืฉืœื‘ - ื’ื ืœืœืžื•ื“ ื“ื‘ืจื™ื ื—ื“ืฉื™ื, ื•ื’ื ืœื™ื™ืฉื ืื•ืชื ืขืœ ื”ืืชื’ืจื™ื ืฉืขื›ืฉื™ื• ืื ื—ื ื• ืžืชืžื•ื“ื“ื™ื ืื™ืชื. ืฉื™ืœื•ื‘ ื›ื–ื”, ืœืื•ืจืš ื–ืžืŸ, ืžืจื—ื™ื‘ ืื•ืคืงื™ื ื•ื”ื•ืคืš ืื•ืชื ื• ืœืคื•ืชืจื™ ื‘ืขื™ื•ืช ื˜ื•ื‘ื™ื ื™ื•ืชืจ.

ToCode
1 419
        (f x2 y2)))

(defn process-line [acc line]
  (let [[x1 y1 x2 y2] 
        (->> line
             (re-seq #"(\d+),(\d+) -> (\d+),(\d+)")
             (first)
             (drop 1)
             (map read-string))]
    (cond
      (= x1 x2) (reduce #(%2 %1)
                        acc
                        (fill-points-in-range y1 y2 (fn [y] #(update %1 [x1 y] (fn [v] (inc (or v 0)))))))
      (= y1 y2) (reduce #(%2 %1)
                        acc
                        (fill-points-in-range x1 x2 (fn [x] #(update %1 [x y1] (fn [v] (inc (or v 0)))))))
      :else acc)))
      ; :else (reduce #(%2 %1) acc (fill-points-in-line x1 y1 x2 y2 (fn [x y] #(update %1 [x y] (fn [v] (inc (or v 0))))))))))

(def input
  (->> "input.txt"
       (slurp)
       (clojure.string/split-lines)
       (reduce process-line {})))


(pprint (count (filter (fn [[_ v]] (> v 1)) input)))
ืืช ื”ืชืจื’ื™ืœ ื”ืžืงื•ืจื™ ืชื•ื›ืœื• ืœืžืฆื•ื ื‘ืงื™ืฉื•ืจ: https://adventofcode.com/2021/day/5 ื•ืœื ืกื•ืช ืœืคืชื•ืจ ืื•ืชื• ื‘ืขืฆืžื›ื ื‘ืฉืคืช ื”ืชื›ื ื•ืช ื”ืื”ื•ื‘ื” ืขืœื™ื›ื ืื• ืœืฉื—ืง ืขื ืคื™ืชืจื•ืŸ ื”ืงืœื•ื–'ืจ ืฉืœื™ ื•ืœื”ืฆื™ืข ืฉื™ืคื•ืจื™ื.

ToCode
1 419
# ืžืฉื—ืงื™ื ืขื ืงืœื•ื–'ืจ: ืคื™ืชืจื•ืŸ Advent Of Code 2021 ื™ื•ื 5 ืชืจื’ื™ืœื™ Advent Of Code ื”ื ื”ืžืงื•ื ื”ืžื•ืฉืœื ืœื”ืชืืžืŸ ืขืœ ืฉืคืช ืชื›ื ื•ืช ื—ื“ืฉื”, ื•ื‘ืžื™ื•ื—ื“ ื›ื–ืืช ืฉื™ื•ื“ืขืช ืœื”ืชืžื•ื“ื“ ื™ืคื” ืขื ื ืชื•ื ื™ื ื•ืžื ื™ืคื•ืœืฆื™ื•ืช ืขืœื™ื”ื. ืงืœื•ื–'ืจ ื‘ื”ื—ืœื˜ ืžืชืื™ืžื” ืœื”ื’ื“ืจื”. ืืช ื™ื•ื 5 ื”ืฆืœื—ืชื™ ืœืคืชื•ืจ ืขื ื˜ืจื™ืง ืคืฉื•ื˜ ืื—ื“ - ื•ืขื•ื“ ืงืฆืช ืงื•ื“ ืžืกื‘ื™ื‘ื•. ื”ื ื” ื”ืกื™ืคื•ืจ ื”ืžืœื. ## ื”ืžืฉื™ืžื” ื‘ื™ื•ื 5 ื”ืžืฉื™ืžื” ื”ื™ื•ื ืงืฉื•ืจื” ืœื‘ื ื™ื™ืช ืœื•ื— ื“ื•-ืžื™ืžื“ื™ ืœืคื™ ืจืฉื™ืžื” ืฉืœ ืงื•ื•ื™ื ืฉืขื•ื‘ืจื™ื ืขืœ ื”ืœื•ื—. ืจืฉื™ืžืช ื”ืงื•ื•ื™ื ืžื’ื™ืขื” ื‘ืคื•ืจืžื˜ ื›ื–ื”:
0,9 -> 5,9
8,0 -> 0,8
9,4 -> 3,4
2,2 -> 2,1
7,0 -> 7,4
6,4 -> 2,0
0,9 -> 2,9
3,4 -> 1,4
0,0 -> 8,8
5,5 -> 8,2
ื‘ื• ื›ืœ ืฉื•ืจื” ืžืฆื™ื™ื ืช ื ืงื•ื“ืช ื”ืชื—ืœื” ืฉืœ ื”ืงื• (ืขื x ื• y) ื•ื ืงื•ื“ืช ืกื™ื•ื ืฉืœื•. ื”ืžืฉื™ืžื” ืฉืœื ื• ื”ื™ื ืœืžืฆื•ื ื›ืžื” ื ืงื•ื“ื•ืช ื™ืฉ ื‘ืœื•ื— ื‘ื”ืŸ ืขื•ื‘ืจ ื™ื•ืชืจ ืžืงื• ืื—ื“. ื‘ื—ืœืง ื”ืจืืฉื•ืŸ ื‘ื™ืงืฉื• ืœื”ืกืชื›ืœ ืจืง ืขืœ ืงื•ื•ื™ื ืžืื•ื–ื ื™ื ืื• ืžืื•ื ื›ื™ื, ื•ื‘ื—ืœืง ื”ืฉื ื™ ืœืกืคื•ืจ ื’ื ืงื•ื•ื™ื ืืœื›ืกื•ื ื™ื™ื. ## ืื™ืš ืœื’ืฉืช ืœืคื™ืชืจื•ืŸ ื”ืฆืขื“ ื”ืจืืฉื•ืŸ ื‘ื“ืจืš ืœืคื™ืชืจื•ืŸ ื”ื•ื ืœื—ืฉื•ื‘ ืขืœ ื“ืจืš ื˜ื•ื‘ื” ืœื™ื™ืฆื’ ืืช ื”ืžื™ื“ืข. ืื ื—ื ื• ืžืกืชื›ืœื™ื ืขืœ ืœื•ื— ื“ื•-ืžื™ืžื“ื™ ื•ื›ืœ ืฉื•ืจื” ืชื•ืกื™ืฃ ืืœื™ื• ืžื™ื“ืข, ื•ืœื›ืŸ ื™ื”ื™ื” ืงืœ ืœื”ืฉืชืžืฉ ื‘ Dictionary: ื”ืžืคืชื— ื”ื•ื ืงื•ืื•ืจื“ื™ื ื˜ื” (x, y) ื•ื”ืขืจืš ื”ื•ื ื›ืžื” ืงื•ื•ื™ื ืขื•ื‘ืจื™ื ื‘ื ืงื•ื“ื” ื”ื–ืืช. ื›ืœ ืคืขื ืฉืงื•ืจืื™ื ืฉื•ืจื” ื•ืžื’ืœื™ื ืขื•ื“ ืงื•, ื ื’ื“ื™ืœ ื‘-1 ืืช ื”ืขืจืš ื‘ื›ืœ ื”ื ืงื•ื“ื•ืช ืฉื”ื•ื ืขื•ื‘ืจ ื‘ื”ืŸ ื•ื‘ืกื•ืฃ ื ื•ื›ืœ ืœื—ืคืฉ ืืช ื›ืœ ื”ืขืจื›ื™ื ืฉื’ื“ื•ืœื™ื ืž-1. ## ืงื•ื“ ืงืœื•ื–'ืจ ื”ืืชื’ืจ ื”ืจืืฉื•ืŸ ื‘ืžื™ืžื•ืฉ ื”ื•ื ืœื”ื‘ื™ืŸ ืื™ืš ืœืงื‘ืœ ืจืฉื™ืžื” ืฉืœ ื›ืœ ื”ื ืงื•ื“ื•ืช ืขืœ ืงื• ืžืกื•ื™ื. ื‘ืฉื‘ื™ืœ ื”ื—ืœืง ื”ืจืืฉื•ืŸ - ืงื•ื•ื™ื ืื ื›ื™ื™ื ืื• ืื•ืคืงื™ื™ื - ื”ืฉืชืžืฉืชื™ ื‘ืงื•ื“ ื”ื‘ื:
(defn fill-points-in-range [start end f]
  (->> (range (min start end) (inc (max start end)))
      (map f)))
ื•ืคื” ื™ืฉ ื˜ืจื™ืง: ื‘ืžืงื•ื ืœื”ื—ื–ื™ืจ ืœืงื•ืจื ืจืฉื™ืžื” ืฉืœ ื ืงื•ื“ื•ืช ื•ืœื”ื›ืจื™ื— ืื•ืชื• ืœืจื•ืฅ ืขืœื™ื”ืŸ ื‘ืœื•ืœืื”, ืื ื™ ืžืขื“ื™ืฃ ืœืงื‘ืœ ืขื•ื“ ืคื•ื ืงืฆื™ื” ื•ืœื”ืคืขื™ืœ ืื•ืชื” ื‘ืœื•ืœืื” ืขืœ ื›ืœ ื”ื ืงื•ื“ื•ืช. ื–ื” ื—ื•ืกืš ืœืฉื›ืคืœ ืืช ื”ืœื•ืœืื” ื‘ื›ืœ ืงื•ื“ ืฉื™ืงืจื ืœืคื•ื ืงืฆื™ื” ืฉืœื™. ืฉืืจ ื”ืงื•ื“ ื™ื—ืกื™ืช ืคืฉื•ื˜:
(defn process-line [acc line]
  (let [[x1 y1 x2 y2] 
        (->> line
             (re-seq #"(\d+),(\d+) -> (\d+),(\d+)")
             (first)
             (drop 1)
             (map read-string))]
    (cond
      (= x1 x2) (reduce #(%2 %1)
                        acc
                        (fill-points-in-range y1 y2 (fn [y] #(update %1 [x1 y] (fn [v] (inc (or v 0)))))))
      (= y1 y2) (reduce #(%2 %1)
                        acc
                        (fill-points-in-range x1 x2 (fn [x] #(update %1 [x y1] (fn [v] (inc (or v 0)))))))
      :else acc)))


(def input
  (->> "input.txt"
       (slurp)
       (clojure.string/split-lines)
       (reduce process-line {})))


(pprint (count (filter (fn [[_ v]] (> v 1)) input)))
ืฉื™ืžื• ืœื‘ ืœืฉื•ืจื”:
(fill-points-in-range y1 y2 (fn [y] #(update %1 [x1 y] (fn [v] (inc (or v 0))))))
ื”ื™ื ืœื•ืงื—ืช ืงื• ื•ื‘ืžืงื•ื ืœื”ื—ื–ื™ืจ ืžืขืจืš ืฉืœ "ื ืงื•ื“ื•ืช" ื›ืžื• ืฉืื•ืœื™ ื”ื™ื™ื ื• ืžืฆืคื™ื, ื”ื™ื ืžื—ื–ื™ืจื” ืžืขืจืš ืฉืœ ืคื•ื ืงืฆื™ื•ืช. ื›ืœ ืคื•ื ืงืฆื™ื” ื™ื•ื“ืขืช ืœืงื—ืช ืžื˜ืจื™ืฆื” ืฉืœ ืœื•ื— ื•ืœื”ืขืœื•ืช ื‘-1 ืืช ื”ืขืจืš ืฉื›ืชื•ื‘ ื‘ื ืงื•ื“ื” ืกืคืฆื™ืคื™ืช ืขืœ ื”ืงื•. ืืช ื”ืคื•ื ืงืฆื™ื•ืช ื”ืืœื” ืื ื™ ืžืคืขื™ืœ ื‘ืชื•ืš ืœื•ืœืืช reduce ืขืœ ื”ืœื•ื— ื•ื›ื›ื” ืžืขื“ื›ืŸ ืืช ื›ืœ ื”ื ืงื•ื“ื•ืช ื‘ืงื•. ืื—ืจื™ ืฉื™ืฉ ืœื™ ืืช ื”ืžื˜ืจื™ืฆื” ืžื•ื›ื ื” ืขื ื›ืœ ื”ื ืชื•ื ื™ื ื”ืฉื•ืจื”:
(pprint (count (filter (fn [[_ v]] (> v 1)) input)))
ืžืกื ื ืช ืจืง ืืช ื”ื ืงื•ื“ื•ืช ืฉื”ืขืจืš ื‘ื”ืŸ ื’ื“ื•ืœ ืž-1 ื•ืžื“ืคื™ืกื” ื›ืžื” ื›ืืœื” ื™ืฉ. ## ื—ืœืง 2 ื‘ื—ืœืง ื”ืฉื ื™ ืจืฆื™ื ื• ืœื˜ืคืœ ื’ื ื‘ืงื•ื•ื™ื ืืœื›ืกื•ื ื™ื™ื. ื‘ืฉื‘ื™ืœ ื–ื” ื”ื•ืกืคืชื™ ืืช ื”ืคื•ื ืงืฆื™ื”:
(defn fill-points-in-line [x1 y1 x2 y2 f]
  (conj (map f
             (range x1 x2 (if (> x1 x2) -1 1))
             (range y1 y2 (if (> y1 y2) -1 1)))
        (f x2 y2)))
ื”ื™ื ื™ื•ืชืจ ืžืกื•ื‘ื›ืช ืžื”ืงื•ื•ื™ื ื”ืื•ืคืงื™ื™ื ื•ื”ืื ื›ื™ื™ื ื›ื™ ื”ืคืขื ื’ื ื” x ื•ื’ื ื” y ืžืฉืชื ื™ื ื•ื”ืฉื™ื ื•ื™ ืฆืจื™ืš ืœื”ื™ื•ืช ื‘ื”ืชืืžื”. ืœืฉืžื—ืชื™ map ื‘ clojure ื™ื•ื“ืขืช ืœืงื‘ืœ ื›ืžื” ื˜ื•ื•ื—ื™ื ื•ืคืฉื•ื˜ ืžืขื‘ื™ืจื” ื›ืžื” ืคืจืžื˜ืจื™ื ืœืคื•ื ืงืฆื™ื”. ืื—ืจื™ ืฉืกื’ืจื ื• ืืช ื”ืคื™ื ื” ื”ื–ืืช ืืคืฉืจ ืœืฉืœื‘ ืืช ื”ืคื•ื ืงืฆื™ื” ื‘ process-line ื•ืœื”ื—ืœื™ืฃ ืืช ื‘ืœื•ืง ื” else ืฉื”ื™ื” ืฉื ื‘:
:else (reduce #(%2 %1) acc (fill-points-in-line x1 y1 x2 y2 (fn [x y] #(update %1 [x y] (fn [v] (inc (or v 0))))))))))
ื•ื”ืชื•ื›ื ื™ืช ื”ืžืœืื”:
(use 'clojure.pprint)

(defn fill-points-in-range [start end f]
  (->> (range (min start end) (inc (max start end)))
      (map f)))

(defn fill-points-in-line [x1 y1 x2 y2 f]
  (conj (map f
             (range x1 x2 (if (> x1 x2) -1 1))
             (range y1 y2 (if (> y1 y2) -1 1)))

ToCode
1 419
# ืžื™ ืื™ืฉืจ ืืช ื” Pull Request ืฉืœื™? ื‘ื’ื™ื˜ื”ืื‘ ืื ื—ื ื• ื™ื›ื•ืœื™ื ืœื”ืกืชื›ืœ ื‘ืžืžืฉืง ื”ื’ืจืคื™ ืื—ื•ืจื” ื•ืœืจืื•ืช ืืช ื›ืœ ื”ื“ื™ื•ื ื™ื ืฉื”ื™ื• ืขืœ Pull Request ื•ื’ื ืžื™ ืื™ืฉืจ ื›ืœ PR. ืื‘ืœ ืื ื ื—ืœื™ื˜ ืœืงื—ืช ืืช ื”ืคืจื•ื™ืงื˜ ื”ื—ื•ืฆื” ืžื’ื™ื˜ื”ืื‘, ืื• ืื ืื ื—ื ื• ืขื•ื‘ื“ื™ื ื‘ื’ื™ื˜ ืžืฉื•ืจืช ื”ืคืงื•ื“ื”, ื”ืžื™ื“ืข ื”ื–ื” ื›ื‘ืจ ืœื ื–ืžื™ืŸ. ืœื ืžื–ืžืŸ ื›ืชื‘ืชื™ ื›ืืŸ ืขืœ ืžื ื’ื ื•ืŸ ื”ืคืชืงื™ื ื‘ื’ื™ื˜. ื”ื™ื•ื ืื ื™ ืจื•ืฆื” ืœื”ืจืื•ืช ื“ื•ื’ืžื” ืœืฉื™ืžื•ืฉ ื‘ื”ื ื›ื“ื™ ืฉื›ืœ ืคืขื ืฉืžื™ืฉื”ื• ืžืืฉืจ Pull Request ื”ืฉื ืฉืœื• ื™ื™ื›ืชื‘ ื‘ืชื•ืš ื”ืงื•ืžื™ื˜ ื‘ืชื•ืจ Note, ื›ืš ืฉื ื•ื›ืœ ืœื”ื™ื–ื›ืจ ืื—ืจื™ ืžื›ืœ ืžืงื•ื. ## ืงื•ื“ ื” Action ื”ื˜ืจื™ืง ืžื‘ื•ืกืก ืขืœ Github Actions, ืฉื–ื” ืžื ื’ื ื•ืŸ ื” CI ื”ืคื ื™ืžื™ ืฉืœ ื’ื™ื˜ื”ืื‘. ืื ื—ื ื• ื™ื›ื•ืœื™ื ืœื”ื’ื“ื™ืจ ืฉื›ืœ ืคืขื ืฉืงื•ืจื” ืžืฉื”ื• ืชื•ืคืขืœ ืื•ื˜ื•ืžื˜ื™ืช ืžื›ื•ื ื” ื•ื™ืจื˜ื•ืืœื™ืช ื•ืชืขืฉื” ืžืฉื”ื•. ื‘ืžืงืจื” ืฉืœื ื• ื ื’ื“ื™ืจ ืฉื›ืœ ืคืขื ืฉืžื™ืฉื”ื• ืžืฉืื™ืจ Approve ืขืœ Pull Request, ืชื•ืคืขืœ ืžื›ื•ื ื” ืฉืชืฉืื™ืจ ืคืชืง ืขืœ ื”ืงื•ืžื™ื˜ ื”ืขื“ื›ื ื™ ื‘ื™ื•ืชืจ ื‘ืื•ืชื• PR. ื”ืงื•ื“ ืฉืœ ื” Action ื ืงืจื Workflow ื•ื”ื•ื ืฉืžื•ืจ ื‘ืงื•ื‘ืฅ yml ื‘ืฉื .github/workflows/main.yml. ืืคืฉืจ ืœื™ืฆื•ืจ ื™ื•ืชืจ ืžืงื•ื‘ืฅ workflow ืื—ื“, ืจืง ื—ืฉื•ื‘ ืœืฉื™ื ืืช ื›ื•ืœื ื‘ืชื™ืงื™ื” ื”ื ื›ื•ื ื”. ื–ื” ื”ืงื•ื“ ืœื“ื•ื’ืžื” ืฉืœื ื•:
jobs:
  approved:
    if: github.event.review.state == 'approved'
    runs-on: ubuntu-latest
    env:
      GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
    steps:
    - uses: actions/checkout@v2
    - run: |
        git config --global user.name 'Github Action'
        git config --global user.email '<>'
        echo "Pull Request ${{ github.event.pull_request.number }} was approved by ${{ github.event.review.user.login }}"
        echo "Approved By: ${{github.event.review.user.login }}" | git notes append -F - ${{ github.event.pull_request.head.sha }}

        git push origin "refs/notes/*"
ื‘ื•ืื• ื ืจืื” ืืช ืขื™ืงืจื™ ื”ื“ื‘ืจื™ื: 1. ื‘ื—ืœืง ื”ืจืืฉื•ืŸ ืื ื™ ืžื’ื“ื™ืจ ืžืชื™ ื” Workflow ื™ืจื•ืฅ, ื–ื” ื™ื”ื™ื” ื›ืœ ืคืขื ืฉืžื™ืฉื”ื• ืžืฉืื™ืจ review ืขืœ Pull Request. 2. ื‘ื—ืœืง ื”ืฉื ื™ ืื ื™ ืžื’ื“ื™ืจ ืžื” ืœืขืฉื•ืช. 3. ื”ืคืงื•ื“ื” if ืžื’ื“ื™ืจื” ืชื ืื™ ืขืœ ื”ืื™ืจื•ืข, ื‘ืกื™ืคื•ืจ ืฉืœื ื• ืื ื—ื ื• ืจื•ืฆื™ื ืœื˜ืคืœ ืจืง ื‘ Reviews ืžืกื•ื’ Approve. 4. ื”ื’ื“ืจืช ืžืฉืชื ื” ื”ืกื‘ื™ื‘ื” GITHUB_TOKEN ืžืืคืฉืจืช ืœ Action ืœืขืฉื•ืช ืคืขื•ืœื•ืช ื‘ืฉืžื ื• ื‘ืชื•ืš ื”ืจื™ืคื•. ื‘ืžืงืจื” ืฉืœื ื• ื”ืคืขื•ืœื” ื”ื™ื ื”ื•ืกืคืช ืคืชืง. 5. ื”ื›ื™ืฃ ื”ืืžื™ืชื™ ืžืชื—ื™ืœ ื‘ืชื•ืš ืคืงื•ื“ืช ื” run - ืื ื™ ืžื’ื“ื™ืจ ืืช ืฉื ื”ืžืฉืชืžืฉ ื•ื”ืื™ืžื™ื™ืœ, ืžืคืขื™ืœ git notes append ื›ื“ื™ ืœื™ืฆื•ืจ ืคืชืง ื•ื“ื•ื—ืฃ ืืช ื›ืœ ื”ืคืชืงื™ื ืœืžืื’ืจ. 6. ื’ื™ื˜ื”ืื‘ ืžืขื‘ื™ืจ ืœื™ ืืช ื›ืœ ื”ืื™ื ืคื•ืจืžืฆื™ื” ื‘ืชื•ืจ ืžืฉืชื ื™ื ื•ื“ื•ืื’ ืœื”ื—ืœืคื” ืœืขืจื›ื™ื ื”ืžืชืื™ืžื™ื. ื”ืžืฉืชื ื™ื ื–ื” ืžื” ืฉืžื•ืคื™ืข ื‘ืชื•ืš ืกื•ื’ืจื™ื™ื ืžืกื•ืœืกืœื™ื ื›ืคื•ืœื™ื, ืœืžืฉืœ ${{github.event.review.user.login }} ืขื‘ื•ืจ ืฉื ื”ืžืฉืชืžืฉ ืฉืœ ืžื™ ืฉื”ืฉืื™ืจ ืืช ื” Review, ื• ${{ github.event.pull_request.head.sha }} ืขื‘ื•ืจ ื” sha ืฉืœ ื”ืงื•ืžื™ื˜ ื”ืื—ืจื•ืŸ ื‘ PR. ื‘ืชื™ืขื•ื“ ืืคืฉืจ ืœืžืฆื•ื ืืช ื”ืžื‘ื ื” ืฉืœ ื›ืœ ื”ืื•ื‘ื™ืงื˜ื™ื ืฉืœื”ื. ## ืžืฉื™ื›ืช ื”ืคืชืงื™ื ื•ืฆืคื™ื” ื‘ืœื•ื’ ืื—ืจื™ ื”ื’ืฉืช Pull Request ื•ืื™ืฉื•ืจ ืฉืœื• ืื ื™ ื™ื›ื•ืœ ืœืจืื•ืช ื‘ื˜ืื‘ Actions ืืช ื”ืคืœื˜ ืฉืœ ื” Workflow. ืžื” ืฉื™ื•ืชืจ ืžืขื ื™ื™ืŸ ื–ื” ื›ืžื•ื‘ืŸ ื”ืคืชืง. ื‘ื”ืจืฆื” ืจื’ื™ืœื” fetch ืœื ืžื•ืฉืš ืืช ื”ืคืชืงื™ื. ื‘ืฉื‘ื™ืœ ืœืžืฉื•ืš ืื•ืชื ืื ื™ ื›ื•ืชื‘ ืืช ื”ืคืงื•ื“ื”:
$ git fetch origin refs/notes/commits:refs/notes/commits
ื•ืื—ืจื™ ื–ื” ื”ืคืขืœื” ืฉืœ git log ืžืจืื” ืœื™ื“ ื”ืงื•ืžื™ื˜ ื”ืขื“ื›ื ื™ ื‘ื™ื•ืชืจ ื‘ PR ืืช ื”ืคืชืง ืขื ืฉื ื”ืžืฉืชืžืฉ ืฉืื™ืฉืจ ืื•ืชื•. ืฉื™ืžื• ืœื‘ ืจืง ืฉื”ืžื ื’ื ื•ืŸ ื›ืืŸ ืขื“ื™ื™ืŸ ื‘ืกื™ืกื™ ื•ื‘ื’ื“ืจ ื˜ื™ื•ื˜ื”. ื”ื•ื ืœื ืžื˜ืคืœ ื‘ืžื—ื™ืงื” ืื• ืขืจื™ื›ื” ืฉืœ ื‘ื™ืงื•ืจืช ื•ื‘ื˜ื— ื™ืฉ ืขื•ื“ ื›ืžื” ื‘ืขื™ื•ืช ืฉืœื ื—ืฉื‘ืชื™ ืขืœื™ื”ืŸ. ืื ื™ ืžืงื•ื•ื” ืฉื”ื•ื ื™ืขื–ื•ืจ ืœื›ื ื‘ืชื•ืจ ื‘ืกื™ืก ืœ Workflows ืฉืชืจืฆื• ืœื›ืชื•ื‘.