Objects and Classes in Python

Python program တွေကို ရေးတဲ့အခါမှာ အဓိက အသုံးပြုတဲ့နည်းလမ်းတစ်ခုက Object-Oriented Programming (OOP) ဖြစ်ပါတယ်။ OOP ဆိုတာ Program တွေကို နားလည်ရ၊ ထိန်းသိမ်းရလွယ်အောင် ကုဒ်တွေကို သက်ဆိုင်ရာ Object တွေ အလိုက် စုစည်းပြီး အသုံးပြုတာ ဖြစ်ပါတယ်။ ဒီ Post မှာ တော့ OOP concept ရဲ့ အခြေခံတွေဖြစ်တဲ့ Object နဲ့ Class တွေကို လေ့လာသွားမှာ ဖြစ်ပါတယ်။ Objects & Classes Python မှာ သုံးနေတဲ့ အရာရာတိုင်းက Object တွေပါ။ Object ဆိုတာ Variable နဲ့ Function တွေကို စုစည်းပေးထားတာဖြစ်ပါတယ်။ Object … Continue reading Objects and Classes in Python

Unbeatable Tic-tac-toe A.I. [2]: Implementation of Minimax Algorithm

Minimax ‌algorithm ရဲ့ အခြေခံတွေကို ‌ရှေ့တစ်ပိုင်းမှာ လေ့လာခဲ့ပါတယ်။ ဒီအပိုင်းမှာတော့ Minimax ကို Tictactoe ဂိမ်းလေးမှာ ထည့်ပြီး အသုံးပြုမှာ ဖြစ်ပါတယ်။ Tictactoe Game ဂိမ်းလေးထဲမှာ Algorithm အတွက် လိုအပ်တဲ့ Function တွေကို အရင်အပိုင်းမှာ ဖော်ပြခဲ့ပြီး ဖြစ်ပါတယ်။ နမူနာဂိမ်းလေးကို Tictactoe Board Module - Pastebin.com မှာ ကြည့်နိုင်ပါတယ်။ အဓိကသုံးရမယ့် Function တွေကို အောက်မှာပြထားပါတယ်။ ဒါတွေ ပါရင်ပဲ Minimax ကို သုံးလို့ရပါပြီ။ ကျွန်တော်ရေးထားတဲ့အတိုင်း အကုန်တူစရာမလိုပါဘူး။ Symbol = str Square = int class Board: def push(move): # … Continue reading Unbeatable Tic-tac-toe A.I. [2]: Implementation of Minimax Algorithm

Unbeatable Tic-tac-toe A.I. [1]: Basics of Minimax Algorithm

ဒီ Project မှာတော့ Tictactoe ကို ဘယ်တော့မှ မရှုံးအောင်ကစားနိုင်တဲ့ A.I. တစ်ခုကို ဖန်တီးသွားမှာပါ။ ဒီ A.I. လေးကို နားလည်ရလွယ်ပြီး အရမ်းအသုံးဝင်တဲ့ Minimax Algorithm သုံးပြီး ရေးမှာ ဖြစ်ပါတယ်။ ဒီ Project လေးကို ရေးရင်းနဲ့ Strategy game တွေထဲက A.I. Player ‌တွေရဲ့ အခြေခံအလုပ်လုပ်ပုံကို နားလည်လာမှာဖြစ်ပြီး တစ်ခြားအဆင့်မြင့် ဂိမ်းတွေမှာပါ ကိုယ်ပိုင် A.I. တစ်ခုကို ရေးနိုင်လာမှာဖြစ်ပါတယ်။ ကုဒ်တွေကို Python နဲ့ ရေးပြထားတာဖြစ်ပေမယ့် JS တို့၊ Java တို့နဲ့ ရေးရင်လည်း Algorithm က သဘောတရားအတူတူပါပဲ။ Syntax ပဲ ပြောင်းသွားမှာပါ။ What is … Continue reading Unbeatable Tic-tac-toe A.I. [1]: Basics of Minimax Algorithm

How to Use Lambda Functions : Advanced Python Concept

