uz
Feedback
ToCode

ToCode

Kanalga Telegramโ€™da oโ€˜tish

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

Ko'proq ko'rsatish
1 419
Obunachilar
-124 soatlar
Ma'lumot yo'q7 kunlar
-430 kunlar
Postlar arxiv
ToCode
1 419
ืคืชืจื•ืŸ Advent Of Code 2025 ื™ื•ื 8 ื”ื™ ื—ื‘ืจื™ื ืคื•ืกื˜ ืื—ืจื•ืŸ ื‘ืจืฆืฃ ื”ื–ื” ืฉืœ Advent Of Code ื›ืžื• ื”ืฉื ื™ื™ื ื”ืงื•ื“ืžื™ื ื’ื ื›ืืŸ ื™ืฉ ืœื ื• ืชืจื’ื™ืœ ืฉื ืจืื” ืคืฉื•ื˜ ื•ืื– ืžื’ื™ืข ื”ื˜ื•ื•ื™ืกื˜ ื‘ื—ืœืง ื”ืฉื ื™ ื•ืื™ืชื• ื”ื–ื“ืžื ื•ืช ืœื“ื‘ืจ ืขืœ Trade Offs ื•ืคืชืจื•ื ื•ืช ืœื ืžื•ืฉืœืžื™ื. ื‘ื•ืื• ื ืฆื ืœื“ืจืš. ื”ืืชื’ืจ ื™ื•ื 8 ืžืฆื™ื’ ืœื ื• ื‘ืชื•ืจ ืงืœื˜ ืจืฉื™ืžื” ืฉืœ ืžื™ืงื•ืžื™ื ื‘ืขื•ืœื ืชืœืช ืžื™ืžื“ื™:
162,817,812
57,618,57
906,360,560
592,479,940
352,342,300
466,668,158
542,29,236
431,825,988
739,650,466
52,470,668
216,146,977
819,987,18
117,168,530
805,96,715
346,949,466
970,615,88
941,993,340
862,61,35
984,92,344
425,690,689
ืืคืฉืจ ืœื“ืžื™ื™ืŸ ืฉืืœื” ืžื™ืงื•ืžื™ื ืฉืœ ืื™ื–ืฉื”ื ืจื›ื™ื‘ื™ื ืฉืžืชื—ื‘ืจื™ื ืœืžืขื’ืœื™ื ื—ืฉืžืœื™ื™ื ืื‘ืœ ื–ื” ืœื ืžืื•ื“ ื—ืฉื•ื‘. ืขื›ืฉื™ื• ืžืชื—ื™ืœื™ื ืœื•ืœืื” ืฉืžื•ืฆืืช ืืช ืฉืชื™ ื”ื ืงื•ื“ื•ืช ื”ืงืจื•ื‘ื•ืช ื‘ื™ื•ืชืจ ื•ืžื—ื‘ืจืช ืื•ืชืŸ. ืื™ื˜ืจืฆื™ื” ืฉื ื™ื” ืžื•ืฆืืช ืืช ืฉืชื™ ื”ื ืงื•ื“ื•ืช ื”ื‘ืื•ืช ื”ื›ื™ ืงืจื•ื‘ื•ืช ื•ืžื—ื‘ืจืช ืื•ืชืŸ ื•ื›ืš ืžืžืฉื™ื›ื™ื n ืื™ื˜ืจืฆื™ื•ืช. ืžื’ื“ื™ืจื™ื ืงื‘ื•ืฆื” ืฉืœ ื ืงื•ื“ื•ืช ืžื—ื•ื‘ืจื•ืช ื‘ืชื•ืจ "ืžืขื’ืœ" ื•ื”ืฉืืœื” ื”ื™ื ืžื” ืžื›ืคืœืช ื”ื’ื“ืœื™ื ืฉืœ ืฉืœื•ืฉืช ื”ืžืขื’ืœื™ื ื”ื’ื“ื•ืœื™ื ื‘ื™ื•ืชืจ. ื”ืคืชืจื•ืŸ ื ืฉื™ื ื‘ืฆื“ ืืช ืกื™ืคื•ืจ ื”ืจืงืข ื•ื ืฉื™ื ืœื‘ ืœื“ื™ืœืžื” - ืžื” ืขื•ืœื” ื•ืžืชื™ ืžืฉืœืžื™ื. ืฉืชื™ ืืคืฉืจื•ื™ื•ืช: 1. ืื ื—ื ื• ืœืžืฆื•ื ืฉืชื™ ื ืงื•ื“ื•ืช ืงืจื•ื‘ื•ืช ื•ืื– "ืœืจืฉื•ื" ื‘ืฆื“ ืฉืื ื—ื ื• ืžื—ื‘ืจื™ื ืื•ืชืŸ ื•ื›ืš ืœื‘ื ื•ืช ืžื‘ื ื” ื ืชื•ื ื™ื ืฉืœ ื’ืจืฃ. ืื—ืจื™ ืืœืฃ ื—ื™ื‘ื•ืจื™ื ื ืกืจื•ืง ืืช ื”ื’ืจืฃ ื•ื ื—ืคืฉ ืžืขื’ืœื™ื. 2. ืื ื—ื ื• ื™ื›ื•ืœื™ื ืื—ืจื™ ื›ืœ ื—ื™ื‘ื•ืจ ืœื”ืกืชื›ืœ ืžื” ื—ื™ื‘ืจื ื• ื•ืœืื—ื“ ืืช ื”ืฆืžืชื™ื ืœื’ืจืฃ. ื‘ืžืฆื‘ ื›ื–ื” ื”ื›ืชื™ื‘ื” ื”ื™ื ื™ืงืจื” ื›ื™ ื›ืœ ืคืขื ืฉืื ื™ ื™ื•ืฆืจ ื—ื™ื‘ื•ืจ ื‘ื™ืŸ p ืœ q ืื ื™ ืฆืจื™ืš ืœืกืžืŸ ื’ื ืฉ p ืžื—ื•ื‘ืจ ืœ q ืื‘ืœ ื’ื ืฉื›ืœ ื”ื ืงื•ื“ื•ืช ืฉืžื—ื•ื‘ืจื•ืช ืœ p ืขื›ืฉื™ื• ืžื—ื•ื‘ืจื•ืช ืœื›ืœ ื”ื ืงื•ื“ื•ืช ืฉืžื—ื•ื‘ืจื•ืช ืœ q ื›ืœื•ืžืจ ืœืื—ื“ ืืช ื”ืžืขื’ืœื™ื. ืžืื—ืจ ื•ืื ื—ื ื• ื™ื•ื“ืขื™ื ืžื” ืžืกืคืจ ื”ืื™ื˜ืจืฆื™ื•ืช ื™ื”ื™ื” ื™ื•ืชืจ ืงืœ ืœืคืชื•ืจ ืืช ื”ืชืจื’ื™ืœ ื‘ืฉื™ื˜ื” ื”ืจืืฉื•ื ื”. ืœืฆืขืจื™ (ืื• ืœืฉืžื—ืชื™) ื–ื” ืœื ืžื” ืฉืขืฉื™ืชื™ ื•ื”ืคืชืจื•ืŸ ืฉื›ืชื‘ืชื™ ื”ืฉืชืžืฉ ื‘ืฉื™ื˜ื” ื”ืฉื ื™ื” ื›ืœื•ืžืจ ื›ืœ ื ืงื•ื“ื” ื™ื•ืฆื’ื” ืขืœ ื™ื“ื™ ืงื‘ื•ืฆื” ื•ื›ืœ ื—ื™ื‘ื•ืจ ืื™ื—ื“ ืฉืชื™ ืงื‘ื•ืฆื•ืช. ื–ื” ืื•ืžืจ ืฉื›ืœ ืื™ื˜ืจืฆื™ื” ืขื•ืœื” ืงืฆืช ื™ื•ืชืจ ืื‘ืœ ื–ื™ื”ื•ื™ ื”ืžืขื’ืœื™ื ื‘ืกื•ืฃ ื”ื•ื ื‘ื—ื™ื ื. ื–ื” ื”ืงื•ื“ ื‘ืจื•ื‘ื™, ื”ื›ื™ ืืจื•ืš ืขื“ ื›ื”:
def line_to_pos(l)
  l.chomp.split(',').map(&:to_i)
end

def distance(p1, p2)
  (p1[0] - p2[0]) ** 2 + (p1[1] - p2[1]) ** 2 + (p1[2] - p2[2]) ** 2
end

class Day8
  def initialize(filename)
    lines = File.read(filename).lines
    @circuits = lines.map do |line|
      pos = line_to_pos(line)
      [pos, Set.new([pos])]
    end.to_h

    distances = Hash.new {|h, k| h[k] = [] }
    lines.each do |from|
      lines.each do |to|
        next if from == to
        p = line_to_pos(from)
        q = line_to_pos(to)
        d = distance(p, q)
        distances[d] << [p, q] unless distances[d].include?([q, p])
      end
    end
    @distances = distances.keys.sort.flat_map {|k| distances[k] }
  end

  def connect(p, q)
    c_p = @circuits[p]
    c_q = @circuits[q]
    return 0 if c_p == c_q

    @circuits[p].merge(c_q)
    @circuits[q].each do |qq|
      @circuits[qq] = @circuits[p]
    end
    return 1
  end

  def part1
    cables = 1_000
    i = 0
    while cables > 0
      next_p, next_q = @distances[i]
      cables_used = connect(next_p, next_q)
      cables -= 1
      i += 1
    end
    @circuits.values.uniq.map {|s| s.size }.sort.reverse[0..2].reduce(1) {|acc, val| acc * val }
  end
end
ืœืžืจื•ืช ืฉื”ืคืชืจื•ืŸ ื ื›ื•ืŸ ื•ืขื•ื‘ื“ ืงืœื•ื“ ื–ื™ื”ื” ืืช ื”"ื‘ืื’ ื”ืงืจื™ื˜ื™" ื”ื‘ื:
Problem: Only elements in c_q get updated. Elements in c_p that aren't p may still point to the old set.
ื”ื–ื™ื”ื•ื™ ื”ื–ื” ื‘ื“ื™ื•ืง ืžืจืื” ืœื ื• ืœืžื” ืขื“ื™ื™ืŸ ืงืฉื” ืœืงื‘ืœ Code Review ืž AI. ื›ืฉืงื•ืจืื™ื ืืช ื”ืงื•ื“ ื•ืืช ื”ื”ืขืจื” ื–ื” ื ืจืื” ืžืื•ื“ ื ื›ื•ืŸ, ื‘ืืžืช ืื™ืŸ ืกื™ืžื˜ืจื™ื” ื‘ืคื•ื ืงืฆื™ื” connect ื‘ื™ืŸ p ื• q. ืœืงื‘ื•ืฆื” ืฉืœ p ืื ื™ ืจืง ืขื•ืฉื” merge ืื‘ืœ ื‘ืงื‘ื•ืฆื” ืฉืœ q ืื ื™ ืžืžืฉ ืจืฅ ื‘ืœื•ืœืื” ื•ืžืขื“ื›ืŸ ืืช ื›ืœ ื”ื”ืคื ื™ื•ืช. ืœืžื” ืœื ื”ื™ื™ืชื™ ืฆืจื™ืš ืœืขืฉื•ืช ืืช ื–ื” ื’ื ื‘ p ? ื”ืชืฉื•ื‘ื” ื‘ืจื•ืจื” ืœืžื™ ืฉืžื‘ื™ืŸ ืืช ื–ืจื™ืžืช ื”ืžื™ื“ืข ื‘ืžืขืจื›ืช - ื”ื ืงื•ื“ื•ืช ื”ืื—ืจื•ืช ื‘ p ื›ื‘ืจ ืžืฆื‘ื™ืขื•ืช ืขืœ ืื•ืชื• Set ื›ืžื• p ื›ื™ ืขื“ื›ื ืชื™ ืืช ื”ื”ืฆื‘ืขื” ืฉืœื”ืŸ ื‘ื—ื™ื‘ื•ืจื™ื ืงื•ื“ืžื™ื. ืื™ืŸ ื˜ืขื ืœืจื•ืฅ ื•ืœืขื“ื›ืŸ ืžื—ื“ืฉ. ื”ื‘ืื’ ื”ืฉื ื™ ืฉืงืœื•ื“ ืžื–ื”ื” ื‘ื˜ืขื•ืช ื‘ Code Review ื”ื•ื:
Cables are decremented even when connect returns 0 (already connected):

