ToCode
Kanalga Telegramโda oโtish
ืืืคืื ืงืฆืจืื ืืืชืื ืชืื ืืืช ืื ืื ืคืจืง
Ko'proq ko'rsatish1 417
Obunachilar
-224 soatlar
-37 kunlar
-630 kunlar
Postlar arxiv
1 417
ืืื ืื ืืืขืชืืง ืงืื ื Stack Overflow?
ืืืช ืืขืฆืืช ืืืฉื ืืช ืืืืชืจ ืืกืคืจ ืืืชื "ืืขืืจื ืืืื ืืจื ื ืืื ืืืืื ืืืฉืื ืืื ืืืืฉื". ืืืจืืช ืฉืืฉ ืืืื ืงืืขื ืงืื ืฉืขืืืืื ืืคืชืืื ืืืื ืืืจื ืืงืฉื ืฉืืขืชืงื ืขืืืืจืช ืฉืืื ืืคืจืืืงื ืืืืืื ืืงืื ืงืฉื ืืชืืืืงื.
ืืื ืื ืืืื ืฉืงืืขื ืืงืื ืฉืืฆืื ื ืืืื ืืจื ื ืืื ืืจืืขืื. ืืืขืื ืืืชื ืฉืืฉ ืืจืืื ืฉืื ืืช ืืืืจ ืงืืขื ืงืื ืืื ืืฉื ื ืืืืืืืจืื ืื ืืืื ืกืคืฆืืคืืื ืืืื ืื ืืืคืืขื ืืืื ืืจื ื.
ืืขืืฉืื ืืืืข AI ืืืืจืื ืืกืคืจืื ืื ืืื ืฉืืื ืืืืื ืืืื ืืคืฉืจ ืืืชืื ืืขืจืืืช ืฉืืืืช ืืืจ ืืื ื ืืืื ืฉืื ืงืฆืช ืืจืืืฉ ืืื ืืืืืจ ืืืืชื ืฉืืืืช ืืืืชื ืืขืืืช - ืงืื ืขื ืืืืงื ืื ื ืืื ื ืืคืื ืงืฆืืืช, ืืืกืืจืงืฆืืืช ืื ื ืืื ืืช ืื ืื ืืกืคืืง ืืขืืืืช, ืืืชืจ ืืื ืงืื ืืฉืืคืฉืจ ืืื ืืืกืชืคืง ืืคืืืช, ืืงืืฆืืจ ืงืื ืฉืื ืฉืืฆืืจื ืืชืืืง ืืืชื ืืฆืืจื ืืขืืื ืืืื ืงืฉื. ืืื ื ืืืื ืืช ืืืฉืืื, ื AI ืืชื ืชื ื ื AI ืืชืืืง.
ืืื ื AI ืื ืืชื. ืื ืืชื ืืชืืช. ืืืื ืืงืจื ื AI ืื ืืฆืืื ืืชืืืง ืืช ืื.
ืืคืชืืื ืขืืืืื ืืืื ืงืฉื ืืื ืฉื ืืื ืืืชืื ืงืื ืฉื ืืชื ืืชืืืืงื. ืืืืคื ืขืงืื ืื ืื ื ืืืืืื ืขื ืืืื ืฉื ืืื ืืืชืื "ืคืขื ืืืช" ืงืื ืฉืขืืื ืืื ืืชืืืง ืืืชื, ืื ืืื ืขื ืชืื ืืช ืืื ืื ืขืฆืืื ืืฉืืฉืื ื ืฉื ืืื ืืืืืืฃ ืจืง ืืช ืืืืืืฉ ืืืฉืืจ ืืช ืืืืฉืง, ืื ืงืจื ืขื ืืืงืจื ืกืจืืืกืก ืืฉืงืืืืื ื ืฉื ืืื ืืฉืืชื ืจืง ืกืจืืืก ืืืื ืื ืคืขื ืฉืืื ืืชืืืฉื, ืื ืงืจื ืขื ืฉืคืืช ืืื ืืืืช ืืฉืืืื ื ืืืืืื ืฉืื ืื ื ืืืืืื ืืืกืชืืจ ืืื ืืืืจืืช ืืืคืืกืื ืืื ืงืืจื ืขืืฉืื ืขื ื AI.
ืื AI ืืืื ืืืืฉ ืืืจ ืงืืขื ืงืื ืฉืื ืืื ืืืงื ืืืชืจ ืืื ืืืชืื. ืื AI ืขืืืจ ืื ืืืืื ืืื ืืืืืืืช ืืืฉืืช ืืืืืื ืืื ืืืจืื ืขืืืืื ืืืจ ืืืชืจ. ืืื AI ืืืื ืืขืืืจ ืื ืืฉืื ื ืฉืืื ืชืืืืจ ืกืคืฆืืคื ืฉื ืืฉืื ืฉืืชืืชื ืคืขื ืืืจืื ื ืืคื ื ืฉื ื ืืื ื ืืืืข ืืื ืื ืฆืจืื ืืืืจืืืช ืืืืื. ืืื ืืฉืื ื ื ืืชื ื AI ืืืชืื ืงืื ืฉืื ื ืื ืืืื ืื ืื ื AI ืฉืืฆืืจื ืื ืืืื ืืชืืืง ืืืชื.
ืื ืื?
1. ืืชืื ื ืื ืืขืฆืื ื ืืื ืืืจืื ืฆืจืืืื ืืืืจืืืช ืืืขืืื (ืืืจืืืืงื ืื ืืชื).
2. ื ืืชื ืื ื AI ืืืื ืืืืืฉืื, ืืขืืืจืื ืขื ืืงืื ืฉืื ืืืืื ืฉืื ืื ื ืืืื ืื ืื ืฉืืชืื ืฉื.
3. ืื ืงืื ืืืืจืื ืื ืืืืฉ ืืช ืืงืื ืืืื ืื ืืืืื ืืื ืฉืื ืื ื ื ืืื ืืชืืืง ืืืจื ืฉื AI ืืกืืื ืืืจืืช.
ืืฉืื ืขื ืื ืืืฆืจื ืืชืืื ื ืฉืืชื ืืืืืื - ืืื ืืขืจืืืช ืืืื ืืช ืืืืืจืืช ืฉื ืขืื ืืขืืื ืืืชื. ืื ืกืื ืืืขืจืืืช ืฉื ืฉืื ืืงืื.
1 417
ืชืืืช style ืืชืื ืงืืืคืื ื ืืืช
ืืื ืจืืืงื ืืืืืื ืืืืจืกื 19 ืืืืืื ืืืืืืืืื ื? ืื ื ืืงืืื ืฉืื, ืืื ืืื ืืงืจื ืื ื ืคืืฆ'ืจ ืืขื ืืื ืฉืื ืื ื ืฉืืืื ืืขืืืจ ืืื ืืกืืจ ืืืืจืืช ืขืืฆืื ืืืชืจืื ืคืฉืืืื.
ืืื ืื ืขืืื
ืจืืืงื ืืืคืฉืจ ืื ื ืืืชืื ืชืืืช style ืืชืื JSX ืฉื ืงืืืคืื ื ืื ืืื ืืฉืชืื ืงืื CSS ืืชืืจ Inline Style ืืืกืื. ื ืืืืจ ืฉืื ืืชืื HTML ืื ืื ื ืืืชืืื ืชืืืช style, ืืคืืื ืืืืฅ ื head, ืื ืืืคืืคื ืขืืืื ืืชืืืก ืืืืื ื CSS ืฉืืืืืจืื ืฉื. ืืงืื ืืื ืืชืื ืงืืืคืื ื ืื ืืืกืืฃ ืชืืืช style ืืื:
export default function Main() {
return (
<>
<style>
{\
h1 { color: red }
body { background: yellow; }
a { color: blue }
\}
</style>
<h1>Hello World</h1>
</>
)
}
ืืคืขืืื ืืช ืืงืืืคืื ื ืื ืืชืื ืขืืื ืืชืืืื ืืจืืืช ืืช ืชืืืช ื style ืืืช ืืฉืคืขืชื ืขื ืืฆืืขืื ืืขืืื.
ืืืขืื ืขื ืืืืจ ืืื ืืื ืฉืื ืชืืืช style ืืชืืื ืืชืื ืงืืืคืื ื ืื ืื ืืื ืชืืคืืข ืืกืคืจ ืคืขืืื ืืขืืื (ืืคื ืืกืคืจ ืืคืขืืื ืฉืืงืืืคืื ื ืื ืืืืืงืช ืืขืืื).
ืืื ืจืืืงื ืืืคืฉืจ ืื ื ืืืืืืจ ืืืื ืืื ืชืืืช style ืืื ืื ืื ื ืืืืืจืื ืืืื ืืงืืืืืช ืืชืืืช style ืื ืจืืืงื ืืขืืืจ ืืช ืืชืืืช ื head ืฉื ืืืกืื. ืื ืืฉืชื ืชืืืืช style ืืืคืฉืื ืืขืืื ืืฉ ืืช ืืืชื ืืืื ืื ืจืง ืืืช ืืื ืชืืคืืข ืืจืืฉ ืืขืืื. ืื ืื ื ืืืืืจืื ืืืื ืขื ืืืคืืื href ืืกืืจ ืงืืืืืืืช ืขื ืืืคืืื precedence:
export default function Main() {
return (
<>
<style href="main" precedence="medium">
{\
h1 { color: red }
body { background: yellow; }
a { color: blue }
\}
</style>
<h1>Hello World</h1>
</>
)
}
ืื ืืคืฉืจ ืืื ืืช ืขื ืื
ืื ืืชื ืืขืืืคืื ืืขืืื ืขื CSS ืืืืืืื ืืื ืื ืืืืขืื ืืจืืฉ ืืืื ืงืืืคืื ื ืืืช ืืืื ืืขืืื ืืื ืจืืฆืื ืืืืกืืฃ CSS ืืขืืื ืฉืืกืืฃ ืื ืืฉืชืืฉื ืื ืชืืืื ืืืฉืชืืฉ ืืื ืื ืื style ืฉื ืจืืืงื ืืื ืืฆืืฆื ืืคืืืืืืช ืืืืืจืื CSS ืฉืืื ื ืืฉืืืืฉ. ืื ืื ืืขืืื:
1. ืืชืื ืงืืืคืื ื ืืืช ืืกืืกืืืช ืืืืืื ืืคืชืืจ, ืืืื ืืืืืจื ืืช ื CSS ืฉืื ืฆืจืืืืช ืืชืืจ ืชืืืช style ืขื href ืืกืืจ ืงืืืืืช.
2. ืืงืืืคืื ื ืืืช ืืืืืืืช ืืืชืจ ืฉืืื ืืฉืชืืฉื ืืงืืืคืื ื ืืืช ืืืกืืกืืืช ืืื ืฉืชืจืฆื.
3. ืืืืคื ืืืืืืื ืื ืืืื ืืขืืฆืื ืฉืืืืขืื ืืืงืืืคืื ื ืืืช ืืืกืืกืืืช ืืืื ืกื ืืขืืื ืืชืืจ Inline Style. ืืื ืืขืื ืืฉืืืขื ืื ืงืืืคืื ื ืื ืืกืืกืืช ืืกืคืจ ืคืขืืื ืื ืจืืืงื ืืืืง ืืช ืืื ื CSS ืืืคืื.
ืืจืืืืงืืืจื ืื ืฉื ืืชืืืช ืื ืงืื ื CSS ืืงืืืคืื ื ืืืช ืืกืืก ืืื ืืจื ืืืื ืืืฉืช ืืขืืฆืื ืงืืืคืื ื ืืืช ืืจืืืงื ืืื ืืงืจื. ืืืฉืืช ืื ื ืืขืืืฃ ืืขืฆื ืืช ืงืืืคืื ื ืืืช ืืืกืืก ืืืืฆืขืืช Tailwind ืื ืื ืื ื ืืืืื ืฉืืื ืืชื ืืฉืืช ืืืืืื ืื ืืฉืืืช ืงืืืกืื ืฉืืืจืชื.1 417
ืืืค ืืืืืื: ืฉืื ืื Base ื Pull Request
ืฉืืืชื Pull Request ืืคืจืืืงื ืฉืื ืืืจ. ืขื ืฉืืื ืืื ืืฆื ืืฉื ื ืืกืคืืง ืืฉืืื ืืขืจืืช ืืฉืื ืื ืฉืืื ืขืืฉืื 4 ืืืจืกืืืช ืืืืืจ. ืืฉืืื ืฉืืืื ืืกืืืจ ืืชื ืขืืฉืื ืจืืืืืก ืืืืจืกื ืืื ืืืฉื ื - ืืคืชืขื, ืืืืืื ืืฆืื ืืช ื diff ืืื ืืืืจืกื ืฉืืื ืืืืจืกื ืืืื ืืฆืจืชื ืืช ื Pull Request ืืฉืืชืืืชื. ืืืืืจ ืื ืืฉืื ืืืื ื main ืฉืงืจื ืืืืชื 4 ืงืืืืืื ืฉื ืื ืกื ืืืืื ืืืืจืกื (ืื ืขืฉืืชื ืืช ืืจืืืืืก) ืืืคืืขืื ืขืืฉืื ืืืืง ืื diff ืฉื ืืืืจืกื ืฉืืื ื Pull Request.
ืื ืขืืฉืื?
ืืคืืชืจืื ืืื ืืืคืชืืจ ืงืฆืช ืืืืื ืืืืฉืง ืฉื ืืืืืื ืืืกื Pull Request: ืืืืฆืื ืขื Edit ืืื ืฉื ืืขื ืฃ ืืืื ืืชื ืจืืฆืื ืืฉืื ืืช ืืืืจืกื ืืืคื ืืชืืืช ืืืืจื. ืืชื ืืืืฆืื ืขื ืืชืืื, ืืืืจืื ืืืคืฉืจืืืืช ืฉื ืคืชืื ืืช ืืืชื ืขื ืฃ ืฉืืืจ ืืกืืื ืืื ืืืคืืข ืืืืืื ืืืฉ ืขื ืืืืชืจืช
> Are you sure you want to change the base?
ืจืืข, ืื? ืื ืฉืื ืืชื ืืืื ืจืง ืืืจืชื ืืช ืื ืฉืืืจ ืืื ืืกืืื ืื? ืื ืืืืืง. ืืจืืข ืฉืืืฆืจืื Pull Request ืืืืืื ืืืืืง ืืช ื PR ืฉืืื ืืงืืืื ืืกืืื, ืืคืืื ืฉืืืจืชื ืืฉืื ืืช ื PR ืืชืื ืขื ืฃ. ืืฉืืืืืื ืืจืื ืืืืฉืง ืฉืืชื ืื ืกืื ืืฉืื ืืช ื PR ืืชืื base: main ืืื ืืขืฆื ืืชืืืื ืฉืืชื ืื ืกืื ืืฉืื ืืชืื ืขื ืฃ main ืืงืืืื ืืกืืื (ืืงืฆืช ืืฉื). ืฉืื ืื ื main ื main ืืื ืืขืฆื ืฉืื ืื ืืงืืืื ืฉืืืืก ืืืื ื ืืฆืจ ื PR ืืงืืืื ืืขืืื ื ืืืืชืจ ืืขื ืฃ main. ืืฆืืจื ืืืืช ืจืฉืืืช ืืงืืืืืื ืืืฉืื ืืืื ืชืชืืื ืืงืืืื ืืืืจืื ื main ืืื ืืงืืืื ืืืงืืจื ืืื ื ื ืืฆืจ ื PR.
1 417
ืืชื ืืืื ืื ื ืืฉืชืืฉ ื AI
ืฉืืื ืืืืชืืช - ืืชื ืืจืืืฉืื ืฉืืชื ืืจืืืฉืื ืืืชืจ ืืื ืื ืคืืืช ืืื ื AI? ืืื ืคืืืช ืืื, ืืื ืืชื ืื ืืฉืชืืฉืื ืื ืืืชืจ? ืื ื ืจืฉืืืช ืืืงืจืื ืืื ืื ื ืืฉืชืืฉ ื AI ืืืืื ืืคืืชืื ื Best Practices ืฉืืฆืืชื ืืื ืืงืจื:
1. ืืฉืื ื ืื ืืืืข ืขืืืื ืืื ืืืจืื ืขืืืืื - ืื ืื ื ืฆืจืื ืืื ืืช ืืฉืื ืฉืื ื ืขืืืื ืื ืืืืข ืืื ืืื ืขืืื ืื ื ืืคืขืืื ืืื ื AI ืืื ืืงืื ืืกืคืจ ืืคืฉืจืืืืช ืืืืืื ืืืืื ืขื ืื ืฆืจืื ืืงืจืื. ืืืืชื ืืืืืืจ ืืืชืฉืืืืช ืืจืืฉืื ืืช ืฉื ื AI ืื ืืื ืื ืืืืข ืืืืืจ ืื ืืืจื ืืืืื ืื ืืืืืจื ืืช ืืืืชืจ ืืคืชืืจ ืืขืื, ืืื ืืื ืื ืืืื ืืชืช ืกืงืืจื ืฉื ืืืฉืื ืืคืชื ืฉืงืฉืืจืื ืืืขืื. ืืืืืื, ืื ืื ื ืฆืจืื ืืืืฆืื ืืืืข ืืืืืืื ืืื ืื ืขืืืชื ืืฃ ืคืขื ืขื ื API ืฉืืื ืื ื ืืืื ืืืงืฉ ืื AI ืืกืืจ ืืืื ืืื ืื ืขืืื ืืื ืืืืืืืช ืงืื (ืืจืง ืืืืจ ืืืืฉืื ืืงืจืื ืืืืฅ ื AI ืืฉืืื ืืืืืง ืืช ืืืืจืื).
2. ืืฉืื ื ืืืชื ืงืื ืืืืืข ืื ืื ื ืจืืฆื - ืื ืื ื ืืื ื ืกืืืื ืืืจืืื ืืื ื ืืืืข ืืืื ืืืื ืื ื ืจืืฆื ืืืืื ืขืืืืืช ืื ืืื ืืืฉืื ืืืืืฅ Command I ื VS Code ืืืืงืฉ ื Copilot ืืืชืื ืืช ืืืืืง ืฉืืืกืืฃ ืืช ืืืืื ืืกืืืื, ืืื ืืืกื ืื ืืืืืง ืื ืืฉื ืืืืืืง ืฉื ืืคืื ืงืฆืื.
3. ืืฉืื ื ืฆืจืื ืืฉื ืืช ืคืืจืื ืฉื ืืืืข ืื ืื ืืฉ ืื JSON ืืฆืจืื ืืื ืืช ืืื ื ืืืฉืง ืืืืืคืกืงืจืืคื, ืื ืืฉืฆืจืื ืืขืืืฃ API ืืงืื ืฉืื ืืืืืกืืฃ ืืืคืืกืื.
4. ืืฉืื ื ืืืชื ืงืื ืฉืื ื ืืืืข ืฉืืืจืืง ืจืง ืืฉืืื ืืจืืืช ืืื ืืืจืื ื ืจืืื, ืืืฉื ืื ื ืืืื ืืืืขืืจ ื AI ืืื ืืืชืื ืืจ ืขืืืื ืืืืื ืืืฉืง ืืจืคื ืืื ืืืืื ืืืจ ืื ืื ืืืื ืืฉืื ืฉืื ื ืจืืฆื. ืื ืืฉืชืื ืขืชื ืฉืื ื ืจืืฆื ืืช ืืคืืฆ'ืจ ืืืจื ืืื ืืืจืืง ืืช ืืงืื ืืจืืฉืื ื ืฉื AI ืืฆืจ, ืืื ื "ืืกืืจืช" ืืงืื ืืืชื ื AI ืืืื ืืช ืืงืื ืืชืื ืืืกืืจืช.
5. ืืืืคื ืืืื ืงืื ืืืืชื ืฉ AI ืืืชื ืืชืื ืืืขืจืืช ืืขืืื ืืจืื ืืืชืจ ืืื ืื ืื ื ื ืืชื ืื ืืืื ืงืื ืืชืื ืืกืืจืช ืืื ืืื ืืช ืืช ืืืกืืจืช ืืขืฆืื.
6. ืืฉืื ื ืืืชื ืงืื ืืืืื ืฉืืื ื ืืืืชื ืืืขืจืืช ืืื ื ืืกืืจ ืขื ืื ืฉืืงืื ืื ืืืื ืืืืื ืื ื ืืชื ืืชืืืืงื, ืืืืืื ืื ื ืืืื ืืชืช ื AI ืืืชืื Github Action ืฉืืจืืฅ ืืืืงืืช ืืืืืืืืืช. ืื ืชืืื ืืขืื ืืืืื ืืคืฉืจ ืืืงืฉ ื AI ืืืชืื ืืื ืืืฉ ืืืืจืืง ืืช ืืงืืืฅ ืืงืืื. ืื ืขืื ืืื ืชืืืืืช ืืื ืืกืืจ.
7. ืืชืืืช ืชืืขืื, ืืืืงืืช ืืืืืขืืช ืงืืืื.
8. ืงืืืช Code Review - ืืคื ื ืงืืืื ืื ื ืืคืขืื
git diff ืืฉืืื ืืช ืืคืื ื AI ืืื ืืงืื ืกืืืื ืืกืืืจ ืฉื ืื ืฉืขืฉืืชื ืืืฆืขืืช ืืฉืืคืืจ ืื ืชืืงืื ืื.
ืืื ืืชืื? ืืืืื ืืฆืืื ืืชื ืืฉืชืืฉืื ืื ืื ืืฉืชืืฉืื ื AI? ืืื ืืืืชื ืจืืฆืื ืืืฉืชืืฉ ืืืชืจ, ืื ืืกืืืืช ืืืจืืืืืช ืืืืื ืืชื ืขืืืื ืืงืืืืื ืืืขืืื?
ื .ื. ืื'ืืื ื ืืืืฉ ืืืืช ืืืืจืฃ.1 417
def step
@guard.step
if @matrix[@guard.coords] == '#'
@guard.back
@guard.turn
end
@time_loop = true if @visited.include?([@guard.coords, @guard.heading])
@visited << [@guard.coords, @guard.heading] if @matrix.key?(@guard.coords)
end
def run
step_count = 0
turn_count = 0
while (@matrix.key?(@guard.coords) && !@time_loop) do
guard_before = @guard.coords
step
step_count += 1
turn_count += 1 if @guard.coords == guard_before
end
# Return important values - makes testing easier
[@time_loop, step_count, turn_count]
end
def reset
@time_loop = false
@visited = Set.new
@guard = Guard.new(Complex(@guard_start[0], @guard_start[1]))
@visited << [@guard.coords, @guard.heading]
end
end
def find_time_loops(room)
start = room.visited.first
room.run
# Extract the coordinates of visited positions, excluding the start
visited_positions = (room.visited - Set.new([start])).map(&:first).to_set
# Find positions that cause time loops
time_loops = visited_positions.select do |coords|
original_value = room.matrix[coords]
room.matrix[coords] = '#'
room.reset
result = room.run.first # Check if a time loop occurred
# Restore the original value and reset the room
room.matrix[coords] = original_value
room.reset
result
end
time_loops.length
end
* Main execution *
room = Room.new
puts find_time_loops(room)1 417
visited << [guard.coords, guard.heading]
end
ืืฉืืื ืื ื ืืกืื ืืฆืจืชื Room ืืืฉ ืืื ืฉืืชื ืืช ืืืืฉืื ืื ืงืืื ืืืจืช ืขื ืืืกืืื. ืืืขืื ืืื ืฉืืฆืืจืช Room ืืืชื ืืจืืื ืืงืจืืืช ืื ืงืืืฅ ืืงืื ืืื ืืืช ืืืืจืืฆื ืืืืื, ืืื ืคืขืืื ืืืื. ืืฉื ืืกืืชื ืืืจืืฅ ืืช ืืงืื ืืื ืื ืืืืข ืืกืืื, ืืื ืื ื ื ืื ืกืชื ืืืืืื ืืื ืกืืคืืช ืืืคืฉ ืืืคืืืืืืฆืืืช.
ืืกืืคื ืฉื ืืืจ ืืืขืืจืช ืคืืืืจ ื ืืื ืฉื ืืืืขืืช ืืืคืกื ืืงืื ืื ืืฆืื ื ืคื ืืืกืืืื ืืจืืืชื ืฉืื ืฆืจืื ืืืชืืื ืืืืจื ืืืคืก ืืฉืืื ืืืืืง ืื ื ืงืืื ืขื ืืืกืืื ืืืคืฉืจ ืืืฉืชืืฉ ืืืืชื ืืืจืืฆื. ืืืืคืืืืืืฆืื ืฉืืจื ืืช ืื ื Object Oriented ืฉื ืืกืืชื ืืืชืื ืืื ืืคืฉืจื ืืงืื ืืืืืข ืืชืืฆืื ืืชืื ืคืืืช ืืืงื - ืื ืืืืื ืืื ืืกืคืืง ืืื ืืฉืืื ืืืชืงืื. ืื ืืงืื:
require 'set'
class Guard
attr_accessor :position, :heading
def initialize(position)
self.heading = -1 + 0i
self.position = position
end
def step
self.position = position + heading
end
def turn
self.heading = Complex(heading.imag, -heading.real)
end
def back
self.position = position - heading
end
def coords
[position.real, position.imag]
end
end
class Room
attr_accessor :matrix, :guard, :visited, :time_loop, :guard_start
def initialize()
self.time_loop = false
self.visited = Set.new
self.matrix = File.read('input.txt').lines.each_with_index.flat_map do |line, line_index|
line.chomp.split('').each_with_index.map do |char, column_index|
if char == '^'
self.guard_start = [line_index, column_index]
self.guard = Guard.new(Complex(line_index, column_index))
{ [line_index, column_index] => '.' }
else
{ [line_index, column_index] => char }
end
end
end.reduce({}) {|acc, val| acc.merge(val) }
visited << [guard.coords, guard.heading]
end
def step
guard.step
if matrix[guard.coords] == '#'
guard.back
guard.turn
end
self.time_loop = true if visited.include?([guard.coords, guard.heading])
visited << [guard.coords, guard.heading] if matrix.key?(guard.coords)
end
def run
step_count = 0
turn_count = 0
while (matrix.key?(guard.coords) && !time_loop) do
guard_before = guard.coords
step
step_count += 1
if guard.coords == guard_before
turn_count += 1
end
end
end
end
room = Room.new
start = room.visited.first
room.run
time_loops = (room.visited - Set.new([start])).map(&:first).to_set.filter do |coords|
room.matrix[coords] = '#'
room.run
time_loop = room.time_loop
room.time_loop = false
room.matrix[coords] = '.'
room.visited = Set.new
room.guard = Guard.new(Complex(room.guard_start[0], room.guard_start[1]))
time_loop
end
pp time_loops.length
ืืื ืืืจื ืฉ Claude ืขืืจ ืขืืื ืืืขืืืจ ืืช ืืืืืงืช ืืืืคืืก ืืืชืืื ืืชืื Room (ืืฆืขื ืฉื ืงืืื):
require 'set'
class Guard
attr_accessor :position, :heading
def initialize(position)
@heading = -1 + 0i # Using instance variables consistently
@position = position
end
def step
@position += @heading # Using += for cleaner code
end
def turn
@heading = Complex(@heading.imag, -@heading.real)
end
def back
@position -= @heading # Using -= for cleaner code
end
def coords
[@position.real.to_i, @position.imag.to_i] # Convert to integers to avoid floating point comparison issues
end
end
class Room
attr_accessor :matrix, :guard, :visited, :time_loop, :guard_start
def initialize
@time_loop = false
@visited = Set.new
parse_input_file
@visited << [@guard.coords, @guard.heading]
end
def parse_input_file
@matrix = {}
File.readlines('input.txt', chomp: true).each_with_index do |line, line_index|
line.chars.each_with_index do |char, column_index|
coords = [line_index, column_index]
if char == '^'
@guard_start = coords
@guard = Guard.new(Complex(line_index, column_index))
@matrix[coords] = '.'
else
@matrix[coords] = char
end
end
end
end1 417
ืคืืชืจืื Advent Of Code ืืื 6 ื Ruby - ืืืื ืืืืจื ืื ืจืืืชื ืืช ืื
ืชืจืืื ืืื 6 ืฉื Advent Of Code ืืืืืจ ืื ืจืืืื ืขืืืื ืืืขืืจ: ืืืจืืืื ืฉืื ืืืชื ืฉืืื ืงืื ืืฉืืืขืชื ืืช ืืชืฉืืื ืืืื, ืืื ืืื ืืื ื ืกืืืืช ืืืืชื ืจืืข ืฉื ืืจืืืื ืื ืจืืืชื ืืช ืื. ืงืฉื ืืืกืืืจ ืื ืขืืจ ืื ืืจืืฉ ืืืืชื ืืื, ืืื ืื ื ืืืืจ ืืื ืืช ืืืืืืืช ืฉืืจืืฉืชื ืืืื ืืงืืฉื ืฉื ืืฉืืื (ืืืืชื ืจืืข ื ืจืืชื ืื ืืืฉ ืืกืืืืช) ืืืืื ืืืกืจ ืืืืืืช ืฉืื ืืคืชืืจ ืืืชื. ืืคืืื ืฉืืืจืืืื ื ืืกื ืืืืืฃ ืืืชื ืืคืืชืจืื ืืืืจ ืืืืื ืฉืืืืืชื ืืืงืฉ ืืื ืื ืกืืช ืฉืืื ืืืจืช. ืืกืืคื ืฉื ืืืจ ืืฆืืืชื ืืขื ืืช ืขื ืืกืคืืง ืฉืืืืช ืืืจืืช ืืฉืืื ืืขืืืจ ืืช ืืืชื ืจืืืื.
ืืื ืืงืจื ืืฉืืกืชืืืชื ืขื ืืืืง ืืฉื ื ืฉื ืชืจืืื ืืื 6 ืืจืืฉืชื ืืืืืง ืืืืชื ืฆืืจื. ืืืคืฉืชื ืืื ืกืืฃ ืืจืืื ืืืืืช ืืคืชืืจ ืืช ืืืขืื, ืืฉืืคืืชืจืื ืืคืฉืื ืืื ืื ืืื ืืขืื ืืื ืื ืืืื. ืืืื ื ืจืื ืืช ืื.
ืืืชืืจ
ื ืชืื ื ืืคื ืืคืืจืื ืืงืกืืืืื ืฉืืืคืืื ื ืืืชืืจื Advent Of Code:
....#.....
.........#
..........
..#.......
.......#..
..........
.#..^.....
........#.
#.........
......#...
ืกืืื ื ^ ืืืืฆื ืฉืืืจ ืฉืืชืงืื ืืืืืื ืฉืืืฅ ืืจืื ืืืกืืืืืืช ืื ืืืฉืืืื. ืืฉืฉืืืจ ื ืชืงื ืืืืฉืื ืืื ืืกืชืืื ืืืื ื ืืืฉืืื ืืืฆื ืืืืคื ืืื ืืกืืื ืืช ืืกืืืจ ืฉืื.
ืืืง 1 - ืืกืืืืืืืจ
ืืฉืืื ืืจืืฉืื ื ืืืชื ืืืื ืืฉืืฆืืช ืืื ืืืงืจ ืืืืื ืืกืืืจ. ื ื, ืื ืื ื ืืืืขืื ืืงืืื ืื ื ืคืชื ืงืืืฅ ืจืืื ืื ืืชืื ืกืืืืืืืจ ืืฆืขืื ืืฉืืืจ:
require 'set'
class Guard
attr_accessor :position, :heading
def initialize(position)
self.heading = -1 + 0i
self.position = position
end
def step
self.position = position + heading
end
def turn
self.heading = Complex(heading.imag, -heading.real)
end
def back
self.position = position - heading
end
def coords
[position.real, position.imag]
end
end
class Room
attr_accessor :matrix, :guard, :visited
def initialize()
self.visited = Set.new
self.matrix = File.read('input.txt').lines.each_with_index.flat_map do |line, line_index|
line.chomp.split('').each_with_index.map do |char, column_index|
if char == "^"
self.guard = Guard.new(Complex(line_index, column_index))
{[line_index, column_index] => '.' }
else
{[line_index, column_index] => char }
end
end
end.reduce({}) {|acc, val| acc.merge(val) }
self.visited << guard.coords
end
def step
guard.step
if matrix[guard.coords] == "#"
guard.back
guard.turn
end
visited << guard.coords if matrix.key?(guard.coords)
end
def run
step while matrix.key?(guard.coords)
end
end
room = Room.new
room.run
pp room.visited.length
ืื ืืื ืงืื ืืื ืื ืขืฆืืื ืืจืืืฉ ืงืฆืช ืืืืฉื ื 2025 ืืื ืืื ืืืช ืื ืื ื ื Ruby ืืืฉืื ืื ืืืืงื ืฉืืืืฆืืช ืืช ืืฉืืืจ ื ืจืืชื ืื ืจืขืืื ืืื ืืืืชื ืจืืข.
ืืืง 2 - ืืืชืืจ
ืืืืง ืืฉื ื ืื ืื ื ืฆืจืืืื ืืืืืช ืืฆืืจืชืืื ืืืืคืฉ ืืงืืืืช ืืื ื ืืื ืืืกืื ืืช ืืฉืืืจ ืืื ืืชืงืืข ืืืชื ืืืืืื ืืื ืกืืคืืช. ืืืืืื ืืืกืืคืืจ ืืืชื ืืฉืื ืืืฉืื ืืืฉ ืืฉืืื ืื ืงืืืช ืืืชืืื ืืื ืืงืืืื ืืช ืืืกืืื ืืืื ืกืืคื:
....#.....
....+---+#
....|...|.
..#.|...|.
....|..#|.
....|...|.
.#.O^---+.
........#.
#.........
......#...
ืืื ืืฉ ืขืื ืืคืฉืจืืืืช ืืืืฉืืื ืืื ืืืฆืื ืืช ืื ืืืคืฉืจืืืืช ืฉืืชืงืขื ืืช ืืฉืืืจ ืืืืืื ืืื ืกืืคืืช. ืืคื ืื ื ืืืื ืฉืื ื ืงืฆืช ื ืชืงืขืชื ืืืืืื ืืื ืกืืคืืช - ืืจืขืืื ืืจืืฉืื ืฉืื ืืื ืคืืชืจืื ื ืืืื, ืืืืืจ ืืงืืช ืืช ืื ืื ืงืืืืช ืืืกืืื, ืื ืกืืช ืืฉืื ืืืฉืื ืืื ื ืงืืื ืืืจืืืช ืื ืืฉืืืจ ื ืชืงืข ืืืืืื ืืื ืกืืคืืช. ืื ืฉืืืฉืื ืืืชื ืืื ืคืื ืงืฆืืืช ื initialize ืืงืื ืืื ืื ืืขืฆืืื ืืืืคืื ืฉืืชืืชื:
def initialize()
self.time_loop = false
self.visited = Set.new
self.matrix = File.read('input.txt').lines.each_with_index.flat_map do |line, line_index|
line.chomp.split('').each_with_index.map do |char, column_index|
if char == '^'
self.guard_start = [line_index, column_index]
self.guard = Guard.new(Complex(line_index, column_index))
{ [line_index, column_index] => '.' }
else
{ [line_index, column_index] => char }
end
end
end.reduce({}) {|acc, val| acc.merge(val) }1 417
ืื ืื ืชืืจืืืก
ืืื ืืืื ืฉืืฉืืื ืืืืืช ืคืจื ืืื ืฆืจืื ืืคืชืื ืืืืืจ ืฆืืืื ืืืืคืฉ ืืื ืชืืื ืืช ืืืืืืช. ืืืื ืืขืืื ื AI ืืกืคืืง ืืฆืื ืืช ืืคืจื, ืืฉืืื ืืช ืืืืจ ืื ืืฉ ืืชืืื ื ืืืืืืืง ืืฆืืขืืช. ืืฉืืื ืืืชื ืชืืจืืืก ืขื ืชืืื ื ืฉื ืื ืืฆื ืืงืื ืชืื ื ืืืช ืืืจืืืช ืฉืื ื ืืืืืช ืืช ืืืขืืช (ืจืง ืืฉืืื ืืงืื ืืื ื ืืืื "ืืชื ืฆืืืง ืืืื!"). ืืฉืขืืืจืื ืืคืืืชืื ืืื ืื ืืขืื ืืืจืืง ืื ืืืืืืื ืืช ืืืืืืฉ ืืื ืืืืฉืื ืกืืจืช ืคืืืื ืืฆ'ื ืืฉืืจื ืืืช:
fibonacci = lambda n, a=0, b=1: [a := b, b := a + b][0] if n else None
ื ืจืื ืืืคื ืืื ืืื ืืชืืจืืืก, ืืชืืฆืื ืืื ื ืืกืคืจ ืืกืืจืช ืคืืืื ืืฆ'ื.
ืืื ืืชืื ืืช ืืืขืืืืช ืืืืืืช ืืืืืช ืืืชืจ ืขืืื ืืช, ืืคื ืื ืืชืืื ืืืืืช ืืืจืื. ืื ื ืขืื ืฉื ื ืืืืืฉืื ืฉืงืืืืชื, ืชืืืื:
from functools import lru_cache
fib = lru_cache(None)(lambda n: n if n < 2 else fib(n-1) + fib(n-2))
print(fib(10)) # Output: 55
ืืื ืืฆืขื ื ืืกืคืช ืฉ"ืืฉืชืืฉืช ืืืืืจืฆืืืช ืืื ืืฉืคืจ ืืืฆืืขืื":
fib = lambda n, a=0, b=1: a if n == 0 else fib(n-1, b, a+b)
print(fib(10)) # Output: 55
ืืืชื ืฆืืืงืื, ืืื ืคื ืืืืจืฆืืืช ืืืืฉืืืื ื LRU Cache ืื ืืื ืคื ืฉืืคืืจ ืืืฆืืขืื.
ืขืืฉืื ืืกืืคืืจ ืืื ืื ืชืืจืืืกืื ืืื ืคืืืื ืืฆ'ื. ืืืขืืจ ืืชืืื ืืช ืืืืกืกืืช GPT ืืื ืื ืืขืืจ ืืืขืจืืืช ืฉืขืืฉืืช ืืขืืืืช. ืื "ืืืืื" ืืื ืฉืื ืื ื ืจืืืืื ืืื ืืืขืืื ืืื ืืขืืืืช ืจื ืืืืืืืช ืฉืืงืืจื ืืืื ืื ืืกืืกืืื ืื ืืืื ืื. ืื ืืื ืขืื ื ืฆืืจื ืืืชืจืื.1 417
ืืืืงืืช null ื JavaScript
ืืคืืกื ืืืื ื ืจืื ืฉืืืฉื ืืืคืจืืืจืื ืืืืืงืช Null Values ืืืชืืืืืืช ืขื ืขืจืืื ืจืืงืื.
ืืื ืืืชืืืื ืขื ืขืจืืื ืจืืงืื
ืชืืื ืืืช JavaScript ืืฉืชืืฉืืช ืืขืจืืื ืจืืงืื ืืื ืืืืฆื ืฉืืืื ืื ืืืืข ืืกืจ. ืืื ืชืืื ืืช ืฉืื ืื ื ืืืชืืื ื ืจืฆื ืืืชืืืื ืขื ืฉืืืืืช ืื ืืืืข ืืกืจ ืืชืื ืืืฉืืืื ืืืจืืืื. ืืฉืืื ืืื ืื ืขืืฉืื ืขื ืืืืืข ืืืกืจ ืื ืืฉืืืื ืืืืฉืืืื ืงืืืืื ืืืชืืืช ืืืฉืื ืืืจืื. ืืืคืฉืจืืืืช ืื:
1. ืืืืืช ืฉืืฉ ืืืืข ืืกืจ ืืืขืฆืืจ ืืช ืืืืฉืื ืืืืจืื.
2. ืืืืฉืื ืืช ืืืืฉืื ืขื "ืืืืืข ืืืกืจ", ืืื ืฉืฆืจืื ืืช ืืชืืฆืื ืฉื ืืืืฉืื ืืืจ ืืชืืืื ืขื ืืืขืื.
ื ืืืืื ืคืื ืงืฆืื ืฉืืงืืืช ืืขืจื ืืืกืคืจ ืืืืืืจื ืืช ืืกืคืจ ืืืกืคืจืื ืืืืขืจื ืืืืืืื ืืืืกืคืจ ืฉืงืืืื:
function largerThan(items, start) {
return items.filter(x => x > start).length;
}
ืื ืงืืจื ืื ืื ืกืื ืืืคืขืื ืืืชื ืืื ืืขืืืจืื ืจืง ืืช items ืืื start? ืื ืื ืื ื ืจืืฆืื ืฉืืงืจื? ืืืืฉื ืืจืืฉืื ื ืืื ืืืืืช ืืชืื ืืคืื ืงืฆืื ืฉืืกืจ ืืืืข ืืืขืฆืืจ ืืช ืืืืฉืื ืืืืฆืขืืช ืืจืืงืช ืงืื ืฉืืืื. ืืืฉื ืื ืขืืืืช ืืฉืื ืื ื ืืืืขืื ืฉืืงืื ืืืืฆืื ื ืืคืขืื ืืช largerThan ืืชืื ืืืืง try/catch ืืืืื ืืืชืืืื ืื ืขื ืืกืืื ืืืฆืืื ืืื ืขื ืืกืืื ืืืขืืช.
ืืืฉื ืฉื ืื ืืืืจืช ืฉื ื ืกื ืืืชืืืื ืืืืฆืขืืช ืืื ืกืช ืืขืจื ืืืกืจ ืืชืื ืืืืฉืื, ืืืืืจ ื ืืืืจ ืืื ืฉืงืจื ืื ื ืืช ืืขืจื 0 ืื ืืคืืื ืืช ืืขืจื null, ืืชืื ืืื ื ืฉืื ืฉืงืจื ืืคืื ืงืฆืื ืืืื ืืืคื ืืืืฉืื ืขื ืืขืจื ืืืกืจ. ืืชืืืืืืช ืืืืช ืขื ืขืจืืื ืจืืงืื ืืืืื ืืืคืฉืจ ืืชืืืช ืงืื ืืืืงื ืืืชืจ ืฉืืฉ ืื ืจืง ืืกืืื ืคืขืืื ืืื.
ืืงืื ืืืืืื ืืื ืื ืื ืื ื ืืขืืืจืื ืจืง ืคืจืืืจ ืืื ืืคืื ืงืฆืื ืืื ืชืืืืจ 0 ืืื ืื ืื ื ืขืืืจ ืืงืกื ืื undefined ืืชืืจ ืืคืจืืืจ ืืฉื ื, ืืื ืื ื ืขืืืจ null ืืื ืชืืคืื ืืช ื null ื 0 ืืชืืืืจ ืืช ืืกืคืจ ืืืืืจืื ืืืขืจื ืฉืืืืืื ืืืคืก, ืืื ืืชื ืืืืช ืงืฆืช ืืืืืืช.
ืืืจืกืช ES2020 ืืืกืืคื ืฉืชื ืคืขืืืืช ืืขืืืื ืขื ืขืจืื null ื JavaScript ืืืืกืกืืช ืขื ืกืืื ืืฉืืื.
ืืืคืจืืืจ Nullish coalescing
ืืืคืจืืืจ ?? ื ืงืจื Nullish Coalescing ืืชืคืงืืื ืืืืืจ ืืช ืืขืจื ืฉืืื ื null ืืืื ืฉื ื ืขืจืืื. ื ืืื ืืืฉืชืืฉ ืื ืืืืคื ืืื:
function printTimes(text, aTimes) {
const times = aTimes ?? 5;
for (let i=0; i < times; i++) {
console.count(text);
}
}
ืืคืื ืงืฆืื ืชืืคืืก ืืช ืืืงืกื ืฉืืื ืงืืืื times ืคืขืืื, ืื ืื times ืืื ื ืืืืืจ ืื null ืืื ืชืฉืชืืฉืช ืืืจืืจืช ืืืืื 5. ื ืฉืื ืื ืฉืื ืืขืืืจืื ืขืจื 0 ืื false ื aTimes ืื ืืขืจื ืฉื times ืืืื 0 ืืืืงืกื ืื ืืืืคืก.
ืืฉืื ืืืืืงืช null
ืืคืฉืจ ืืฉืื ืืช ?? ืขื ืืืคืจืืืจ ืืฉืื ืืื ื ืจืื ืื:
function printTimes(text, times) {
times ??= 5;
for (let i=0; i < times; i++) {
console.count(text);
}
}
ืืชืืฆืื ืืื - ืื times ืืื null ืื ืื ืืืืืจ ื ืฉืืืจ ืื ืืช ืืขืจื 5, ืืื ืืฆื ืืืจ ืืื ืืฉืืืจ ืขื ืขืจืื.
ืฉืจืฉืืจ ืืืคืฆืืื ืืื Optional Chaining
ืคืขืืื ืืืจืื ื ืฉืงืฉืืจื ืืขืืืื ืขื ืขืจืืื ืจืืงืื ืืืืฉืื ืืืื ืืื ืกืชื ืืืชื ืืจืฉืืื ืื (ืืืจืืช ืฉืืื ืื ืืืืจื ืงืฉืืจื ืืคืขืืืืช ืขื null) ื ืงืจืืช Optional Chaining. ืืจืขืืื ืฉืื ืืื ืืืคืฉืจ ืื ื ืืืืฉืื ืืืฉืื ืื ืืฉืืกืจ ืฉืื ืืืืืืงื, ืืชืื ืื ืื ืฉืืืืฉื ืืชืืื ืืช ืืืฉืื ืืืจ ืืืข ืืืชืืืื ืขื ืืขืจื ืืจืืง.
ื ืชืืื ื ืืืืืื ืืืื:
const data = {
x: { times: 7 },
y: { times: 2 },
};
const f = (what) => printTimes(what, data[what].times);
ืืคืฉืจ ืืืฉืชืืฉ ืืคืื ืงืฆืื ืืื ืืืืคืืก ืืช x ืื y ืืืืคื ืืื:
f('x');
f('y');
ืืื ืื ื ื ืกื ืืืฉืชืืฉ ืื ืืื ืืืืคืืก ืืฉืื ืฉืื ื ืืฆื ืืืืืืงื ืืืฉื ืืช ืืืืจืืืช z ื ืงืื ืฉืืืื - ืืขืจื ืฉื data[what] ืืื undefined ืืืื ืื ืืคืฉืจ ืืืฉืช ืืฉืื times ืฉืื.
ืคืขืืืช Optional Chaining ืืืคืฉืจืช ืืืื ืขื ืืฉืืืื ืืืืช ืืืืฆื ืื ืื ืกืื ืืืฉืช ืืฉืื ืฉื undefined ืืื ืืืืืจื undefined ืืืงืื ืืืจืืง ืฉืืืื. ืืคืขืืื ืืกืืื ืช ืขื ?. ืืืืืืื ืฉืื ื ืชืืจืื ืื:
const f = (what) => printTimes(what, data[what]?.times);
f('z');
ืืคืขื ืืืืคืกื ืืืืจืื ื ืื ืืืจืงืช ืฉืืืื ืืืืคืืกื ืืช ืืืงืกื 5 ืคืขืืื - ืืคืื ืงืฆืื printTimes ื ืงืจืืช ืขื ืขืจื undefined ืืืฉืชื ื ืืฉื ื ืืชืฉืชืืฉ ืืืจืืจืช ืืืืื ืฉืื 5 ืืื ืืืืคืืก.1 417
ืืืื ื ืชืชื ื Aider ืืืชืื ืคืืฆ'ืจ ืืืฉ ืืืชืจ
ืืืืงืจ ื ืชืชื ื Aider ืืืชืื ืคืืฆ'ืจ ืืืฉ ืืืชืจ - ืขืืฉืื ืืฉืืกืชืืืื ืขื ืชืืื ืืขื ืืื ืื ืฉื ืงืืจืก ืืชืื ืืกื ืฉื ืฉืืขืืจ, ืืฉืืขืืจ ืื ืืืื ืืืคืืข ืืฆืืข ืงืฆืช ืืืจ ืืืื ืืคืฉืจ ืืืขืช ืืืคื ืื ืื ื ื ืืฆืืื. ืื ืคืืฆ'ืจ ืฉืจืฆืืชื ืืจืื ืืื ืืื ืืืืฉืื ืื ืืืขืชื ืืฉืืช ืืืชืื ืืืชื. ืืื Aider ื ืชื ืื ืืืืื ืืช. ืืื ืื ืชืืขืืชื ืืช ืืืฉืืง ืืืชื ืืืืืื ืืื:
https://www.youtube.com/watch?v=thSABbP1rF4&feature=youtu.be
ืขืืฉืื ืืกืืืื:
1. ืื ื ืื ืืืฉื ืฉ AI ืืืงื ืื ื ืืช ืืขืืืื ืืืื ืืงืจืื.
2. ืืืขืื ืืื ืืืืื ืขื AI ืื ืืืืืืื ืืขืฆืื ืืืืคืจื ืฉืื. ืื ืื ื ืจืืืืื ืืืืืื ืืืืจืื ืฉืืชืืืื ืืืื ืืจื ื, ืืื AI ืืฉื ื ืืช ืื. ืืื ืขืืืื ืขื AI ืื ืื ื ืฆืจืืืื ืืืชืืื ืืจืฃ ืืฉืื ืืช ืืืื ืืืื.
3. ืงืื ืืงืกื ืืื ืืื. ืืื ืฉื ืืงื ืืช ื AI ืืืฉืืื ืกืคืฆืืคืืช ืกืืืืื ืืืฆืืื ืืฉืชืคืจืื.
4. ืืคืขืืื ืฆืจืื ืืืืืจ ืืืืจื ืงืืืื ืืื ืืืชืช ืื ืื ืกืืช ืฉืื.
ืืื ืกืคืง ืฉืืืืชื ืืืชื ืืช ืืคืืฆ'ืจ ืืื ืืืจ ืืืชืจ ืืื, ืืื ืืกื ืืื ื ืื ืืชื ืืืืฉืืง ืืืืื ืืื ืืชืืื ืืืขืื ืืคืืฆ'ืจืื ืืืชืจ ืืกืืืืื.
Endi mavjud! Telegram Tadqiqoti 2025 โ yilning asosiy insaytlari 