Lambda function တွေက Computer programming မှာ အ‌ရေးပါတဲ့ Concept တစ်ခုဖြစ်ပါတယ်။ ကျစ်လျစ်ထိရောက်တဲ့ ကုဒ်တွေကို မြန်မြန်ဆန်ဆန်နဲ့ ရေးနိုင်ဖို့ အတွက် Lambda function တွေကို သေသေချာချာ နားလည်ထားဖို့ လိုပါတယ်။ ဒီ Post မှာတော့ Lambda တွေကို Python language မှာ ဘယ်လို အသုံးပြုရမယ်ဆိုတာကို လေ့လာကြမှာ ဖြစ်ပါတယ်။ Table of Contents Lambda SyntaxBasics Of Lambda FunctionsUsages of Lambda Functionsfilter() Functionmap() Functionsorted() Functionreduce() FunctionReturning Function ObjectsSummary Lambda Syntax Lambda function ဆိုတာ နာမည်မပါတဲ့ … Continue reading How to Use Lambda Functions : Advanced Python Concept

Jumping T-rex : Building A Simple Javascript Game

ဒီ Project မှာတော့ Google Chrome ရဲ့ နာမည်ကြီး ဂိမ်းလေးဖြစ်တဲ့ Chrome Dino ပုံစံ ဂိမ်းလေးကို ရေးမှာဖြစ်ပါတယ်။ ဒီ Project လေးက Web development ကို အခုမှ စလေ့လာတဲ့ Beginner‌ တွေ အတွက် ရည်ရွယ်တာဖြစ်လို့ HTML CSS ကို သိထားရုံနဲ့ လိုက်ရေးလို့ ရပါတယ်။ JS အခြေခံနည်းနည်း သိထားရင်တော့ ပိုအဆင်ပြေပါတယ်။ ဂိမ်းမှာ အသုံးပြုမယ့် Sources တွေကို အောက်မှာပေးထားတဲ့ Github link ကနေ ရယူနိုင်ပါတယ်။ ဂိမ်းလေးကို ရေးပြီးရင် သူငယ်ချင်းတွေနဲ့ Share လို့ရအောင် Github Page မှာပါ တစ်ခါတည်း တင်မှာဖြစ်ပါတယ်။ Play … Continue reading Jumping T-rex : Building A Simple Javascript Game

*Args and **Kwargs : Using Variable Numbers of Arguments in Python

Python program တွေကို လေ့လာတဲ့အခါ တစ်ချို့ Function definition တွေမှာ *args နဲ့ **kwargs ဆိုပြီး Parameter နှစ်ခုကို တွေ့ရတတ်ပါတယ်။ ဒီ Post မှာတော့ *args နဲ့ **kwargs က ဘာတွေလဲ၊ သူတို့ကို ဘယ်လိုသုံးရမလဲ ဆိုတာတွေကို ပြောပြပေးမှာပါ။ What are *args and **kwargs? Function တစ်ခုကို Define လုပ်တဲ့ အခါမှာ လိုအပ်တဲ့ Parameter တွေကို တစ်ခါတည်း သတ်မှတ်ထားရပါတယ်။ ကိုယ်ထည့်ချင်တဲ့ Argument အရေအတွက်ကို သေချာမသိတဲ့ အခါ၊ ဒါမှမဟုတ် Argument တွေ၊ Keyword argument တွေ အများကြီးထည့်ချင်တဲ့ အခါမှာ … Continue reading *Args and **Kwargs : Using Variable Numbers of Arguments in Python

How to Use TinyDB – Python Database for Beginners

ကိုယ်ပိုင် Project တွေ ရေးတဲ့အခါမှာ Data တွေကို သိမ်းဖို့ လိုလာတတ်ပါတယ်။ ကိုယ်က Data အများကြီး သိမ်းစရာမလိုရင် ရိုးရှင်းတဲ့ TinyDB ကို သုံးလိုက်တာက ကိုယ့်အလုပ်ကို ပိုပြီး လွယ်ကူမြန်ဆန်စေပါတယ်။

Functions in Python