ToCode
1 419
......|........
......^|^......
.......|.......
.....^|^.^.....
......|........
....^.^|..^....
.......|.......
...^.^.|.^.^...
.......|.......
..^...^|....^..
.......|.......
.^.^.^|^.^...^.
......|........
ื•ื”ืฉืืœื” ื”ื™ื ื›ืžื” ืขื•ืœืžื•ืช ืืคืฉืจื™ื™ื ื›ืืœื” ืงื™ื™ืžื™ื. ืื– ื‘ืจื•ืจ ืฉืื ื—ื ื• ืœื ื™ื›ื•ืœื™ื "ืœื ืกื•ืช" ืืช ื›ืœ ื”ืขื•ืœืžื•ืช ื›ืœื•ืžืจ ืœื—ืฉื‘ ื•ืœืฉืžื•ืจ ื›ืœ ืžืกืœื•ืœ ืืคืฉืจื™. ื–ื” ืคืฉื•ื˜ ื™ื™ืงื— ื”ืจื‘ื” ื™ื•ืชืจ ืžื“ื™ ืคืขื•ืœื•ืช ื‘ื’ืœืœ ื”ื—ื™ืฉื•ื‘ื™ื ื”ื›ืคื•ืœื™ื. ื•ื‘ืจื’ืข ืฉื—ืฉื‘ืชื ืืช ื”ืžื™ืœื” "ื—ื™ืฉื•ื‘ื™ื ื›ืคื•ืœื™ื" ืžื™ื“ ืืชื ื™ื•ื“ืขื™ื ืฉื ื›ื ืกืชื ืœืืจืฅ ื”ืชื›ื ื•ืช ื”ื“ื™ื ืžื™. ืชื›ื ื•ืช ื“ื™ื ืžื™ ื‘ืกืš ื”ื›ืœ ืื•ืžืจ ืฉืื ื—ื ื• ืฉื•ืžืจื™ื ืชื•ืฆืื•ืช ืฉืœ ื—ื™ืฉื•ื‘ื™ ื‘ื™ื ื™ื™ื ื›ื“ื™ ืœื ืœื—ื–ื•ืจ ืขืœื™ื”ื. ื‘ืกื™ืคื•ืจ ืฉืœ ื”ืงืจืŸ ืื ื™ ืจื•ืฆื” ืœืกืžืŸ Slitter ืžืกื•ื™ื ื•ืœื”ืกืชื›ืœ ืขืœื™ื• ืฉื™ืžื• ืœื‘ ืœื›ื•ื›ื‘ื™ืช ื‘ืฆื™ื•ืจ ื”ื‘ื:
.......S.......
.......|.......
......|^.......
......|........
......^|^......
.......|.......
.....^|^.^.....
......|........
....^.*|..^....
.......|.......
...^.^.|.^.^...
.......|.......
..^...^|....^..
.......|.......
.^.^.^|^.^...^.
......|........
ื”ื“ืจืš ื”ืœื ื ื›ื•ื ื” ืœื—ืฉื•ื‘ ืขืœ ื”ืชืจื’ื™ืœ ื”ื–ื”, ื•ื–ื• ืฉืชื™ื™ืฆืจ ื—ื™ืฉื•ื‘ื™ื ื›ืคื•ืœื™ื, ื”ื™ื ืœื”ื’ื™ื“ ืฉืื ื—ื ื• ืžื’ื™ืขื™ื ืœื›ื•ื›ื‘ื™ืช ื•ืื– ืžืคืขื™ืœื™ื ืงืจื™ืื” ืจืงื•ืจืกื™ื‘ื™ืช ื•ืกื•ืคืจื™ื ื›ืžื” ืขื•ืœืžื•ืช ื™ืฉ ื‘ืฆื“ ืฉืžืืœ ืฉืœื” ื•ื›ืžื” ืขื•ืœืžื•ืช ื™ืฉ ื‘ืฆื“ ื™ืžื™ืŸ ืฉืœื”. ื‘ืฉื‘ื™ืœ ืœืจืื•ืช ืœืžื” ื–ื” ืœื ืขื•ื‘ื“ ืฉื™ืžื• ืœื‘ ืœืฉื ื™ ื”ืกืคืœื™ื˜ืจื™ื ืฉืžืขืœ ื”ื›ื•ื›ื‘ื™ืช (ืžืกื•ืžื ื™ื ื‘ื›ืจื•ื›ื™ืช):
.......S.......
.......|.......
......|^.......
......|........
......^|^......
.......|.......
.....@|@.^.....
......|........
....^.*|..^....
.......|.......
...^.^.|.^.^...
.......|.......
..^...^|....^..
.......|.......
.^.^.^|^.^...^.
......|........
ื›ืœ ืื—ื“ ืžื”ื ื™ื›ื•ืœ ืœืฉืœื•ื— ืงืจืŸ ืฉืชื’ื™ืข ืœื›ื•ื›ื‘ื™ืช. ื”ื—ื™ืฉื•ื‘ ื”ื›ืคื•ืœ ืงื•ืจื” ื›ืฉืื ื—ื ื• ืกื•ืคืจื™ื ืืช ืžืกืคืจ ื”ืขื•ืœืžื•ืช ืžื”ื›ื•ื›ื‘ื™ืช ืœืžื˜ื” ืคืขืžื™ื™ื: ืคืขื ืื—ืช ื›ืฉื”ื’ืขื ื• ืœื›ื•ื›ื‘ื™ืช ืžื”ื›ืจื•ื›ื™ืช ื”ืฉืžืืœื™ืช ื•ืคืขื ืฉื ื™ื” ื•ื–ื”ื” ื›ืฉืื ื—ื ื• ืžื’ื™ืขื™ื ืœื›ื•ื›ื‘ื™ืช ืžื”ื›ืจื•ื›ื™ืช ื”ื™ืžื ื™ืช. ืกืคื™ืจืช ืคืชืจื•ื ื•ืช ืœื ืขื•ื‘ื“ืช ื‘ื’ืœืœ ืฉื”ื™ื ืžื™ื™ืฆืจืช ื”ืžื•ืŸ ื—ื™ืฉื•ื‘ื™ื ื›ืคื•ืœื™ื. ืžื” ืขื•ืฉื™ื ื‘ืžืงื•ื? ืชื›ื ื•ืช ื“ื™ื ืžื™ ืื•ืžืจ ืฉื›ื“ืื™ ืœื ื• ืœืฉืžื•ืจ ื‘ื›ืœ ืžืฉื‘ืฆืช ื›ืžื” ืืคืฉืจื•ื™ื•ืช ื™ืฉ ืœื”ื’ื™ืข ืืœื™ื”. ื‘ื›ืœ ืฉื•ืจื” ื ื•ื›ืœ ืœื”ืกืชื›ืœ ืขืœ ื”ืฉื•ืจื” ื”ืงื•ื“ืžืช ื›ื“ื™ ืœืขื“ื›ืŸ ืืช ื”ืžื•ื ื”: ืื ืžืขืœื™ื ื• ื”ื™ื” Splitter ื”ืขืจืš ื”ื—ื“ืฉ ื”ื•ื 0, ืื—ืจืช ืกื•ื›ืžื™ื ืืช ืขืจืš ื”ืžืฉื‘ืฆืช ืฉืžืขืœื™ื ื• ื•ืืช ื”ืืœื›ืกื•ื ื™ื ืฉืœืžืขืœื” ืื ื”ื ื”ื—ื–ื™ืงื• Splitter. ื‘ืกื•ืฃ ื ื•ื›ืœ ืœืกื›ื•ื ืืช ื›ืœ ื”ืืคืฉืจื•ื™ื•ืช ืฉืœ ื›ืœ ื”ืžืฉื‘ืฆื•ืช ื‘ืฉื•ืจื” ื”ืื—ืจื•ื ื” ื•ื›ืš ื ืงื‘ืœ ืืช ืžืกืคืจ ื”ืขื•ืœืžื•ืช. ื”ื ื” ื–ื” ื‘ืจื•ื‘ื™ ืœื ืžืกื•ื‘ืš ื‘ื›ืœืœ:
  def part2
    beams_through = []

    File.read(@filename).lines.each do |line|
      if beam_index = line =~ /S/
        puts "--- START ---"
        beams_through = line.chars.map {|c| c == "S" ? 1 : 0 }
      end
      
      splitter_indexes = Set.new(line.find_all_indexes('^'))
      beams_through = beams_through.each_with_index.map do |previous_count, index|
        if splitter_indexes.include?(index)
          0
        else
          value = beams_through[index]
          value += beams_through[index - 1] if splitter_indexes.include?(index - 1)
          value += beams_through[index + 1] if splitter_indexes.include?(index + 1)

          value
        end
      end

      pp beams_through
    end
    beams_through.sum
  end

ToCode
1 419
ืคืชืจื•ืŸ Advent Of Code 2025 ื™ื•ื 7 ืื ื™ ืจื•ืฆื” ืœื”ืžืฉื™ืš ื‘ืกื“ืจืช ื”ืคืชืจื•ื ื•ืช ืฉืœ Advent Of Code ื•ืœื“ื‘ืจ ืขืœ ื™ื•ื 7, ื™ื•ื ืฉืœื™ืžื“ ืื•ืชื™ ืฉืชื›ื ื•ืช ื“ื™ื ืžื™ ื–ื” ื“ื•ื•ืงื ื“ื™ ื›ื™ืฃ ื•ืœื ืžืกื•ื‘ืš. ื›ืžื• ืืชืžื•ืœ ื’ื ืคื” ื”ื—ืœืง ื”ืจืืฉื•ืŸ ืคืฉื•ื˜ ื•ื”ื—ืœืง ื”ืฉื ื™ ื“ื•ืจืฉ ืืช ื”ืžืืžืฅ. ื”ืืชื’ืจ ื ืชื•ืŸ ืงืœื˜ ืฉืžืชืืจ ืกื•ื’ ืฉืœ ืžืกืœื•ืœ ืžืœืžืขืœื” ืœืžื˜ื”:
.......S.......
...............
.......^.......
...............
......^.^......
...............
.....^.^.^.....
...............
....^.^...^....
...............
...^.^...^.^...
...............
..^...^.....^..
...............
.^.^.^.^.^...^.
...............
ื‘ืžืกืœื•ืœ ื™ืฉ ืœื ื• ืงืจืŸ ืฉืžืชื—ื™ืœื” ืžื”ืื•ืช S ื‘ืฉื•ืจื” ื”ืจืืฉื•ื ื” ื•ื™ื•ืจื“ืช ื›ืœืคื™ ืžื˜ื”. ื›ืœ ืคืขื ืฉื”ื™ื ืคื•ื’ืขืช ื‘ ^ ื”ื™ื ืžืชืคืฆืœืช ืœ-2 ืื—ืช ื‘ื›ืœ ืฆื“ ืฉืœ ื” ^ ืœื“ื•ื’ืžื” ืื—ืจื™ ืฉืชื™ ืฉื•ืจื•ืช ื ืงื‘ืœ:
.......S.......
.......|.......
......|^|......
...............
......^.^......
...............
.....^.^.^.....
...............
....^.^...^....
...............
...^.^...^.^...
...............
..^...^.....^..
...............
.^.^.^.^.^...^.
...............
ื•ื‘ืกื•ืฃ ื ื’ื™ืข ืœ:
.......S.......
.......|.......
......|^|......
......|.|......
.....|^|^|.....
.....|.|.|.....
....|^|^|^|....
....|.|.|.|....
...|^|^|||^|...
...|.|.|||.|...
..|^|^|||^|^|..
..|.|.|||.|.|..
.|^|||^||.||^|.
.|.|||.||.||.|.
|^|^|^|^|^|||^|
|.|.|.|.|.|||.|
ื”ืžืฉื™ืžื” ื”ื™ื ืœื—ืฉื‘ ื›ืžื” ืคืขืžื™ื ื”ืงืจืŸ ืžืชืคืฆืœืช. ื”ืคืชืจื•ืŸ ืื ื™ ืžืชื—ื™ืœ ื‘ื”ื’ื“ืจืช ืคื•ื ืงืฆื™ื™ืช ืขื–ืจ ืฉืžื•ืฆืืช ื‘ืฉื•ืจื” ืืช ื›ืœ ื”ืื™ื ื“ืงืกื™ื ืฉืœ ื”ืกืคืœื™ื˜ืจื™ื:
class String
  def find_all_indexes(ch)
    chars.each_with_index.filter {|c, i| c == ch }.map {|c, i| i }
  end
