ToCode
Kanalga Telegramโda oโtish
ืืืคืื ืงืฆืจืื ืืืชืื ืชืื ืืืช ืื ืื ืคืจืง
Ko'proq ko'rsatish1 419
Obunachilar
-124 soatlar
Ma'lumot yo'q7 kunlar
-430 kunlar
Postlar arxiv
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):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
end1 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.......
.......|.......
......|^.......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
ืกื ืืื ืื ื ืืืื ืฉืืืืง ืืฉื ื ืืกืชืืืชื ืงืฆืช ืขื ืืืื ืืงืกืื ืืื ืจืื ืืคืฉืจ ืืจืืืช ืืช ืื ืืฉืงืืจืืื ืืช ืืงืื. ืืืจืืช ืืืช ืืืจื ืืื ืืขืืืืช ืืงืื ืขืื ืืืฆืืื ืืืคื ืืื ืืงืจื ืืงืฆื ืฉืืฆืืชื ืืืืืืข ืืชืฉืืื ืื ืืื ื.1 419
ืื'ืื ืืืจ ืฉื ืืชืืื
ืื'ืื ืืืจ ืฉื ืืชืืื ืงืืื ืืคืจื ืืื ื ืืืืืง ืืืืจืืืืงื ืื ืืื ืื ืืืื ืฆืจืื ืืื ืืช ืืืชื. ืื'ืื ืืืจ ืฉื ืืืจ ืืฆืืจื ืืืื ืืืจืืืืงื ืขื ืืืคืจื ืืืื ื ืื ืชืื ืื ืฉืืืืืืื ืืื ืืืืืจื ืฉืื ืืื ืืชืืืื ืืืฆื.
ืื'ืื ืืืจ ืฉื ืืชืืื ืงืืื ืืืคืจืืืงื ืืกืื ืืคืืื ืืขืืฆืื ืืคืืฆ'ืจ ืืืื ืฆืจืื ืืื ืืช ืืืชื ืืืขืจืืช. ืื'ืื ืืืจ ืฉื ืืืจ ืืฆืืจื ืืืืื ืืื ื AI ืื ืืฆืืื ืืื ืืช ืืช ืืคืืฆ'ืจ ืฉืื ืฉื ืืคืจืืืงื ืืืงืฉื ืืืขืืื ืืช ืืคืจืืืงื ืืืชืฉืชืืช ืืื ืฉืืคืฉืจ ืืืื ืืืชืงืื.
ืื'ืื ืืืจ ืฉื ืืชืืื ืืชื ืืืืงืืช ืืืืืืืืืช ืืื ืืืืื ืขื ืืืขืจืืช ืืืืืื ืืื ืืืจืื ืืชืืืจืื. ืื'ืื ืืืจ ืฉื ืืืจ ืืืชืื ืชืฉืชืืช ืฉื ืืืืงืืช ืืืืชื ืืืืื ื ืืืืฉ 100 ืืืืงืืช ืืืื ืฉืืื ืืืื ืืช ืืงืื.
ืื'ืื ืืืจ ืฉื ืืชืืื ืคืชืจ ืืืืื ืงืื ืื ืฉืืืฃ ืืื ืื ืืื ืืื ืืืงืืจ. ืื'ืื ืืืจ ืฉื ืืืจ ืืื ื ืชืฉืชืืช ืฉืืืื ืืืชืงื ืช ืืช ืืืืืื ืืืื ืืฆืืจื ืืืืืืืืช ืืื ืฉืืฃ ืืื ืืฆืืจื ืืืงืืจ.
ื AI ืื ืืืืืฃ ืืช ืื'ืื ืืืจืื ืืื ืืืืืฃ ืืช ืื ืฉืื ืฆืจืืืื ืืขืฉืืช. ืืจืืืื ืืืืื ืืชืขืฉืืื.
1 419
ืืืืื ืืื ืืื
ืื ืื ืืื ืืคืฉืจื ืขื ืื ืืืื, ืืขืืฉืื ืฆืจืื ืืฉืืื - ืื ืืืจืืืจ ืืืืืื?
ืืฉืื ื ืฉืืืจ ืืช ืืจืืฉ ืขื ืฉืืืืชืช SQL, ืื ืืืฆื ืคืชืจืื ืืืืื ืืฉืืื ืืช ื AI, ืืื ืืืืชื ืคืืืช ืืื ืืืฉืจ ืื ืืืืชื ืืืฉืื ืืืชืขืงืฉ ืืืืจื 3 ืืืื ืืืืข ืืคืชืจืื? ืืื ืกืคืง. ืืื ืื ืขื ืืื ืื ืคืืืช ืืื ืฉืขืืืฃ ืืืฉืงืืข (ืื ืืืืื) ืฉืืืฉื ืืืื ืืงืจืืืช ืชืืขืืืื ืื ืกืืื ืืช? ืงืฉื ืืืขืช.
ืืื ืื ืืฉ ืื ืฉืืืืชื ืฉืืืขื ืขืืืืช, ืืขืืฉืื ืื ื ืืืื ื AI ืืื ืืงืื ืืช ืืืืืคื ืืกืืคืืช, ืืกืื ืื "ืื AI ืชืกืืืจ ืืื ืืฉืืืืชื ืืืืืจื ืื ืชืืฆืืืช ืืคืืืืช ืืชืจืื ืื ืืื ืืงืื ืืช ืืชืืฆืืืช ืืืืืชืืืช". ืืืคื ืืขืจื ืคื, ืืืืคื ืืขืืืช?
ืืื ืืฉืื ืืืื ืืืฉืืืื ืืืืืื ืืื ืืืืช AI ืืื ืืฉืื ืื ื"ืื ื ืืฉืงืืข ืืื ืืื ืืงืื ืืขืจืืช ืขืืืืช" ื"ืื ื ืืฉืงืืข ืืื ืืื ืืืืื ืืช ืืืขืื ืืืคืชืจืื ืืช". ืฉืื ืื ืืื ืืืคืฉืจ ืืื ืืฉืืื ืืืื ืืืืืื ืืืืืช ืืขืืืง ืืื ืืืชืจ. ืืืจืืช ืฉืืืจืื ืืงืจืื ืืื ืืืืืื ืืคืกืืง ืืืืืช ืืจืืฉืช ืงืื ืืฆืืจื ืงืื ืขืืื, ืืื ืขืืืื ืืจืืฉ ืืื ืืงืื ืงืื ืขืืื ืืืืื ืืจืืืง. ืืืืืช ืืืืืื ืจืง ืชืืืื ืืช ืชืฉืืืื ืืจืืืืช.
ืื ื ืืืฉื ืฉืืืชืืจ ืืื ืืืื ืืืืืื ืืื ืืืืช AI ืืื ืืฉืื ืื ืืคืขืืื ืฉื AI ืืชืงืืข ืขื ืคืชืจืื. ืื ืืกืืจ ืืฉืคืืชืจืื ืชืจืืื ืืงืืจืก ืืื ืคืืืช ืืืฆืื ืืฉืฆืจืืืื ืืคืชืืจ ืืขืื ืืืจืืืช ืืืขืจืืช. ืืืืืื ืฉื ื SQL ืืืื ืฉืื ืื ืืื ื ืืืืืืืช ืืืคืฉืจ ืืชืืืช ืฉืืืืชื ืืืจืช. ืืืง ืืฉืื ืืืืฉืืง ืืืืืื ืืื ืืืืช AI ืืื ืืืืืง ืืืืคืืฉ, ืืชืืืช ืืกืคืจ ืคืจืืืคืืื, ืฉืื ืื ืืืงืื ืงืื ืื ืืฉืืื ืืืชืืงืืืช ื"ืื ืื ื ืืืื" ืืืื ืืืฆืื ืืื ืฉืืืชืจ ืจืขืืื ืืช ืืืคืฉืจืืืืช. ืืืชืืจ ืฉืื ื ืืื ืื ืืืื ืืืจืืื ืืช ืืกืคืจ ืืืคืฉืจืืืืช, ืื ืืฉืขื ืฉืื ืืข ื AI ืขืืื ืืฆืืฆืื ืืืจืื ืืชืฉืืื ืืืช ืืจืืจื.
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 ืืืื ืืฉืคืจ.
1 419
ืืืฉืืง ืืงืฆืจ, ืืืฉืืง ืืืจืื
ืืืืืจ ืฉืืกืชืื ืขื ืืืฉืืง ืืงืฆืจ ืืืืข ืฉืืฉืืื ืืืชืื ืคืืกื ืืืฉ ืืืจืืื ืื ืืืื ืืจื ื ืืืืขื ืืืื ืืืืื ืืงื ื ืืช ืืืืฆืจ ืฉืื. ืืืฉืืง ืืืจืื ืืื ืืืืคื ืืืฆืืช ืืกืืข ืืืื ืขืืฆืืชื ืืื ืืืื ืืชืืืชื. ืืชืืื ืขืืืจืช ืืฉืื ืื ืืืืจืื ืืืืื ืืื ืืขืื ืืช ืืจืื ืืืืื.
ืืื ืฉืืกืชืื ืขื ืืืฉืืง ืืงืฆืจ ืืืืข ืฉืฉืืืข ืืื ืืฉ ืืื ืืฆืจืื ืืชืช ืืช ืืืงืกืืืื ืืืืชืจ ืืื ืฆืจืื ืืืื ื ืฉืืจืื ืืืฉืื ืืืฉืจื ืื ืืืืืื ืืืฉืื ืืฉืงืขื ืืคืจืืืงื. ืืืฉืืง ืืืจืื ืคืจืืืงื ืฉืืืฉื ืืฉืชืืฉืื ืืืืืื ืืืฆืจ ืืืื ื ืืงืืืฆื ืืืฆื ืืช ืืืจื ืืืจืืืื.
ืืคืชื ืฉืืกืชืื ืขื ืืืฉืืง ืืงืฆืจ ืืืื ืืกืืื ืืช ืืคืืฆ'ืจ ืื ืื ืืื ืื ืืืื 100% ืืืงืื. ืื ืื ืขืืื ืื ื ืืืขืื. ืืืฉืืง ืืืจืื ืืคืชืืื ืืื ืื ืงืจืืืจื ืืืืืื ืืช ืืืื ืืฉืืืืช ืืืชืจ ืืืงืืืช ืื"ื ืืคืืฆ'ืจ ืืกืืื.
ืืืขืืืื ืขื AI ืืืฉืืง ืืงืฆืจ ืืืื ื ืืืชื ืื ืืืืืืื ืืืืืื ืื ืื ืืืืืื ืืขืฉืืช ืืืื ื AI ืืื ื ืืื ืฉืืืชืจ ืืืจ ืืช ืืคืืฆ'ืจ. ืืืฉืืง ืืืจืื ืืจืื ืืืชืจ ืืขื ืืื ืืืกืชืื ืืืคื ืืืืื ืื ืืืืฉืจ ืขื ืืืขืจืืช ืฉืื ื ืืืื ืืฉื ืืช ืืช ืืชืฉืชืืช ืืื ืืงืื ืชืืฆืืืช ืืืืืช ืืืชืจ.
ืืื ืืฆืืข ืืื ืืืืคืฉืื ืืช ืืืฉืืง ืืืจืื - ืืชืจืืงื ืืงืจืืืช ืืืจืขื ืืืจืืขื "ืืื ืื ืืืื" ืืืฉืจืืขืื ืืืื ืืชืงืจืืื ืืคืฉื ืืช ืืืฉืคืขื ืืืืื ืืจืืืง ืฉื ืื ืืืืื.
1 419
ืืืืื ืืืฉืื ืขื ืืขืืืช ืงืื ืืช ืืืืืืืช
ืืื ืืืืื ืืืฉืื ืขื ืฉืืืืช ืงืื ืืช ืขืืืจ ืื ื ืืืืื ืืืฉืื ืขื ืฉืืืืช ืืืืืืช?
ืืื ืืืขืช ืืืชืื ืกืงืจืืคื ืฉืืืืื ืืกืคืจืื ื ืืชื ืื ืืืืฉื ืืืื ืืื ืืช ืืจืืืืงืืืจื ืืืืื ืืืชืจ ืฉื ืืขืจืืืช ืืืจืืืืช?
ืืฉืืื ืืืืช ืขืืืืช ืืื "ืืืืง ืืืื ื" ืืจืืืื ืืช ืืขืืืื ืืชืื ืืช, ืืืืง ืฉืชืงืืคื ืืจืืื ืืืื ืืืื ืขื ืืืคืฉื ืขืืืื ืจืืื. ืืื ืกืคืง ืฉืฉืืืืช ืืืืืืจืืชืืื ืืงืื ืืช ืฉืืืคืืขืืช ืืจืืืื ืืช ืขืืืื ื ืืืจืืช ืฉื ืืืจืื ืืืืื ืฉื ืขืืืืืช ืืคืืชืื ืื ืื ื ืื ืืืชืืื ืคืื ืงืฆืืืช ืืืื ืืืคืก. ืืื ืฆืจืื ืืืืืจ ืืช ื AI ืื ืืื ืืืจ ืืืง ืืืขืืื ืืืฉืืื "ืืื ืคืชืจืื ืืขืืืช ืชืื ืืช ืฉ AI ืืืื ืืคืชืืจ ืฉืงืื ืืคืชืจืื ืชืจืืื ืืฉืืื ืขื ืืืฉืืื?", ืืืืืจ ื ืืื ืืื ืืกืจ ืขืจื ืืขืฉื.
ืื ืื ื ืขืืืื ืืืคืฉ ืืช ืืชืฉืืื ืื ื ืจืืฆื ืืฉืชืฃ ืืื ืืืฉืืืช ืืืืืื:
1. ืืจืื ืืขืืืช ืฉื ืชืืื ืืืช ืงืื ืืช ืื ืงืืืืืช ืืชืืื ืืืช ืืืืืืช ืืืืืคื.
2. ืืฉ ืืืจืื ืืฉืืชืคืื ืืื ืืขืืืช ืงืื ืืช ืืืืืืืช. ืฉื ื ืืืงืจืื ืืืจืฉืื ืฆืืจืช ืืฉืืื ืืกืืืืช, ืฉื ื ืืืงืจืื ืืืจืฉืื ืื ืืื ืฉื ืืืจ ืืืื ืืืืงืื ืงืื ืื ืืืชืจ ืืืืฉืื ืขื ืืื ืืจืงืฆืื ืืื ืืืงืื ืฉืื ืื, ืฉื ื ืืืงืจืื ืขืฉืืืื ืืืคืชืืข ืืฉืื ืืืช ืืืกืื ืืฉืชื ืืช ืืืื ืฉืื ืื ืืคืืื.
3. ืื ืงืืจื ืืชืืืืื ืืืจืื? ืืืืื ืื ืืื ืขื ืืืจ ืืื ื ืืขืฉื ืืืชื ื ืื ืืื ืืืชืจ ืขื ืืืืจ ืืืืืืืื? ืืืืื ืืงืจืื ืืคื ืืืชื ืื ืืืชืจ ืืื ื ืืืื ืืืฉืืืื ืื ืืืื ืขื GPS? ืืคืชืืจ ืชืจืืืืื ืืื ืืืฉืืื ืืขืืืจ ืื ืืืืืืืช ืืชืืืืืช? ืืืชืื ืืืชืืื ืืืืจืื ืืขืืืจ ืื ืืืชืื ืกืคืจ ืฉืืจื ืืื ืืืชืจ? ืืคืขืืื, ืืื ื ืฉืืข ืฉืืืจืื ืืงืจืื ืื ืื ื ืืืืจืื ืืืืื ืืช "ืืฉืืื ืืืฉื ื" ืจืง ืืืืืื, ืืืงืจื ืฉืืืื ืืืืืื ืื ืชืืื ืฉื. ืื ืื ื ืื ืืืฉืืื ืฉืื ืฉืืืืข ืื ืืื ืขื ืืคื ืืฉืชืืฉ ืืืืืื ืืื ืืืชืจ.
4. ืื ืื ื ืื ืืืฉืืื ืฉืืื ื ืฉื ืืืกืืืืช ืขืืืจืช ืืคืชืืจ ืืขืืืช ืืืจืืืืช. ืืืืจ ืืืฉืื ืืื ืืืืื ืืื ืืืจืื ืขืืืืื. ืืืืื ืืื ื ืืกืื ืืชืืืืช ืืกืืืืช ื ืืื ื ืืฉืื ืืจืื ืืืชืจ ืืืฉืจ ืืืฆืืื ืืคืชืืจ ืืืจ ืืืชืจ ืชืจืืื ืืืืฆืขืืชื.
5. ืืื ืืคืฉืจ ืืืืช ืืืืื ืืื ืืืจืื ืขืืืืื ืืื ืงืืื ืืืชืื ืืืชื ืืขืฆืื? ืืื ืืคืฉืจ ืืืืื ืืชืืืืงื ืืื ืืคืชืืจ ืืคื ื ืื ืชืจืืืืื ืืืฉืืื? ืืื ืืื ืืคืฉืจ ืืชืช ืืืืืื ืืืฉืืื ืืืชื ื? ืื ื ืืจืืืฉ ืฉืื ืืื ืื ืืืืจื ืืืื ืืื.
ืืืืืจื ืขืืจื ื ืืช ืืืชืืืืืช ืืืืช ืืฉืืืคืืข Stack Overflow. ืขื ืื ืืืื ื ืฆืจืืืื ืืงืจืื ืชืืขืื ืืืืจื SO ืืกืคืืง ืื ื ืืืคืืฉ ืืืืจ ืืืืื ืืื ืืืืืข ืืื ืชืฉืืื. ืื ื ืืืฉื ืฉืืงืคืืฆื ืืืื ืขื ื AI ืืื ืืืืื ืืืชืจ ืืื ืืืคื ืืช ืืฉืืื ืืืืขืจืช ืืืชืจ. ืืื ืืืชืจ ืืขืืืช ืงืื ืืช ืฉ AI ืื ืืืื ืืคืชืืจ. ืื ืื ืงืืื. ืืื ืขืืืจ ืจืืืื ืืช ืขืืืื, ืืื ืคืืชืจ ืืช ืคืจืืืงื ืืืืืจ, ืืื ืคืืชืจ ืืืื ืื. ืืื ืื ืืจื ืืืื ืืงืืจืก ืืชืช ืืขืื ืงืื ื ืืชืจืืื ืฉ AI ืื ืืคืชืืจ ืืืชืจ ืืื ืืืชืืืืืื. ืืขืืืื ืื ื ืืจืืืฉ ืฉืืืื ืงืฉื ืืืืฉืื ืืืืื ืจืืืงื ืืื ืืืชืื ืชืืื ืืืช ืงืื ืืช ืืคื ื ืฉืืชืืืืื ืืืชืื ืชืืื ืืืช ืืืืืืช. ืืื ืืืื ืื ืจืง ืืืื ืฉืืืืชื ืืขืืื ืืืฉื.
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 ืืชืืืื ืืคืืชืื? ืืจืืืฉืื ืฉืื ืืงืืืื ืืช ืืชืืฆืืืช ืฉืืคืจืกืืืช? ืชืฉืืืจื ืื ืืืืขื
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 ืืืืงืืช ืืืืชื ืกืื ืื.
Endi mavjud! Telegram Tadqiqoti 2025 โ yilning asosiy insaytlari 