Program တစ်ခု ရေးပြီ ဆိုရင် Function တွေကို မဖြစ်မနေအသုံးပြုရပါတယ်။ Function ဆိုတာက ထပ်ခါထပ်ခါသုံးလို့ရတဲ့ ကုဒ်တွေကို ပြန်သုံးနိုင်အောင် စုစည်းထားတဲ့ block တစ်ခုပါ။ လုပ်ငန်းတစ်ခုထဲကို အတူတူလုပ်ဆောင်တဲ့ ကုဒ်တွေကို Function တွေနဲ့ Organize လုပ်ထားတဲ့ အခါမှာ Program တစ်ခုက နားလည်ရလွယ်တဲ့အတွက် error ပါနေရင်လည်း လွယ်လွယ်ကူကူ Debug လုပ်နိုင်ပါတယ်။ Function တွေရဲ့ အဓိက အသုံးဝင်တဲ့ အချက်ကတော့ Program တစ်ခုမှာ သုံးထားတဲ့ Function တွေကို အလားတူ လုပ်ငန်းတွေ လုပ်ဆောင်ဖို့အတွက် အခြား Program တစ်ခုမှာလည်း ပြန်သုံးနိုင်ပါတယ်။ ဒီလို Programming language တိုင်းမှာ အရေးပါတဲ့ Concept တစ်ခုဖြစ်တဲ့ … Continue reading Functions in Python

Programmer တိုင်း သိထားသင့်တဲ့ Window Command များ

Command line ဆိုတာက Window ရဲ့ Operating system ကို တိုက်ရိုက်ချိတ်ဆက်ပြီး အလုပ်လုပ်တဲ့ ကုဒ်တွေပါ။ Window မျက်နှာပြင်ပေါ်မှာ မြင်နေရတဲ့ Icon တွေ၊ Folder တွေကို Graphical User Interface (GUI) လို့ခေါ်ပါတယ်။ ကိုယ်လုပ်ချင်တဲ့ လုပ်‌ဆောင်ချက် ကို Mouse သုံးပြီး GUI ကနေတစ်ဆင့်  အသုံးပြုရပါတယ်။ Command line ‌တွေက Mouse နဲ့ သုံးရတဲ့ လုပ်ငန်းမှန်သမျှကို ပိုပြီး မြန်ဆန်စွာနဲ့ လုပ်ဆောင်နိုင်တဲ့ အပြင် GUI ကနေ လုပ်ခွင့်ပေးမထားတဲ့ လုပ်ငန်းတွေကိုပါ အသုံးပြုနိုင်ပါတယ်။ Programming basics တွေကို လေ့လာခါစမှာ Command တွေကို သုံးစရာမလိုသေးပေမယ့် နောင် … Continue reading Programmer တိုင်း သိထားသင့်တဲ့ Window Command များ

Programming Project တစ်ခုကို ဘယ်လို တည်ဆောက်ရမလဲ

Programming ကို စလေ့လာပြီဆိုရင် ကိုယ်သိထားတာတွေကို သေချာ သဘောပေါက် နားလည်နိုင်အောင် လက်တွေ့ရေးကြည့်ဖို့ လိုပါတယ်။ လက်တွေ့ရေးတဲ့နေရာမှာလည်း Topic တစ်ခုစီကို လေ့ကျင့်တာထက် Concept တွေအကုန်လုံးကို ပေါင်းပြီး အသုံးပြုရတဲ့ကိုယ်ပိုင် Project တွေ၊ ဂိမ်းတွေ ‌ရေးတာက ပိုပြီး အကျိုးရှိပါတယ်။ အထူးသဖြင့် Beginner တွေအတွက် အကောင်းဆုံးသင်ယူမှု ပုံစံက ကိုယ်ပိုင် Project တွေ ရေးတာပါပဲ။ Project တွေရေးရင်း ကိုယ်သိပြီးသားတွေကို ပိုနားလည်လာနိုင်သလို ကိုယ်မသိသေးတဲ့ အရာတွေကိုလည်း လေ့လာပြီးသား ဖြစ်စေပါတယ်။  ဒီလို Project တွေ ‌ရေးတဲ့ အခါမှာ လိုအပ်တဲ့ အဆင့်တွေကို ပြောပြပေးပါမယ်။ 1. Project Structure အရင်ဆုံး ကိုယ်က ဘာရေးချင်တယ်ဆိုတာကို သေချာသိရပါမယ်။ … Continue reading Programming Project တစ်ခုကို ဘယ်လို တည်ဆောက်ရမလဲ