end
ื‘ื’ืœืœ ืฉื–ื” ืจื•ื‘ื™ ืื ื™ ื™ื›ื•ืœ ืœื”ื’ื“ื™ืจ ืืช ื”ืคื•ื ืงืฆื™ื” ื‘ืชื•ืจ ื”ืจื—ื‘ื” ืœ Stirng ื•ืขื›ืฉื™ื• ืืคืฉืจ ืœื›ืชื•ื‘:
"abcabcabc".find_all_indexes("a")
ื›ื“ื™ ืœื”ืคืขื™ืœ ืืช ื”ืคื•ื ืงืฆื™ื” ืขืœ ื”ืžื—ืจื•ื–ืช ืฉืžืฉืžืืœ ืœื ืงื•ื“ื”. ื”ืงื•ื“ ืขืฆืžื• ื‘ืชื•ืกืคืช ื”ืขืจื•ืช ืฉืœ AI ื”ื•ื:
  def part1
    beam_indexes = Set.new
    count = 0

    File.read(@filename).lines.each do |line|
      # Initialize beam positions when we encounter the start marker
      if beam_index = line =~ /S/
        puts "--- START ---"
        beam_indexes = Set.new([beam_index])
      end

      # Find all splitter positions in current line
      splitter_indexes = Set.new(line.find_all_indexes('^'))
      # When a beam hits a splitter, it splits into two beams (left and right)
      splitted_beams = Set.new((splitter_indexes & beam_indexes).flat_map {|i| [i-1, i+1] })
      # Count interactions with splitters
      count += (splitter_indexes & beam_indexes).size
      # Beams that don't hit splitters continue straight
      continuing_beams = beam_indexes - splitter_indexes
      # Update beam positions: continuing beams + newly split beams
      beam_indexes = continuing_beams + splitted_beams
    end

    count
  end
ื”ืืœื’ื•ืจื™ืชื ื›ืžื• ืฉืืคืฉืจ ืœืจืื•ืช ืžื”ืงื•ื“ ื”ื•ื ื‘ืกืš ื”ื›ืœ ืคืขื•ืœื•ืช ืขืœ ืงื‘ื•ืฆื•ืช: ืœื•ืงื—ื™ื ืืช ื›ืœ ื”ืื™ื ื“ืงืกื™ื ืฉืœ ื” ^ ืœืงื‘ื•ืฆื” ืื—ืช ื•ืืช ื›ืœ ื”ืื™ื ื“ืงืกื™ื ืฉืœ ื”ืงืจื ื™ื™ื ื‘ืงื‘ื•ืฆื” ืฉื ื™ื” ื•ื”ื—ื™ืชื•ืš ื‘ื™ืŸ ืฉืชื™ ื”ืงื‘ื•ืฆื•ืช ื”ื•ื ื‘ื“ื™ื•ืง ืžืกืคืจ ื”ืคื™ืฆื•ืœื™ื ืฉืœ ืื•ืชื” ืฉื•ืจื”. ื”ื—ื™ืฉื•ื‘ ื”ื•ื ื‘ืฉื•ืจื”:
count += (splitter_indexes & beam_indexes).size
ื›ืฉืฉืœื—ืชื™ ืืช ื”ืงื•ื“ ืœืงืœื•ื“ ืขื‘ื•ืจ Code Review ื”ื•ื ื˜ืขืŸ ืฉืคืขื•ืœืช ื—ื™ื‘ื•ืจ ืฉืœ ืฉืชื™ ืงื‘ื•ืฆื•ืช ื‘ืจื•ื‘ื™ ืžื—ื–ื™ืจื” ืžืขืจืš ืื‘ืœ ื‘ื“ื™ืงื” ื‘ืงื•ื ืกื•ืœ ืžืจืื” ืœื™ ืฉื–ื• ื˜ืขื•ืช ื•ื—ื™ื‘ื•ืจ ืฉืชื™ ืงื‘ื•ืฆื•ืช ืžื—ื–ื™ืจ ืงื‘ื•ืฆื”:
3.3.5 :005 > (Set.new + Set.new).class
 => Set
ื”ื•ื ื’ื ื˜ืขืŸ ืฉืฉื›ื—ืชื™ ืœืขืฉื•ืช require ืœ set ื•ื–ื• ื’ื ื˜ืขื•ืช ืฉืœื•. ืฉื ื™ ื”ื“ื‘ืจื™ื ืžืœืžื“ื™ื ืื•ืชื™ ืฉืงืœื•ื“ ื›ื ืจืื” ื—ื•ืฉื‘ ืฉืื ื™ ื‘ื’ืจืกื” ื™ืฉื ื” ื™ื•ืชืจ ืฉืœ ืจื•ื‘ื™. ืกืš ื”ื›ืœ ื”ืงื•ื“ ืขื‘ื“ ื‘ืกื“ืจ ื’ืžื•ืจ ื•ื”ื—ื–ื™ืจ ืชื•ืฆืื” ื ื›ื•ื ื”. ื”ื˜ื•ื•ื™ืกื˜ - ืชื›ื ื•ืช ื“ื™ื ืžื™ ื”ื—ืœืง ื”ืฉื ื™ ืฉืœ ื”ืฉืืœื” ื”ื›ื ื™ืก ืืช ื”ื˜ื•ื•ื™ืกื˜. ื“ืžื™ื™ื ื• ืฉื‘ืžืงื•ื ืฉื”ืงืจืŸ ืชืชืคืฆืœ ื”ื–ืžืŸ ืขืฆืžื• ืžืชืคืฆืœ ื•ื™ืฉ ืœื ื• ืขื•ืœื ืื—ื“ ื‘ื• ื”ืงืจืŸ ื”ืœื›ื” ื™ืžื™ื ื” ื•ืขื•ืœื ืื—ืจ ื‘ื• ื”ื™ื ื”ืœื›ื” ืฉืžืืœื”. ื›ืœ ืขื•ืœื ื›ื–ื” ื™ืžืฉื™ืš ื‘ืชื•ืจื• ืœื”ืชืคืฆืœ ืœืขื•ื“ ืขื•ืœืžื•ืช ื›ืฉื”ืงืจืŸ ืชืžืฉื™ืš ืœืคื’ื•ืข ื‘ืขื•ื“ Splitters. ื–ื• ื“ื•ื’ืžื” ืœืขื•ืœื ืืคืฉืจื™ ืื—ื“:
.......S.......
.......|.......
......|^.......
......|........
.....|^.^......
.....|.........
....|^.^.^.....
....|..........
...|^.^...^....
...|...........
..|^.^...^.^...
..|............
.|^...^.....^..
.|.............
|^.^.^.^.^...^.
|..............
ื•ื–ื• ื“ื•ื’ืžื” ืœืขื•ื“ ืขื•ืœื ืืคืฉืจื™:
.......S.......
.......|.......
......|^.......

ToCode
1 419
ืคืชืจื•ืŸ Advent Of Code 2025 ื™ื•ื 6 ืื ื™ ืžืžืฉื™ืš ืขื ืกื“ืจืช Advent Of Code ืœืฉืžื—ืชื ื• ื”ืฉื ื” ื™ืฉ ืจืง 12 ื—ื™ื“ื•ืช ืื– ื™ืฉ ืกื™ื›ื•ื™ ืฉืืฆืœื™ื— ืœืคืชื•ืจ ื•ืœืคืจืกื ืืช ื›ื•ืœื ืœืคื ื™ ืฉื™ืขืœื• ื”ืืชื’ืจื™ื ืฉืœ 2026. ืื ื—ื ื• ื”ื™ื•ื ื‘ืืžืฆืข ื”ื“ืจืš ืขื ื™ื•ื 6 ื•ืชืจื’ื™ืœ ืฉืื ื™ ื—ืฉื‘ืชื™ ืฉื”ื™ื” ืกื•ืคืจ ืžืขื ื™ื™ืŸ. ื‘ื•ืื• ื ืจืื” ืืช ื”ืžืกืคืจื™ื. ื”ืืชื’ืจ ื ืชื•ืŸ ืงืœื˜ ืฉื ืจืื” ื“ื™ ืคืฉื•ื˜:
123 328  51 64 
 45 64  387 23 
  6 98  215 314
*   +   *   +
ื™ืฉ ืคื” ื˜ื•ืจื™ื ืฉืœ ืžืกืคืจื™ื ื•ื‘ืชื—ืชื™ืช ื›ืœ ื˜ื•ืจ ืžื•ืคื™ืข ืกื™ืžืŸ ืคืœื•ืก ืื• ื›ืคื•ืœ. ื”ืžืฉื™ืžื” ืฉืœื ื• ืœื›ืคื•ืœ ืื• ืœื—ื‘ืจ ืืช ื”ืžืกืคืจื™ื ื‘ื˜ื•ืจ (ืœืคื™ ื”ืกื™ืžืŸ) ื•ื‘ืกื•ืฃ ืœื—ื‘ืจ ืืช ื”ืชื•ืฆืื•ืช. ื‘ื“ื•ื’ืžื” ื”ืชื•ืฆืื” ื”ื™ื 4277556. ื”ืคืชืจื•ืŸ ื”ื“ืจืš ืœืคืชืจื•ืŸ ื“ื™ ืคืฉื•ื˜ื”: ืงื•ืจืื™ื ืืช ื”ืงืœื˜ ืฉื•ืจื” ืฉื•ืจื”, ืฉื•ื‘ืจื™ื ื›ืœ ืฉื•ืจื” ืœืคื™ ืจื•ื•ื—ื™ื, ื›ื™ ืื ื—ื ื• ื™ื•ื“ืขื™ื ืฉื™ืฉ ืืช ืื•ืชื• ืžืกืคืจ ืขืžื•ื“ื•ืช ื‘ื›ืœ ืฉื•ืจื” ื•ื‘ื•ื ื™ื ืžืขืจืš ื“ื• ืžื™ืžื“ื™ ืฉืœ ื›ืœ ื”ื’ืจื™ื“. ื‘ืกื•ืฃ ืœื•ืงื—ื™ื ืืช ื”ืกื™ืžืŸ ื”ืื—ืจื•ืŸ ื‘ื›ืœ ืขืžื•ื“ื” ื‘ืชื•ืจ ืคืขื•ืœื” ื•ืžืคืขื™ืœื™ื ืื•ืชื” ืขืœ ื›ืœ ื”ืคืจื™ื˜ื™ื ื‘ืื•ืชื” ืขืžื•ื“ื”. ื–ื” ื”ืงื•ื“ ื‘ืจื•ื‘ื™:
class Day6
  def initialize(filename)
    @filename = filename
  end

  def part1
    columns = []
    File.read(@filename).lines do |line|
      columns << line.strip.split(/\s+/)
    end
    @operators = columns.pop
    @values = columns
    results = @operators.each_with_index.map do |op, idx|
      @values.map {|v| v[idx].to_i }.reduce(op.to_sym)
    end
    pp results.sum
  end
end
ื”ื˜ื•ื•ื™ืกื˜ ืื—ืจื™ ืฉืžื’ื™ืฉื™ื ืืช ื”ื—ืœืง ื”ืจืืฉื•ืŸ ืžื’ืœื™ื ืืช ื”ื˜ื•ื•ื™ืกื˜ ื‘ืชืจื’ื™ืœ - ืฉื™ืžื• ืœื‘ ืื•ืžืจื™ื ืœื ื• ืฉื—ืœืง ืžื”ืžืกืคืจื™ื ืžื™ื•ืฉืจื™ื ืœื™ืžื™ืŸ ื•ื—ืœืง ืœืฉืžืืœ:
123 328  51 64 
 45 64  387 23 
  6 98  215 314
*   +   *   +
ื‘ืขืฆื ื”ืžืกืคืจื™ื ื‘ื›ืœ ื˜ื•ืจ ื›ืชื•ื‘ื™ื ืžืœืžืขืœื” ืœืžื˜ื” ื•ืœื ืจื’ื™ืœ ืžืฉืžืืœ ืœื™ืžื™ืŸ, ืœื›ืŸ ื‘ื˜ื•ืจ ื”ื™ืžื ื™ ื”ืžืกืคืจ ื”ืจืืฉื•ืŸ ื”ื•ื 4 (ื”ื˜ื•ืจ ื”ื™ืžื ื™ ื‘ื™ื•ืชืจ), ืื—ืจื™ื• ื™ืฉ ืœื ื• ื˜ื•ืจ ื‘ื• ื™ืฉ ืืช 4, 3 ื•-1 ื•ืœื›ืŸ ื”ืžืกืคืจ ื”ื•ื 431 ื•ื”ืžืกืคืจ ื”ืื—ืจื•ืŸ ื‘ื˜ื•ืจ ื”ื™ืžื ื™ ื”ื•ื 623. ื—ื™ื‘ื•ืจ ืฉืœื•ืฉืชื ื ื•ืชืŸ 1058. ื”ืฉื™ื ื•ื™ ื”ื–ื” ืžืฉืคื™ืข ื™ืฉื™ืจื•ืช ืขืœ ื”ื‘ืœื•ืง:
File.read(@filename).lines do |line|
  columns << line.strip.split(/\s+/)
end
ื‘ื—ืœืง ื”ืจืืฉื•ืŸ ื—ืฉื‘ื ื• ืฉืืคืฉืจ ืœื”ืชืขืœื ืžืจื•ื•ื—ื™ื ื•ืฉื™ืฉ ืื•ืชื• ืžืกืคืจ ืฉืœ ืขืžื•ื“ื•ืช ื‘ื›ืœ ืฉื•ืจื”. ืขื›ืฉื™ื• ืื ื—ื ื• ืžื’ืœื™ื ืฉืขื“ื™ื™ืŸ ื™ืฉ ืื•ืชื• ืžืกืคืจ ืขืžื•ื“ื•ืช ื‘ื›ืœ ืฉื•ืจื” ืื‘ืœ ื—ืฉื•ื‘ ืœืฉืžื•ืจ ืขืœ ื”ืจื™ื•ื•ื— ื›ื™ 64 ืฉืžื™ื•ืฉืจ ืœืฉืžืืœ ืœื ืžืชื ื”ื’ ื›ืžื• 51 ืฉืžื™ื•ืฉืจ ืœื™ืžื™ืŸ ืฉื™ื•ืฉื‘ ืžืžืฉ ืžืฉืžืืœื•. ื”ืืชื’ืจ ื”ืฉื ื™ ืฉืœื ืจื•ืื™ื ื‘ื ืชื•ื ื™ ื”ื“ื•ื’ืžื” ื”ื•ื ืฉื›ืœ ืขืžื•ื“ื” ื™ื›ื•ืœื” ืœื”ื™ื•ืช ื‘ืื•ืจืš ืฉื•ื ื”. ื‘ื ืชื•ื ื™ ื”ื“ื•ื’ืžื” ื›ืœ ื”ืขืžื•ื“ื•ืช ื›ืœืœื• ืžืกืคืจื™ื ื‘ื ื™ 3 ืกืคืจื•ืช ื•ืœื›ืŸ ืœื›ื•ืœืŸ ื”ื™ื” ืื•ืชื• ืื•ืจืš ืื‘ืœ ื‘ืžืงืจื” ื”ื›ืœืœื™ ืงืœ ืœืจืื•ืช ืฉืื ื™ืฉ ื˜ื•ืจ ืขื ืžืกืคืจื™ื ื‘ื ื™ ืฉืชื™ ืกืคืจื•ืช ืื• ืกืคืจื” ืื—ืช ื ื“ืจืฉ ื˜ื™ืคื•ืœ ืฉื•ื ื”, ื›ืœื•ืžืจ ืงืœื˜ ื›ื–ื” ืœื’ืžืจื™ ื™ื›ื•ืœ ืœืงืจื•ืช:
123 32  51 64 
 45 64 387 23 
  6 98 215 314
*   +  *   +
ืžื” ืขื•ืฉื™ื? ื”ืคืขื ืื ื—ื ื• ืฆืจื™ื›ื™ื ืœื–ื”ื•ืช ืžื” ืื•ืจืš ื›ืœ ืขืžื•ื“ื” ื•ืื– ืœืคืฆืœ ืืช ื”ืฉื•ืจื” ืœืขืžื•ื“ื•ืช ื‘ืฆื•ืจื” ืงืฉื™ื—ื” ืœืคื™ ืžืกืคืจ ื”ืชื•ื•ื™ื ืฉืื ื—ื ื• ื™ื•ื“ืขื™ื ืฉื™ืฉ ื‘ื›ืœ ืขืžื•ื“ื”. ืืคืฉืจ ืœื”ื’ื™ื“ ืฉื‘ื—ืœืง ื”ืงื•ื“ื ืฉื‘ืจื ื• ืืช ื”ืฉื•ืจื” ืœืคื™ ืชื• ื”ืคืจื“ื” ื•ืขื›ืฉื™ื• ืื ื—ื ื• ืฉื•ื‘ืจื™ื ืœืคื™ ืื•ืจืš ืื• ืื™ื ื“ืงืกื™ื. ื‘ืฉื‘ื™ืœ ืœื’ืœื•ืช ืืช ื”ืื•ืจืš ืฉืœ ื›ืœ ืขืžื•ื“ื” ืืคืฉืจ ืœื”ืกืชื›ืœ ืขืœ ื”ืฉื•ืจื” ื”ืื—ืจื•ื ื” ืฉื•ืจืช ื”ืคืขื•ืœื•ืช. ื–ื” ื”ืงื•ื“ ื‘ืจื•ื‘ื™ ืœื—ืœืง ื”ืฉื ื™:
  def part2
    lines = File.read(@filename).lines
    operators_line = lines.pop
    column_sizes = operators_line.scan(/[+*]\s*/).map {|i| i.size - 1}
    data = lines.map(&:chomp).map do |line|
      column_sizes.map {|s| r = line.slice!(0, s); line.slice!(0, 1); r }
    end
    operators = operators_line.strip.split(/\s+/).map(&:to_sym)
    columns = (0...operators.size).map {|col| data.map {|d| d[col] } }

    values = columns.map do |column|
      (0...column[0].size).map {|i| column.map {|c| c[i] }.join('').to_i }
    end

    @results = operators.each_with_index.map {|o, i| values[i].reduce(o) }

    pp @results.sum
  end
ืกืš ื”ื›ืœ ืื ื™ ืžื•ื“ื” ืฉื‘ื—ืœืง ื”ืฉื ื™ ื”ืกืชื‘ื›ืชื™ ืงืฆืช ืขื ื”ืื™ื ื“ืงืกื™ื ื•ื›ื ืจืื” ืืคืฉืจ ืœืจืื•ืช ืืช ื–ื” ื›ืฉืงื•ืจืื™ื ืืช ื”ืงื•ื“. ืœืžืจื•ืช ื–ืืช ืื—ืจื™ ื›ืžื” ื‘ืขื™ื˜ื•ืช ื”ืงื•ื“ ืขื‘ื“ ื•ืžืฆืœื™ื— ืœื˜ืคืœ ื‘ื›ืœ ืžืงืจื™ ื”ืงืฆื” ืฉืžืฆืืชื™ ื•ืœื”ื’ื™ืข ืœืชืฉื•ื‘ื” ื”ื ื›ื•ื ื”.

ToCode
1 419
ื”ื’'ื•ื ื™ื•ืจ ืฉืœ ืืชืžื•ืœ ื”ื’'ื•ื ื™ื•ืจ ืฉืœ ืืชืžื•ืœ ืงื™ื‘ืœ ืžืคืจื˜ ื˜ื›ื ื™ ืžื“ื•ื™ืง ืžื”ืืจื›ื™ื˜ืงื˜ ืื• ื”ืžื ื”ืœ ื•ื”ื™ื” ืฆืจื™ืš ืœื‘ื ื•ืช ืื•ืชื•. ื”ื’'ื•ื ื™ื•ืจ ืฉืœ ืžื—ืจ ื™ืฆื˜ืจืš ืœื‘ื•ื ืœืืจื›ื™ื˜ืงื˜ ืขื ื”ืžืคืจื˜ ื”ื˜ื›ื ื™ ื•ื ืชื•ื ื™ื ืฉืžื•ื›ื™ื—ื™ื ืœืžื” ื”ื‘ื—ื™ืจื” ืฉืœื• ื”ื›ื™ ืžืชืื™ืžื” ืœืžืฆื‘. ื”ื’'ื•ื ื™ื•ืจ ืฉืœ ืืชืžื•ืœ ืงื™ื‘ืœ ืžื”ืคืจื•ื“ืงื˜ ืžืกืžืš ืืคื™ื•ืŸ ื•ืขื™ืฆื•ื‘ ืœืคื™ืฆ'ืจ ื•ื”ื™ื” ืฆืจื™ืš ืœื‘ื ื•ืช ืื•ืชื• ืœืžืขืจื›ืช. ื”ื’'ื•ื ื™ื•ืจ ืฉืœ ืžื—ืจ ื™ืฆื˜ืจืš ืœื”ื‘ื™ืŸ ืœืžื” ื” AI ืœื ื”ืฆืœื™ื— ืœื‘ื ื•ืช ืืช ื”ืคื™ืฆ'ืจ ืฉืื ืฉื™ ื”ืคืจื•ื“ืงื˜ ื‘ื™ืงืฉื• ื•ืœืขื“ื›ืŸ ืืช ื”ืคืจื•ื™ืงื˜ ื•ื”ืชืฉืชื™ืช ื›ื“ื™ ืฉืืคืฉืจ ื™ื”ื™ื” ืœื”ืชืงื“ื. ื”ื’'ื•ื ื™ื•ืจ ืฉืœ ืืชืžื•ืœ ื›ืชื‘ ื‘ื“ื™ืงื•ืช ืื•ื˜ื•ืžื˜ื™ื•ืช ื›ื“ื™ ืœืœืžื•ื“ ืขืœ ื”ืžืขืจื›ืช ื•ืœื”ื‘ื™ืŸ ืื™ืš ื“ื‘ืจื™ื ืžืชื—ื‘ืจื™ื. ื”ื’'ื•ื ื™ื•ืจ ืฉืœ ืžื—ืจ ื™ื›ืชื•ื‘ ืชืฉืชื™ืช ืฉืœ ื‘ื“ื™ืงื•ืช ื•ื™ื™ืชืŸ ืœืžื›ื•ื ื” ืœืžืžืฉ 100 ื‘ื“ื™ืงื•ืช ื‘ื–ืžืŸ ืฉื”ื•ื ืœื•ืžื“ ืืช ื”ืงื•ื“. ื”ื’'ื•ื ื™ื•ืจ ืฉืœ ืืชืžื•ืœ ืคืชืจ ื‘ืื’ื™ื ืงื˜ื ื™ื ืฉืœืืฃ ืื—ื“ ืœื ื”ื™ื” ื–ืžืŸ ืœื—ืงื•ืจ. ื”ื’'ื•ื ื™ื•ืจ ืฉืœ ืžื—ืจ ื™ื‘ื ื” ืชืฉืชื™ืช ืฉืžื–ื”ื” ื•ืžืชืงื ืช ืืช ื”ื‘ืื’ื™ื ื”ืืœื” ื‘ืฆื•ืจื” ืื•ื˜ื•ืžื˜ื™ืช ื‘ืœื™ ืฉืืฃ ืื—ื“ ื™ืฆื˜ืจืš ืœื—ืงื•ืจ. ื” AI ืœื ืžื—ืœื™ืฃ ืืช ื”ื’'ื•ื ื™ื•ืจื™ื ื”ื•ื ืžื—ืœื™ืฃ ืืช ืžื” ืฉื”ื ืฆืจื™ื›ื™ื ืœืขืฉื•ืช. ื‘ืจื•ื›ื™ื ื”ื‘ืื™ื ืœืชืขืฉื™ื™ื”.

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

ToCode
1 419
ืœื™ื™ื˜ื ืกื™ ืฉืœื™ื—ืช ืคืงื•ื“ืช insert ืฉืœ ืืœืฃ ืฉื•ืจื•ืช ืžืฉืžืขื•ืชื™ืช ื™ื•ืชืจ ืžื”ื™ืจื” ืžืฉืœื™ื—ืช ืืœืฃ ืคืงื•ื“ื•ืช insert. ื›ืฉื ืกืชื›ืœ ืขืœ ืœื•ื—ื•ืช ื”ื‘ืงืจื” ืฉืœ ืฉืจืชื™ื ืฉืžื‘ืฆืขื™ื ื™ื•ืชืจ ืžื“ื™ ืงืจื™ืื•ืช ืœ DB ืœื ื ืจืื” ืฉืžื™ืฉื”ื• ืขื•ื‘ื“ ืงืฉื” ืžื“ื™: ื”ืจืฉืช ืœื ืขืžื•ืกื”, ื”ืžืขื‘ื“ ืœื ืžื–ื™ืข ื•ื”ื–ื›ืจื•ืŸ ืจื™ืง. ื›ื•ืœื ืžื—ื›ื™ื ืฉืžืขื˜ ืžื™ื“ืข ื™ืขื‘ื•ืจ ืžืฆื“ ืœืฆื“. ืืคืฉืจ ืœื“ืžื™ื™ืŸ ืืช ื–ื” ื›ืžื• ืฆื™ื ื•ืจ ืจื—ื‘ ืžืื•ื“ ืฉืžื™ืฉื”ื• ืžื–ืจื™ื ื“ืจื›ื• ื–ืจื–ื™ืฃ ืžื™ื. ื”ืฆื™ื ื•ืจ ืคื ื•ื™ ืœื’ืžืจื™, ืื ื”ื™ื• ืœืš ืขื•ื“ ืžื™ื ืœื”ืขื‘ื™ืจ ื”ื ืœื ื”ื™ื• ืฆืจื™ื›ื™ื ืœื—ื›ื•ืช, ืื‘ืœ ืืชื” ื”ื—ืœื˜ืช ืœื”ืขื‘ื™ืจ ืืช ื”ืžื™ื ืฉืœืš ื‘ื˜ื™ืคื˜ื•ืคื™ื. ื”ืฉื‘ื•ืข ื ืขื–ืจืชื™ ื‘ AI ืœื›ืชื•ื‘ ืกืงืจื™ืคื˜ ืฉืžืขื‘ื™ืจ ืžื™ื“ืข ืžืžืงื•ื ืœืžืงื•ื ื‘ Batch-ื™ื. ื”ืงืจื™ืื” ืื›ืŸ ื‘ื•ืฆืขื” ื‘ Batch ืขื limit ื›ืžื• ืฉืชื›ื ื ืชื™, ืื‘ืœ ื‘ื›ืชื™ื‘ื” ืงืจื” ืžืฉื”ื• ืื—ืจ. ื›ื ืจืื” ื‘ื’ืœืœ ืฉื”ื™ืชื” ื‘ืงื•ื“ ืคื•ื ืงืฆื™ื” ืฉื›ื•ืชื‘ืช ืฉื•ืจื” ื‘ื•ื“ื“ืช ืœ DB ื” AI ื”ืฉืชืžืฉ ื‘ื” ื‘ืœื•ืœืื” ื›ื“ื™ ืœื›ืชื•ื‘ ืืช ื›ืœ ื” Batch ื‘ืžืงื•ื ืœื›ืชื•ื‘ ืคื•ื ืงืฆื™ื” ื—ื“ืฉื” ืฉืชื›ืชื•ื‘ ืืช ื›ืœ ื” Batch ื‘ insert ืื—ื“. ืืช ื”ื‘ื“ื™ืงื” ื”ืจืฆืชื™ ืขืœ ื‘ืกื™ืก ื ืชื•ื ื™ื ืžืงื•ืžื™ ื•ืœื›ืŸ ืœื ื™ื™ื—ืกืชื™ ืœื–ื” ื—ืฉื™ื‘ื•ืช. ื‘ื”ืจืฆืช ื”ืกืงืจื™ืคื˜ ื‘ืกื‘ื™ื‘ื” ืืžื™ืชื™ืช ื”ืื™ื˜ื™ื•ืช ื”ื™ืชื” ืžืื•ื“ ื‘ืจื•ืจื”. ืขื ื”ืคืจื•ืžืคื˜ ื”ื ื›ื•ืŸ ืœืงื— ืœ AI ืจืง ื›ืžื” ื“ืงื•ืช ืœื›ืชื•ื‘ ืืช ื”ืคื•ื ืงืฆื™ื” ืฉืœ ื” Bulk Insert ื•ืœืขื“ื›ืŸ ืืช ื”ืกืงืจื™ืคื˜ ืฉื™ืฉืชืžืฉ ื‘ื” ื‘ืžืงื•ื ื‘ืœื•ืœืื” ื”ื™ืฉื ื”. ื–ื” ืขื‘ื“ ื‘ื ืกื™ื•ืŸ ื”ืจืืฉื•ืŸ. ืขื›ืฉื™ื• ืœืฉืืœื” - ื”ืื ื–ื” ื‘ืื’? ื‘ืขื•ืœื ืฉืœืคื ื™ ื” AI ื”ืžืขื‘ืจ ื‘ื™ืŸ ืฉืชื™ ื”ื’ืจืกืื•ืช ื”ื™ื” ืœื•ืงื— ืœืคื—ื•ืช ื—ืฆื™ ื™ื•ื. ื™ืฉ ืคื” ืคื•ื ืงืฆื™ื” ืฉืœ 100 ืฉื•ืจื•ืช ืœื›ืชื•ื‘ ื•ืขื•ื“ ืฉื™ื ื•ื™ื™ ืงื•ื“ ื‘ืžืงื•ืžื•ืช ืื—ืจื™ื ืžืคื•ื–ืจื™ื. ื‘ืจื•ืจ ืžื” ืฆืจื™ืš ืœืขืฉื•ืช ืื‘ืœ ื”"ืื™ืš" ื”ื™ื” ื“ื•ืจืฉ ื›ืชื™ื‘ื” ื•ื‘ื“ื™ืงื”. ื”ื™ื•ื ื”ื—ืฆื™ ื™ื•ื ื”ื–ื” ืžื‘ื•ืฆืข ื‘ื—ืžืฉ ื“ืงื•ืช ื•ืžืกืคื™ืง ืžื‘ื˜ ื–ืจื™ื– ื›ื“ื™ ืœื”ื‘ื™ืŸ ืฉื–ื” ื”ืฆืœื™ื— ื•ืœื”ืจื™ืฅ ืขืœ ื”ืฉืจืช. ื‘ืขื•ืœื ืฉืœืคื ื™ ื” AI "ื’ื™ืœื•ื™" ืฉืœ ื‘ืขื™ื™ืช latency ืจืง ื‘ื”ืจืฆื” ื”ืจืืฉื•ื ื” ืขืœ ื ืชื•ื ื™ ืืžืช ื”ื™ื” ืžืชืกื›ืœ ืืช ื›ื•ืœื. ื‘ืขื•ืœื ืฉืื—ืจื™ ื” AI ื–ื” ื›ืื™ืœื• ื™ืฉ ืžืชื’, ื”ืžืขื‘ืจ ืžืฉื™ื˜ืช ืขื‘ื•ื“ื” ืื—ืช ืœืื—ืจืช ื”ื•ื ื‘ืกืš ื”ื›ืœ ืœื—ื™ืฆื” ืขืœ ื›ืคืชื•ืจ. ืงืกื. ื‘ืขื•ืœื ืฉืœืคื ื™ ื” AI ื”ื™ื” ื—ืฉื•ื‘ ืœืชื›ื ืŸ ืžืจืืฉ ืœ Latency ืฉืœ ืกื‘ื™ื‘ืช ื”ืคืจื•ื“ืงืฉืŸ. ื‘ืขื•ืœื ืฉืื—ืจื™ ื” AI ื—ืฉื•ื‘ ืœื‘ื ื•ืช ืืช ื”ืงื•ื“ ื‘ืฆื•ืจื” ืฉืชืืคืฉืจ ืœืฉื ื•ืช ืืช ื”ื”ื—ืœื˜ื” ื‘ืœื—ื™ืฆืช ื›ืคืชื•ืจ. ื–ื” ื”ืฉื™ื ื•ื™ ื”ื’ื“ื•ืœ ืฉืื ื—ื ื• ืฆืจื™ื›ื™ื ืœืืžืฅ ื•ื”ื”ืฉืงืขื” ื”ื’ื“ื•ืœื” ื‘ืชืฉืชื™ืช ืฉื ืฆื˜ืจืš ืœื‘ืฆืข, ืœื‘ื ื•ืช ืคืจื•ื™ืงื˜ื™ื ืฉ AI ื™ื•ื›ืœ ืœืฉืคืจ.

ToCode
1 419
ื”ืžืฉื—ืง ื”ืงืฆืจ, ื”ืžืฉื—ืง ื”ืืจื•ืš ื‘ืœื•ื’ืจ ืฉืžืกืชื›ืœ ืขืœ ื”ืžืฉื—ืง ื”ืงืฆืจ ื™ื•ื“ืข ืฉื›ืฉื”ื•ื ื™ื›ืชื•ื‘ ืคื•ืกื˜ ืžืžืฉ ื•ื™ืจืืœื™ ื›ืœ ื”ืื™ื ื˜ืจื ื˜ ื™ื’ื™ืขื• ืืœื™ื• ื•ื›ื•ืœื ื™ืงื ื• ืืช ื”ืžื•ืฆืจ ืฉืœื•. ื‘ืžืฉื—ืง ื”ืืจื•ืš ืื™ืŸ ื”ื˜ื™ืคื” ื—ื•ืฆื‘ืช ื‘ืกืœืข ืžื›ื•ื— ืขื•ืฆืžืชื” ืืœื ืžื›ื•ื— ื”ืชืžื“ืชื”. ื›ืชื™ื‘ื” ืขื•ื–ืจืช ืœืฉื™ื ืœื‘ ืœื“ื‘ืจื™ื ื•ื‘ืœื•ื’ ื˜ื•ื‘ ืžืขืœื” ืืช ื”ืจืžื” ืœื›ื•ืœื. ื™ื–ื ืฉืžืกืชื›ืœ ืขืœ ื”ืžืฉื—ืง ื”ืงืฆืจ ื™ื•ื“ืข ืฉืฉื‘ื•ืข ื”ื‘ื ื™ืฉ ื“ืžื• ื•ืฆืจื™ืš ืœืชืช ืืช ื”ืžืงืกื™ืžื•ื ื•ื™ื•ืชืจ ื•ืื ืฆืจื™ืš ื›ื•ืœื ื ืฉืืจื™ื ืœื™ืฉื•ืŸ ื‘ืžืฉืจื“ ื›ื™ ื—ื™ื™ื‘ื™ื ืœื”ืฉื™ื’ ื”ืฉืงืขื” ืœืคืจื•ื™ืงื˜. ื‘ืžืฉื—ืง ื”ืืจื•ืš ืคืจื•ื™ืงื˜ ืฉืžื•ืฉืš ืžืฉืชืžืฉื™ื ื•ืžื”ื•ื•ื” ืžื•ืฆืจ ื—ื™ื•ื ื™ ืœืงื‘ื•ืฆื” ื™ืžืฆื ืืช ื”ื“ืจืš ืœื”ืจื•ื•ื™ื—. ืžืคืชื— ืฉืžืกืชื›ืœ ืขืœ ื”ืžืฉื—ืง ื”ืงืฆืจ ื—ื™ื™ื‘ ืœืกื™ื™ื ืืช ื”ืคื™ืฆ'ืจ ื’ื ืื ื”ื•ื ืœื ืžื‘ื™ืŸ 100% ืžื”ืงื•ื“. ืื ื–ื” ืขื•ื‘ื“ ืœื ื ื•ื’ืขื™ื. ื‘ืžืฉื—ืง ื”ืืจื•ืš ืžืคืชื—ื™ื ื‘ื•ื ื™ื ืงืจื™ื™ืจื” ื•ืžื™ื•ืžื ื•ืช ื•ืืœื” ื—ืฉื•ื‘ื•ืช ื™ื•ืชืจ ืžื”ืงื“ืžืช ืœื•"ื– ื‘ืคื™ืฆ'ืจ ืžืกื•ื™ื. ื•ื‘ืขื‘ื•ื“ื” ืขื AI ื‘ืžืฉื—ืง ื”ืงืฆืจ ื›ื•ืœื ื• ื‘ืžืชื— ืžื” ื”ืžื•ื“ืœื™ื ื™ื›ื•ืœื™ื ืื• ืœื ื™ื›ื•ืœื™ื ืœืขืฉื•ืช ื•ืื™ืš ื” AI ื‘ื•ื ื” ื›ืžื” ืฉื™ื•ืชืจ ืžื”ืจ ืืช ื”ืคื™ืฆ'ืจ. ื‘ืžืฉื—ืง ื”ืืจื•ืš ื”ืจื‘ื” ื™ื•ืชืจ ืžืขื ื™ื™ืŸ ืœื”ืกืชื›ืœ ืื™ืคื” ื”ืžื•ื“ืœ ืœื ืžื™ื•ืฉืจ ืขื ื”ืžืขืจื›ืช ืฉืœื ื• ื•ืื™ืš ืœืฉื ื•ืช ืืช ื”ืชืฉืชื™ืช ื›ื“ื™ ืœืงื‘ืœ ืชื•ืฆืื•ืช ื˜ื•ื‘ื•ืช ื™ื•ืชืจ. ื›ืœืœ ืืฆื‘ืข ื˜ื•ื‘ ืœืžื—ืคืฉื™ื ืืช ื”ืžืฉื—ืง ื”ืืจื•ืš - ื”ืชืจื—ืงื• ืžืงืจื‘ื•ืช ื”ื›ืจืขื” ื•ืžืจื’ืขื™ "ื”ื›ืœ ืื• ื›ืœื•ื" ื•ื›ืฉืจื’ืขื™ื ื›ืืœื” ืžืชืงืจื‘ื™ื ื—ืคืฉื• ืืช ื”ื”ืฉืคืขื” ืœื˜ื•ื•ื— ื”ืจื—ื•ืง ืฉืœ ื›ืœ ื”ื—ืœื˜ื”.

ToCode
1 419
ืœืœืžื•ื“ ืœื—ืฉื•ื‘ ืขืœ ื‘ืขื™ื•ืช ืงื˜ื ื•ืช ื•ื’ื“ื•ืœื•ืช ื”ืื ืœืœืžื•ื“ ืœื—ืฉื•ื‘ ืขืœ ืฉืืœื•ืช ืงื˜ื ื•ืช ืขื•ื–ืจ ืœื ื• ืœืœืžื•ื“ ืœื—ืฉื•ื‘ ืขืœ ืฉืืœื•ืช ื’ื“ื•ืœื•ืช? ื”ืื ืœื“ืขืช ืœื›ืชื•ื‘ ืกืงืจื™ืคื˜ ืฉืžืžื™ื™ืŸ ืžืกืคืจื™ื ื ื•ืชืŸ ืœืš ื‘ื”ืžืฉืš ื›ืœื™ื ืœื‘ื ื•ืช ืืจื›ื™ื˜ืงื˜ื•ืจื” ื’ื“ื•ืœื” ื™ื•ืชืจ ืฉืœ ืžืขืจื›ื•ืช ืžื•ืจื›ื‘ื•ืช? ื”ืฉืืœื” ื”ื–ืืช ืขื•ืžื“ืช ื‘ืœื‘ "ื”ื—ืœืง ื”ื˜ื›ื ื™" ื‘ืจืื™ื•ื ื•ืช ื”ืขื‘ื•ื“ื” ืœืชื›ื ื•ืช, ื”ื—ืœืง ืฉืชืงื•ืคื” ืืจื•ื›ื” ื”ื˜ื™ืœ ืื™ืžื” ืขืœ ืžื—ืคืฉื™ ืขื‘ื•ื“ื” ืจื‘ื™ื. ืื™ืŸ ืกืคืง ืฉืฉืืœื•ืช ื”ืืœื’ื•ืจื™ืชืžื™ื ื”ืงื˜ื ื•ืช ืฉืžื•ืคื™ืขื•ืช ื‘ืจืื™ื•ื ื•ืช ืขื‘ื•ื“ื” ื ื’ืžืจื•ืช ืฉื ื•ื‘ืจื•ื‘ ืžื•ื—ืœื˜ ืฉืœ ืขื‘ื•ื“ื•ืช ื”ืคื™ืชื•ื— ืื ื—ื ื• ืœื ื›ื•ืชื‘ื™ื ืคื•ื ืงืฆื™ื™ืช ืžื™ื•ืŸ ืžืืคืก. ื•ื›ืŸ ืฆืจื™ืš ืœื–ื›ื•ืจ ืืช ื” AI ื›ื™ ื”ื•ื ื›ื‘ืจ ื—ืœืง ืžื”ืขื•ืœื ื•ืœืฉืื•ืœ "ื”ืื ืคืชืจื•ืŸ ื‘ืขื™ื•ืช ืชื›ื ื•ืช ืฉ AI ื™ื›ื•ืœ ืœืคืชื•ืจ ืฉืงื•ืœ ืœืคืชืจื•ืŸ ืชืจื’ื™ืœ ื—ืฉื‘ื•ืŸ ืขื ืžื—ืฉื‘ื•ืŸ?", ื›ืœื•ืžืจ ื ื—ืžื“ ืื‘ืœ ื—ืกืจ ืขืจืš ืžืขืฉื™. ื’ื ืื ื™ ืขื“ื™ื™ืŸ ืžื—ืคืฉ ืืช ื”ืชืฉื•ื‘ื” ืื ื™ ืจื•ืฆื” ืœืฉืชืฃ ื›ืžื” ืžื—ืฉื‘ื•ืช ื‘ื›ื™ื•ื•ืŸ: 1. ื”ืจื‘ื” ื‘ืขื™ื•ืช ืฉืœ ืชื•ื›ื ื™ื•ืช ืงื˜ื ื•ืช ืœื ืงื™ื™ืžื•ืช ื‘ืชื•ื›ื ื™ื•ืช ื’ื“ื•ืœื•ืช ื•ืœื”ื™ืคืš. 2. ื™ืฉ ื“ื‘ืจื™ื ืžืฉื•ืชืคื™ื ื‘ื™ืŸ ื‘ืขื™ื•ืช ืงื˜ื ื•ืช ื•ื’ื“ื•ืœื•ืช. ืฉื ื™ ื”ืžืงืจื™ื ื“ื•ืจืฉื™ื ืฆื•ืจืช ื—ืฉื™ื‘ื” ืžืกื•ื™ืžืช, ืฉื ื™ ื”ืžืงืจื™ื ื“ื•ืจืฉื™ื ื‘ื ื™ื™ื” ืฉืœ ื“ื‘ืจ ื’ื“ื•ืœ ืžื—ืœืงื™ื ืงื˜ื ื™ื ื™ื•ืชืจ ื•ืžื—ืฉื‘ื” ืขืœ ืื™ื ื˜ืจืงืฆื™ื” ื‘ื™ืŸ ื—ืœืงื™ื ืฉื•ื ื™ื, ืฉื ื™ ื”ืžืงืจื™ื ืขืฉื•ื™ื™ื ืœื”ืคืชื™ืข ื›ืฉื”ื ื—ื•ืช ื”ื™ืกื•ื“ ืžืฉืชื ื•ืช ื‘ื’ืœืœ ืฉื™ื ื•ื™ ืืคื™ื•ืŸ. 3. ืžื” ืงื•ืจื” ื‘ืชื—ื•ืžื™ื ืื—ืจื™ื? ืœืœืžื•ื“ ืœื ื”ื•ื’ ืขืœ ื’ื™ืจ ื™ื“ื ื™ ื™ืขืฉื” ืื•ืชืš ื ื”ื’ ื˜ื•ื‘ ื™ื•ืชืจ ืขื ื”ื’ื™ืจ ื”ืื•ื˜ื•ืžื˜ื™? ืœืœืžื•ื“ ืœืงืจื•ื ืžืคื” ื™ื™ืชืŸ ืœืš ื™ื•ืชืจ ื›ืœื™ ื ื™ื•ื•ื˜ ื‘ื”ืฉื•ื•ืื” ืœื ื™ื•ื•ื˜ ืขื GPS? ืœืคืชื•ืจ ืชืจื’ื™ืœื™ื ื‘ืœื™ ืžื—ืฉื‘ื•ืŸ ื™ืขื–ื•ืจ ืœืš ื‘ื”ื•ื›ื—ื•ืช ืžืชืžื˜ื™ื•ืช? ืœื›ืชื•ื‘ ืžื›ืชื‘ื™ื ืœื—ื‘ืจื™ื ื™ืขื–ื•ืจ ืœืš ืœื›ืชื•ื‘ ืกืคืจ ืฉื™ืจื” ื˜ื•ื‘ ื™ื•ืชืจ? ืœืคืขืžื™ื, ืื‘ืœ ื ืฉืžืข ืฉื‘ื”ืจื‘ื” ืžืงืจื™ื ืื ื—ื ื• ื‘ื•ื—ืจื™ื ืœืœืžื•ื“ ืืช "ื”ืฉื™ื˜ื” ื”ื™ืฉื ื”" ืจืง ื›ื’ื™ื‘ื•ื™, ืœืžืงืจื” ืฉื”ื˜ื›ื ื•ืœื•ื’ื™ื” ืœื ืชื”ื™ื” ืฉื. ืื ื—ื ื• ืœื ื—ื•ืฉื‘ื™ื ืฉืžื™ ืฉื™ื•ื“ืข ืœื ื•ื•ื˜ ืขื ืžืคื” ื™ืฉืชืžืฉ ื‘ื•ื•ื™ื™ื– ื˜ื•ื‘ ื™ื•ืชืจ. 4. ืื ื—ื ื• ื›ืŸ ื—ื•ืฉื‘ื™ื ืฉื”ื‘ื ื” ืฉืœ ื”ื™ืกื•ื“ื•ืช ืขื•ื–ืจืช ืœืคืชื•ืจ ื‘ืขื™ื•ืช ืžื•ืจื›ื‘ื•ืช. ื”ื“ื‘ืจ ื”ื—ืฉื•ื‘ ื”ื•ื ืœื”ื‘ื™ืŸ ืื™ืš ื“ื‘ืจื™ื ืขื•ื‘ื“ื™ื. ืœื”ื‘ื™ืŸ ืœืžื” ื ื•ืกื—ื” ืžืชืžื˜ื™ืช ืžืกื•ื™ืžืช ื ื›ื•ื ื” ื—ืฉื•ื‘ ื”ืจื‘ื” ื™ื•ืชืจ ืžืืฉืจ ืœื”ืฆืœื™ื— ืœืคืชื•ืจ ืžื”ืจ ื™ื•ืชืจ ืชืจื’ื™ืœ ื‘ืืžืฆืขื•ืชื”. 5. ื”ืื ืืคืฉืจ ื‘ืืžืช ืœื”ื‘ื™ืŸ ืื™ืš ื“ื‘ืจื™ื ืขื•ื‘ื“ื™ื ื‘ืœื™ ืงื•ื“ื ืœื›ืชื•ื‘ ืื•ืชื ื‘ืขืฆืžืš? ื”ืื ืืคืฉืจ ืœื”ื‘ื™ืŸ ืžืชืžื˜ื™ืงื” ื‘ืœื™ ืœืคืชื•ืจ ืœืคื ื™ ื–ื” ืชืจื’ื™ืœื™ื ื‘ื—ืฉื‘ื•ืŸ? ื”ืื ื”ื™ื” ืืคืฉืจ ืœืชืช ืœื™ืœื“ื™ื ืžื—ืฉื‘ื•ืŸ ืžื›ืชื” ื? ืื ื™ ืžืจื’ื™ืฉ ืฉืœื ืื‘ืœ ืœื ืœื’ืžืจื™ ืžื‘ื™ืŸ ืœืžื”. ืœื›ืื•ืจื” ืขื‘ืจื ื• ืืช ื”ื”ืชืœื‘ื˜ื•ืช ื”ื–ืืช ื›ืฉื”ื•ืคื™ืข Stack Overflow. ืขื“ ืื– ื”ื™ื™ื ื• ืฆืจื™ื›ื™ื ืœืงืจื•ื ืชื™ืขื•ื“ ื•ืื—ืจื™ SO ื”ืกืคื™ืง ืœื ื• ื—ื™ืคื•ืฉ ืžื”ื™ืจ ื‘ื’ื•ื’ืœ ื›ื“ื™ ืœื”ื’ื™ืข ืœื›ืœ ืชืฉื•ื‘ื”. ืื ื™ ื—ื•ืฉื‘ ืฉื”ืงืคื™ืฆื” ื”ื™ื•ื ืขื ื” AI ื”ื™ื ื’ื“ื•ืœื” ื™ื•ืชืจ ื•ื–ื” ื”ื•ืคืš ืืช ื”ืฉืืœื” ืœื‘ื•ืขืจืช ื™ื•ืชืจ. ืื™ืŸ ื™ื•ืชืจ ื‘ืขื™ื•ืช ืงื˜ื ื•ืช ืฉ AI ืœื ื™ื›ื•ืœ ืœืคืชื•ืจ. ื–ื” ืœื ืงื™ื™ื. ื”ื•ื ืขื•ื‘ืจ ืจืื™ื•ื ื•ืช ืขื‘ื•ื“ื”, ื”ื•ื ืคื•ืชืจ ืืช ืคืจื•ื™ืงื˜ ืื•ื™ืœืจ, ื”ื•ื ืคื•ืชืจ ืžื‘ื—ื ื™ื. ืื™ืŸ ืœื™ ื“ืจืš ื”ื™ื•ื ื‘ืงื•ืจืก ืœืชืช ื‘ืขื™ื” ืงื˜ื ื” ืœืชืจื’ื•ืœ ืฉ AI ืœื ื™ืคืชื•ืจ ื™ื•ืชืจ ื˜ื•ื‘ ืžื”ืชืœืžื™ื“ื™ื. ื•ืขื“ื™ื™ืŸ ืื ื™ ืžืจื’ื™ืฉ ืฉื™ื”ื™ื” ืงืฉื” ืœืžื™ืฉื”ื• ืœืœืžื•ื“ ืจื™ืืงื˜ ื‘ืœื™ ืœื›ืชื•ื‘ ืชื•ื›ื ื™ื•ืช ืงื˜ื ื•ืช ืœืคื ื™ ืฉืžืชื—ื™ืœื™ื ืœื›ืชื•ื‘ ืชื•ื›ื ื™ื•ืช ื’ื“ื•ืœื•ืช. ืื‘ืœ ืื•ืœื™ ื–ื” ืจืง ื‘ื’ืœืœ ืฉื’ื“ืœืชื™ ื‘ืขื•ืœื ื”ื™ืฉืŸ.

ToCode
1 419
ื‘ืžืงื•ื ืœืžื“ื•ื“ ื›ืš ื‘ืืžืช ืชื’ื“ื™ืœื• ืืช ืฉื™ืžื•ืฉ ื”ืžืคืชื—ื™ื ื‘ AI ืžื ื”ืœื™ื, ืขื“ื™ื™ืŸ ืžื•ื“ื“ื™ื ื›ืžื” ื–ืžืŸ ืžืคืชื—ื™ื ืžื‘ืœื™ื ืขื AI? ืขื“ื™ื™ืŸ ืžืชืขืงืฉื™ื ืขืœ ื›ืœื™ AI ืกืคืฆื™ืคื™ ื•ืœื ืžื‘ื™ื ื™ื ืœืžื” ื›ื•ืœื ืžื“ื‘ืจื™ื ืขืœ ื”ื™ืชืจื•ื ื•ืช ืฉืœ AI ื•ืจืง ืืฆืœื›ื ื”ืžืคืชื—ื™ื ืœื ืžืฉืชืžืฉื™ื ื‘ื•? ื‘ื•ืื• ื ืคืชื— ืืช ื–ื”. ืื ืชืฉืืœื• ืืช ื”ืžืคืชื—ื™ื ืœืžื” ื”ื ืœื ืžืฉืชืžืฉื™ื ื™ื•ืชืจ ื‘ AI ื”ืชืฉื•ื‘ื” ื”ืจืืฉื•ื ื” ืฉืชืงื‘ืœื• ื”ื™ื ื”ืชื™ืจื•ืฅ - ื” AI ืœื ืžืชืื™ื ืœื ื•. ืืฆืœื ื• ื”ืคืจื•ื™ืงื˜ ื™ืฉืŸ ื• AI ืžืชืื™ื ืจืง ืœืคืจื•ื™ืงื˜ ื—ื“ืฉ, ื” AI ืžืชืื™ื ืœืคื™ื™ืชื•ืŸ ื•ืื ื—ื ื• ื›ื•ืชื‘ื™ื ื‘ Go, ื” AI ืขื•ื–ืจ ืจืง ื‘ืคื™ืชื•ื— ืคื™ืฆ'ืจื™ื ื•ืืฆืœื ื• ืจื•ื‘ ื”ืขื‘ื•ื“ื” ื”ื™ื ืžื—ืงืจ, ืื ื—ื ื• ืขื•ืฉื™ื ืžืฉื”ื• ืฉืืฃ ืื—ื“ ืื—ืจ ืœื ืขื•ืฉื”. ืชื™ืจื•ืฆื™ื. ืื ืชืœื—ืฆื• ืงืฆืช ืชื•ื›ืœื• ืœื”ื’ื™ืข ืœืืžืช - ื”ื ื ื™ืกื• ืœื”ืฉืชืžืฉ ื‘ AI ื•ืงื™ื‘ืœื• ืชื•ืฆืื•ืช ืคื—. ืื—ืจื™ ืคืขืžื™ื™ื ืฉืœื•ืฉ ืฉืงื™ื‘ืœืช ืชื•ืฆืื•ืช ื’ืจื•ืขื•ืช ืืชื” ืžื‘ื™ืŸ ืฉืžืฉื”ื• ืœื ื›ืžื• ื‘ืคืจืกื•ืžืช ื•ืžืžืฉื™ืš ื”ืœืื”. ืžื ื”ืœื™ื ืฉื ืžืฆืื™ื ื‘ืกื™ื˜ื•ืืฆื™ื” ื”ื–ืืช ืœื ื™ื›ื•ืœื™ื ืœื”ืชืขืงืฉ ืขืœ ืฉื™ืžื•ืฉ ื‘ AI, ื›ื™ ื–ื” ืื•ืžืจ ืœื”ืชืขืงืฉ ืขืœ ืชื•ืฆืื•ืช ืคื—. ืืฃ ืื—ื“ ืœื ืจื•ืฆื” ืชื•ืฆืื•ืช ืคื—. ืžื” ืฉืื ื—ื ื• ืฆืจื™ื›ื™ื ืœืขืฉื•ืช ื‘ืžืงื•ื ื–ื” ืœื”ื‘ื™ืŸ ืœืžื” ื” AI ื ื•ืชืŸ ืชื•ืฆืื•ืช ืคื— ื•ืื™ืš ืœื’ืจื•ื ืœื• ืœืชืช ืชื•ืฆืื•ืช ืฉื™ืฉืคืจื• ืืช ื”ืคืจื•ื“ื•ืงื˜ื™ื‘ื™ื•ืช ืฉืœ ื”ืžืคืชื—ื™ื ืคื™ 10 ื›ืžื• ื‘ืคืจืกื•ืžืช. ื”ื ื” ื›ืžื” ื“ื‘ืจื™ื ืฉื›ื“ืื™ ืœืขืฉื•ืช, ืœืคื™ ืกื“ืจ ื—ืฉื™ื‘ื•ืช: 1. ืœืงื‘ื•ืข ืคื’ื™ืฉื” ืฉื‘ื•ืขื™ืช ื‘ืฆื•ื•ืชื™ ืขื‘ื•ื“ื” ืงื˜ื ื™ื ื‘ื” ืื ืฉื™ื ืžืฉืชืคื™ื ืžื” ื”ื ื ื™ืกื• ืœืขืฉื•ืช ืขื AI, ืžื” ื”ืฆืœื™ื— ื•ืžื” ืœื ื”ืฆืœื™ื—. ื’ื ื”ื“ื‘ืจื™ื ืฉื”ืฆืœื™ื—ื• ื•ื’ื ื”ื“ื‘ืจื™ื ืฉืœื ื”ืฆืœื™ื—ื• ืฉื•ื•ื™ื ื–ื”ื‘ ื›ื™ ื›ืš ืื ื—ื ื• ืžื‘ื™ื ื™ื ืืช ื”ื”ื–ื“ืžื ื•ื™ื•ืช ื•ืืช ื”ืคืขืจื™ื. 2. ื›ืฉืชืชื—ื™ืœื• ืืช ื”ืคื’ื™ืฉื•ืช ื”ืืœื” ืืชื ืชืจืื• ืฉื—ืœืง ืื—ื“ ืžื”ื›ืฉืœื•ื ื•ืช ืžื’ื™ืข ืžืคืขืจื™ื ื‘ืงื•ื“. ื” AI ืžื ืกื” ืœื”ืฉืœื™ื ืืช ื”ืคืขืจื™ื ืœืคื™ ื ืชื•ื ื™ ื”ืื™ืžื•ืŸ ืฉืœื• ืื‘ืœ ื”ืงื•ื“ ืฉืœื›ื ื™ื•ืชืจ ืžื“ื™ ืฉื•ื ื” ืžื ืชื•ื ื™ ื”ืื™ืžื•ืŸ ืฉืœ ื”ืžื•ื“ืœ. ื ืชื™ื‘ ืฉื™ืคื•ืจ ืจืืฉื•ืŸ ื”ื•ื ืœืขื“ื›ืŸ ืืช ื”ืงื•ื“ ื›ื“ื™ ืฉื™ืชืื™ื ืœืžื•ื“ืœ: ืฉื™ื ื•ื™ ืฉืžื•ืช, ืฉื™ื ื•ื™ ื”ื™ืจืจื›ื™ื•ืช, ืขื“ื›ื•ื ื™ ื’ืจืกืื•ืช ื‘ืกืคืจื™ื•ืช. ืžื” ืฉืฆืจื™ืš. 3. ืืชื ืชื’ืœื• ื’ื ืฉืชื•ืฆืื•ืช ื˜ื•ื‘ื•ืช ืžื’ื™ืขื•ืช ื›ืฉืœืžื•ื“ืœ ื™ืฉ ืืช ื›ืœ ื”ืžื™ื“ืข ื”ื“ืจื•ืฉ ื›ื“ื™ ืœืขื ื•ืช ืขืœ ื”ืฉืืœื•ืช ืฉืœื›ื. ื–ื” ื™ืขื•ื“ื“ ืืชื›ื ืœื™ื™ืฆืจ ืžืกืžื›ื™ื ืกืคืฆื™ืคื™ื™ื ืœ AI ื•ืœื—ื‘ืจ ืื•ืชื• ืœืžืขืจื›ื•ืช ื”ื™ื“ืข ื”ืืจื’ื•ื ื™ ื”ืงื™ื™ืžื•ืช, ืื•ืœื™ ื‘ืขื–ืจืช MCP. 4. ื›ืฉืชืชื ื• ืœ AI ืœื›ืชื•ื‘ ืงื•ื“ ืืชื ืชื’ืœื• ืฉื ื“ืจืฉื•ืช ืžืกืคืจ ืื™ื˜ืจืฆื™ื•ืช ืžื”ืŸ ื”ืžื•ื“ืœ ื™ื›ื•ืœ "ืœืœืžื•ื“" ืžื” ืขื‘ื“ ื•ืžื” ืœื, ื›ืœื•ืžืจ ื” AI ืฆืจื™ืš ื“ืจืš ืœื”ืจื™ื ืืช ื”ืคืจื•ื™ืงื˜ ืขืœ ืžื›ื•ื ืช ื‘ื“ื™ืงื” ื‘ืฆื“ ื•ืœืจืื•ืช ืื ื”ืชื™ืงื•ืŸ ืฉืœื• ืขื‘ื“. ื›ื“ืื™ ืฉืชื”ื™ื” ื’ื ื—ื‘ื™ืœื” ืฉืœ ื‘ื“ื™ืงื•ืช ืื•ื˜ื•ืžื˜ื™ื•ืช ืฉืืคืฉืจ ื™ื”ื™ื” ืœื”ืจื™ืฅ ื›ื“ื™ ืœื”ื‘ื™ืŸ ืฉืœื ื ืฉื‘ืจ ื›ืœื•ื. ื–ื›ืจื• ืฉื–ืืช ืžื›ื•ื ื” ืฉื›ื•ืชื‘ืช ืืช ื”ืงื•ื“ ืื™ืŸ ืฉื ื—ืฉื™ื‘ื” ื•ืœื›ืŸ ื ื“ื™ืจ ืžืื•ื“ ืฉื”ืชื•ืฆืื” ื”ืจืืฉื•ื ื” ื”ื™ื ื”ื ื›ื•ื ื”. ื›ืœ ื”ืกื™ืคื•ืจ ื”ื–ื” ื”ื•ื ืชื”ืœื™ืš ืœื ื”ืฉืงืขื” ื—ื“ ืคืขืžื™ืช. ื‘ื”ืชื—ืœื” ื›ืžื•ื‘ืŸ ืฉืชื”ื™ื” ื”ืฉืงืขื” ื’ื“ื•ืœื” ืื‘ืœ ื–ื›ืจื• ืฉื›ืœ ืขื•ื“ AI ื›ื•ืชื‘ ืงื•ื“ ื”ืื‘ืกื˜ืจืงืฆื™ื•ืช ืœืื•ืจืš ื–ืžืŸ ืžืชืงืœืงืœื•ืช, ื”ื‘ื“ื™ืงื•ืช ื ื”ื™ื•ืช ืคื—ื•ืช ืžื“ื•ื™ืงื•ืช ื•ื”ืžืกืžื›ื™ื ืคื—ื•ืช ืขื“ื›ื ื™ื™ื. ืœื ืžื•ื–ืจ ืฉืคืจื•ื™ืงื˜ ืฉืžืฉืชืžืฉ ื‘ AI ืœืคื™ืชื•ื— ื“ื•ืจืฉ ืžืคืชื—ื™ื ืฉื™ืฉืžืจื• ืขืœ ื” AI ื•ื™ืชืื™ืžื• ื›ืœ ื”ื–ืžืŸ ืืช ื”ืžืขืจื›ืช ืœื“ืจื™ืฉื•ืช ืฉืœื•. ื•ืขื“ื™ื™ืŸ ื™ืฉ ืืžืช ื‘ืคืจืกื•ื. ืฉื™ืžื•ืฉ ื ื›ื•ืŸ ื‘ AI ื‘ืชื”ืœื™ืš ื”ืคื™ืชื•ื— ื™ื›ื•ืœ ืœืชืช ืชืฉื•ืื” ืฉืœ ืคื™ 5 ื•ื™ื•ืชืจ ื‘ืžื”ื™ืจื•ืช ื”ืคื™ืชื•ื— ืชื•ืš ื›ื“ื™ ืฉื™ืคื•ืจ ืื™ื›ื•ืช ื”ืงื•ื“. ื›ืœื•ืžืจ ืื ื—ื ื• ื’ื ื›ื•ืชื‘ื™ื ืžืขืจื›ื•ืช ื˜ื•ื‘ื•ืช ื™ื•ืชืจ, ื’ื ืœื•ืžื“ื™ื ื™ื•ืชืจ ื“ื‘ืจื™ื ื•ืžืฉืคืจื™ื ืืช ื”ื›ื™ืฉื•ืจื™ื ืฉืœื ื• ื›ืžืคืชื—ื™ื ื•ื’ื ืขื•ืฉื™ื ืืช ื”ื›ืœ ื™ื•ืชืจ ืžื”ืจ. ื›ืฉื–ื” ืขื•ื‘ื“ ืืฃ ืื—ื“ ืœื ืฆืจื™ืš ืœืžื“ื•ื“ ืฉื™ืžื•ืฉ ื‘ AI ื›ื™ ื”ืชื•ืฆืื•ืช ืžื“ื‘ืจื•ืช ื‘ืขื“ ืขืฆืžืŸ. ืฆืจื™ื›ื™ื ืขื–ืจื” ืœืฉืœื‘ AI ื‘ืชื”ืœื™ืš ื”ืคื™ืชื•ื—? ืžืจื’ื™ืฉื™ื ืฉืœื ืžืงื‘ืœื™ื ืืช ื”ืชื•ืฆืื•ืช ืฉื‘ืคืจืกื•ืžืช? ืชืฉืื™ืจื• ืœื™ ื”ื•ื“ืขื”

ToCode
1 419
ื‘ื“ื™ืงื•ืช ืฉืœ AI ื ื’ื“ ื‘ื“ื™ืงื•ืช ืฉืœ ื‘ื ื™ ืื“ื ืื™ื–ื” ื›ื™ืฃ ืœืขืฉื•ืช Code Review ืœ AI! ื ืชืชื™ ืœื• ืœื›ืชื•ื‘ ืžืฉื—ืง ืกื ื™ื™ืง ืขื ื‘ื“ื™ืงื•ืช ื‘ืคืจื•ื™ืงื˜ ืจื™ืง, ื›ืœื•ืžืจ ืœื ื”ื™ื• ื“ื•ื’ืžืื•ืช ืื™ื–ื” ื‘ื“ื™ืงื•ืช ืฆืจื™ืš ืœื›ืชื•ื‘ ื•ืื™ื–ื” ื‘ื“ื™ืงื•ืช ืœื. ื”ืชื•ืฆืื” ื”ื–ื›ื™ืจื” ืœื™ ืฉ AI ื›ืžืขื˜ ืชืžื™ื“ ื™ื›ืชื•ื‘ ืงื•ื“ ืฉื ืจืื” ื˜ื•ื‘ ื•ื–ื” ื—ืœืง ืžืžื” ืฉืžืื•ื“ ืžื‘ืœื‘ืœ ื‘ืขื‘ื•ื“ื” ืื™ืชื•. ื”ื•ื ื”ืชื—ื™ืœ ืืช ืงื•ื‘ืฅ ื”ื‘ื“ื™ืงื•ืช ื‘ื”ื’ื“ืจืช ืื•ื‘ื™ืงื˜ mock:
mockContext = {
  clearRect: vi.fn(),
  fillRect: vi.fn(),
  fillText: vi.fn(),
  measureText: vi.fn(() => ({ width: 100 })),
  beginPath: vi.fn(),
  arc: vi.fn(),
  fill: vi.fn(),
  stroke: vi.fn(),
  moveTo: vi.fn(),
  lineTo: vi.fn(),
  textAlign: 'left',
  textBaseline: 'alphabetic',
} as unknown as CanvasRenderingContext2D;
ื•ืื ื—ื ื• ื›ื‘ืจ ืจื•ืื™ื ืฉืžืฉื”ื• ื›ืืŸ ื—ืฉื•ื“. ืžืฆื“ ืื—ื“ ื”ื•ื ืžื ืกื” ืœื”ื’ื“ื™ืจ ืื•ื‘ื™ืงื˜ mock ืฉื™ืชื ื”ื’ ื‘ื“ื™ื•ืง ื›ืžื• CanvasRenderingContext2D ืื‘ืœ ืžืฆื“ ืฉื ื™ ื”ื•ื ืœื ืžื’ื“ื™ืจ ืืช ื›ืœ ื”ืคื•ื ืงืฆื™ื•ืช ื•ื”ืžืืคื™ื™ื ื™ื ืฉืœ ื”ืื•ื‘ื™ืงื˜ ื”ืžืงื•ืจื™. ื”ืฆืขื“ ื”ื‘ื ื–ื” ืื™ืคื” ืฉื“ื‘ืจื™ื ื”ื•ืคื›ื™ื ืžืขื ื™ื™ื ื™ื ืขื ื‘ื“ื™ืงื•ืช ื›ืžื•:
it('should update snake head position correctly', () => {
  render(<Home />);
  const initialCalls = mockContext.fillRect.mock.calls.length;
  
  act(() => {
    vi.advanceTimersByTime(150);
  });
  
  expect(mockContext.fillRect.mock.calls.length).toBeGreaterThan(initialCalls);
});
ืœื‘ื“ื™ืงื” ื™ืฉ ื›ื•ืชื‘ืช "ืฆืจื™ืš ืœืขื“ื›ืŸ ืืช ืจืืฉ ื”ื ื—ืฉ ื‘ืฆื•ืจื” ื ื›ื•ื ื”" ืื‘ืœ ื”ื‘ื“ื™ืงื” ืขืฆืžื” ืจืง ืžื•ื•ื“ืืช ืฉืคื•ื ืงืฆื™ื™ืช fillRect ื ืงืจืื” ืื—ืจื™ ื–ืžืŸ ืฉื”ื•ื’ื“ืจ ืžืจืืฉ. ื”ื‘ื“ื™ืงื” ื”ื–ืืช ื’ืจื•ืขื” ื›ื™: 1. ื”ื–ืžืŸ 150 ื›ืชื•ื‘ ื›ืžืกืคืจ ืงืกื ื‘ืงื•ื“ ื”ื‘ื“ื™ืงื” ืœืžืจื•ืช ืฉื‘ืงื•ื“ ื”ืžืฉื—ืง ื”ื•ื ืžื•ืคื™ืข ื›ืงื‘ื•ืข. ืžื™ ืฉื™ืฉื ื” ืื•ืชื• ื‘ืงื•ื“ ื”ืžืฉื—ืง ื™ืฆื˜ืจืš ืœื”ืชืžื•ื“ื“ ืขื ืขืฉืจื•ืช ื‘ื“ื™ืงื•ืช ืฉื™ื™ืฉื‘ืจื• ืกืชื. 2. ื”ื™ื ืœื ื‘ื•ื“ืงืช ืžื” ืฉื”ื™ื ืฆืจื™ื›ื” ืœื‘ื“ื•ืง. ืื ื”ื ื—ืฉ ืœื ื–ื– ื•ืจืง ืžืคืขื™ืœื™ื ืืช fillRect ื›ื“ื™ ืœืฆื™ื™ืจ ืขื•ื“ ื•ืขื•ื“ ืžืœื‘ื ื™ื ื‘ืื•ืชื” ื ืงื•ื“ื” ื”ื‘ื“ื™ืงื” ืขื“ื™ื™ืŸ ืชืขื‘ื•ืจ. 3. ื”ื™ื ืžืฉืชืžืฉืช ื‘ืคืจื•ืงืกื™ - ืžืกืคืจ ื”ืงืจื™ืื•ืช ืœ fillRect ื‘ืžืงื•ื ืœื‘ื“ื•ืง ืืช ื”ื“ื‘ืจ ื”ืืžื™ืชื™. ื™ืฉ ืฉืชื™ ื’ื™ืฉื•ืช ื›ืŸ ืœื‘ื“ื•ืง ืืช ื”ืœื•ื’ื™ืงื” ืฉืœ ืชื–ื•ื–ืช ืจืืฉ ื”ื ื—ืฉ ื‘ืžืฉื—ืง ืกื ื™ื™ืง: ื“ืจืš ืื—ืช ื”ื™ื ืœื”ืกืชื›ืœ ืžื” ื‘ืืžืช ืžื•ืคื™ืข ืขืœ ื”ืžืกืš, ืื ื™ ื™ื›ื•ืœ ืœืขืฉื•ืช ืืช ื–ื” ืขื ืกืคืจื™ื” ื›ืžื• node-canvas ื•ืœื•ื•ื“ื ืฉืžื” ืฉืฆื•ื™ืจ ื‘ canvas ืื›ืŸ ืชื•ืื ืืช ื”ืฆื™ืคื™ื•ืช ืฉืœื™. ื“ืจืš ืฉื ื™ื” ื”ื™ื ืœืืจื’ืŸ ืื—ืจืช ืืช ื”ืงื•ื“ ื›ื“ื™ ืฉืชื”ื™ื” ืœื™ ื’ื™ืฉื” ืœืžื‘ื ื” ื”ื ืชื•ื ื™ื ืฉืžื™ื™ืฆื’ ืืช ื”ื ื—ืฉ ื•ืื– ืื ื™ ืžืกืชื›ืœ ืขืœ ื”ืงื•ืื•ืจื“ื™ื ื˜ื•ืช ืฉืœ ื”ื ื—ืฉ ื‘ืžื‘ื ื” ื”ื ืชื•ื ื™ื. ื‘ืจื•ืจ ืฉืืคืฉืจ ืœื›ืชื•ื‘ ืืช ื–ื” ื‘ืžืกืžืš ื“ืจื™ืฉื•ืช ื•ืœื”ื™ื•ืช ืžืคื•ืจืฉื™ื ื‘ืคืจื•ืžืคื˜ื™ื ืฉืœื ื•, ืื‘ืœ ืื ื™ ื—ื•ืฉื‘ ืฉื–ื• ืœื ื”ื“ืจืš ื”ื›ื™ ืืคืงื˜ื™ื‘ื™ืช ืœืขื‘ื•ื“ ืขื AI. ืขืœื™ื ื• ืœืฉื™ื ืœื‘ ืฉื”ื“ืจืš ื”ื›ื™ ื˜ื•ื‘ื” ืœื”ืกื‘ื™ืจ ืœ AI ืื™ืš ืœื›ืชื•ื‘ ืืช ื”ื‘ื“ื™ืงื•ืช ื”ื™ื ื‘ื“ื™ื•ืง ืœืขืฉื•ืช ืืช ื”ืฆืขื“ ื”ืงืฉื” ืฉืœ ืœื›ืชื•ื‘ ืืช ืฉืชื™ ื”ื‘ื“ื™ืงื•ืช ื”ืจืืฉื•ื ื•ืช. ืื—ืจื™ ืฉื™ืฉ ื‘ืžืขืจื›ืช ืฉืชื™ ื‘ื“ื™ืงื•ืช ืฉื‘ื•ื“ืงื•ืช ืืช ืžื‘ื ื” ื”ื ืชื•ื ื™ื ืฉืœ ื”ื ื—ืฉ ืื—ืจื™ ืชื–ื•ื–ื” ื” AI ื™ื•ื›ืœ ืœื”ืฉืชืžืฉ ื‘ืชื‘ื ื™ืช ื•ืœื™ื™ืฆืจ ืขื•ื“ 50 ื‘ื“ื™ืงื•ืช ื‘ืื•ืชื• ืกื’ื ื•ืŸ.