Saturday 23 February 2013

Windows 7 က Menu ကို Windows 8 မွာသံုးမယ္




ပိုစ့္မေရးတာ ၂ပတ္နီးနီးရွိေနပါၿပီ။ ခုေတာ့ Windows 8 ရဲ႕ဆန္းၾကယ္တဲ့ လ်ိဳ႕၀ွက္ခ်က္ေတြ ကိုေျပာျပမွာျဖစ္ပါတယ္။ ကဲ။ Windows 7 က Menu ေတြရဲ႕ပံုစံကို Windows 8 မွာပံုစံကူးမယ္။ လုပ္နည္းကေတာ့ Registry သံုးရုံပဲ။

ပံုစံအသစ္ကေတာ့ လွေပမယ့္ တခ်ိဳ႕ကိုင္လို႕ ေနသားမက်ေသးတဲ့သူေတြရွိပါေသးတယ္။ Windows 7 ပံုစံကို ထားခ်င္ရင္ အလြယ္နည္းကေတာ့---

Start ကို ကလစ္ပါ။ ၿပီးေတာ့ Search ကိုကလစ္ပါ။

Search Apps ကို ခင္ဗ်ားတို႕ ေတြ႕ရပါလိမ့္မယ္။ အဲ့ဒီ Search box ထဲမွာ regedit လို႕ထည့္လိုက္ပါ။
ၿပီးေတာ့ regedit icon ေလးကို ကလစ္ပါ။

ခဏေစာင့္ပါ။ ၿပီးေတာ့ ဒီလိုပံုေပၚလာပါလိမ့္မယ္။ စိတ္မပူပါနဲ႕။ Yes လို႕ေပးလိုက္ပါ။
Registry  Editor ပြင့္လာပါၿပီ။ မျမင္ဖူးလို႕ဆုိၿပီး တေရးေမာ့ၾကည့္မေနနဲ႕။ ေအာက္က ျပတဲ့အတိုင္း လုပ္ေဆာင္ပါ။ အနီေရာင္နဲ႕ျပထားတယ္ေနာ္။
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer
အေပၚကေျပာတဲ့အတုိင္းလုပ္ၿပီးရင္ ေနာက္တစ္ဆင့္တက္ဖို႕ အဆင္သင့္ျဖစ္ပါေစ။


အေပRPEnabled ကို ကလစ္ႏွစ္ခ်က္ေပးပါ။

Edit DWORD (32-bit) Value ၾကီးပြင့္လာပါလိမ့္မယ္။ Value Data : ရဲ႕ေအာက္မွာ 1 ေတြ႕မယ္။ မေတြ႕လည္း ေအာက္ပံုေတြကို ကလစ္လိုက္။

1 ကိုဖ်က္ၿပီးေတာ့ 0 လို႕ေျပာင္းလိုက္ပါ။ OK ကိုကလစ္ၿပီး Registry Editor ကို ပိတ္လိုက္ပါ။
အဆင္ေျပၿပီထင္ေနတာ။ အမွန္ေတာ့ ေအာက္ကပံုကိုၾကည့္လိုက္။ ကိုးရို႕ကားယားၾကီးပဲ။ မပူပါနဲ႕။ အဲ့ဒါကို ေျဖရွင္းလို႕ရတဲ့နည္းေျပာမယ္။

လူၿပိန္းနည္းပါပဲ။ Restart ခ်လိုက္ပါ။ ၿပီးတာနဲ႕ ေအာက္ကပံုကိုၾကည့္ပါ။ Windows 7 start menu နဲ႕ လံုး၀တူသြားပါၿပီ။
Windows 7 ကဟာလို အေကာင္းပတိတုိင္း ရပါလိမ့္မယ္။


အဆင္ေျပပါေစ။ ကြ်န္ေတာ္က တတ္လို႕ ၊ ေတာ္လို႕မဟုတ္ပါ။ ေလ့လာေနဆဲျဖစ္ပါတယ္။
YGNBlogger

Friday 22 February 2013

How to hack SEO for your blog?



SEO ကုိ hack လုပ္တယ္ဆိုတာ.. ( Search Engine Optimization ) ပါ..။ မိမိ blog ကုိ.. Google မွာရွာရင္.. ထိပ္ဆံုးမွာရေအာင္.. hack တာေလးပါ..။ ဘယ္သူ႔ကိုမွမထိခုိက္ပါဘူး.. :)
ဘယ္လိုလုပ္ရမလဲဆိုရင္... နည္းလမ္းေတြကေတာ့...အမ်ားၾကီးရွိပါတယ္..။ အဲ့ထဲမွာမွ.. အလြယ္ဆံုးနည္းကုိ..ေၿပာၿပမွာပါ...........


အရင္ဆံုးမလုပ္ခင္.. မိမိ blog မွာရွိတဲ့ Post titile တစ္ခုကုိရွာလိုက္ပါ.။ ဥပမာ - ညီမဆိုဒ္မွာဆုိရင္.. Word Press အလြယ္ေရးနည္းဆိုတဲ့... post ရွိတယ္..။ အဲ့ဒါကုိ.. google search box မွာ.. ရိုက္ၿပီးရွာလိုက္ပါမယ္..။ Hack မလုပ္ခင္ေပၚလာတဲ့ Result အရဆိုရင္..ညီမဆိုဒ္က..ေအာက္နားမွာပဲရွိပါတယ္..။ Hack လုပ္ၿပီးရင္..ခုနအတိုင္း google မွာၿပန္ရွာၾကည့္ပါ..။ ထိပ္ဆံုးေရာက္ေနတာကုိ..ေတြ႔ရပါလိမ့္မယ္.. ^_^

- ပထမဦးဆံုး.. မိမိရဲ႔ blogger account ကို log in ၀င္လုိက္ပါ..။
- ၿပီးရင္ template ကုိသြားပါ..။
- Edit HTML ကုိႏွိပ္ၿပီး.. Expand Widgets ကုိ အမွန္ၿခစ္ၿခစ္ပါ..။
- ၿပီးရင္ Ctrl+F ႏွိပ္ၿပီး.. ဒီစာသားေလးကိုရွာလိုက္ပါ..။

<h3 class='post-title entry-title' itemprop='name'>

- အဲ့ဒါေလးေပၚလာရင္.. <h3 ကုိ <h2 လုိ႔ေၿပာင္းလိုက္ပါ..။ </h3> ေနရာမွာလည္း.. </h2> လို႔ေၿပာင္းလိုက္ပါ..။
- ၿပီးရင္ Save ႏွိပ္ၿပီး.. Close လုပ္ၿပီးၿပန္ထြက္လိုက္ပါ..။
- အားလံုးၿပီးရင္ေတာ့..အေပၚကအတိုင္း..မိမိ blog မွာရွိတဲ့ post title တစ္ခုကို... Google မွာရွာၾကည့္လုိက္ပါ..။ ထိပ္ဆံုးေရာက္ေနပါလိမ့္မယ္.. ^_^

credit: technologicalvilla.blogspot.com
P.S.: ကြ်န္ေတာ္ေရးဖို႕မအားတဲ့အျပင္ ခုေတာ့သူမ်ားဆီကပဲကူးဦးမယ္။ စာေမးပြဲရွိတယ္။ :(

Tuesday 12 February 2013

လြယ္ကူေလ့လာ ကေလးမ်ားအတြက္ ပ႐ိုဂရမ္းမင္းပညာ

လြယ္ကူေလ့လာ ကေလးမ်ားအတြက္ ပ႐ိုဂရမ္းမင္းပညာ

http://pyae-phyo.blogspot.com
ပ႐ိုဂရမ္းမင္း (Programming) လို႔ေခၚတဲ့ ဘာသာရပ္ကို လြယ္တယ္လို႔ေတာ့ မေျပာခ်င္ ပါဘူး။ ဒါေပမယ့္ အခက္ႀကီး လို႔လည္း မဆိုႏိုင္ဘူး။ လြယ္ကူစြာ ေလ့လာႏိုင္ဖို႔ဆိုတာ နည္းသိရင္ရပါတယ္။ ျမန္မာေတြ ဆိုေလ့ ရွိပါတယ္။ ဆရာမျပရင္ ငပိဖုတ္တာေတာင္ နည္းမက်ဘူးဆိုတာေတာ့ အမွန္ပဲ။ တကယ္ေတာ့ “နည္း” ဆိုတာ “KEY” ပါပဲ။ အဲဒီ ကီးေလးကို တစ္ခ်က္တည္း သိလိုက္တာနဲ႔ အားလံုး အဆင္ေျပစြာ လိုက္လုပ္ ႏိုင္ပါလိမ့္မယ္။ ပညာေရးကို ဘယ္အခ်ိန္မွာ စသင္သင့္သလဲဆိုတဲ့ ေမးခြန္းကို အစဥ္အလာ အတိုင္း ေျပာရရင္ အသက္ ၅ ႏွစ္နဲ႔ ၆ နွစ္ လို႔့ေျဖၾကမွာပဲ။ အသက္ ၃ ႏွစ္ေလာက္ ကတည္းကလည္း သင္ၾကတာပဲ။ ဒါေပမယ့္ ဒီအရြယ္ ေတြကို Logic လို႔ေခၚတဲ့ ယုတၱိ နည္းက်က် ဆင္ျခင္ေတြးေခၚ နည္းေတြကိုေတာ့ သြားသင္လို႔ရဦးမွာ မဟုတ္ဘူး။ သူတို႔မွာ ပညာအေျခခံ ေလးေတြ နည္းနည္း လိုေသးတယ္။
ဒါေၾကာင့္ ကေလးေတြကို ပ႐ိုဂရမ္းမင္း သင္မယ္ဆိုရင္ အသက္ ၁၂ နွစ္နဲ႔ အသက္ ၁၃ ႏွစ္ေလာက္မွ စတင္ သင္ေပးဖို႔ အႀကံျပဳခ်င္တယ္။ အထူးသျဖင့္ေတာ့ အတန္း အေနနဲ႔ Grade 7th or 8th ေလာက္ေရာက္မွ သင္ေပးရင္ ပိုၿပီး အဆင္ေျပတယ္။ ဒါကလည္း ပံုေသေျပာတာ မဟုတ္ဘူး။ အခ်ဳိ႕ကေလးေတြဟာ IQ အရမ္းျမင့္ တာေၾကာင့္ ေစာၿပီးသင့္လို႔ ရေကာင္းရႏိုင္ပါတယ္။ အသက္အပိုင္းအျခားကို ေဆြးေႏြးၿပီးရင္ ဘယ္လို ပ႐ိုဂရမ္းမင္း language ကိုသင္ေလ့လာခိုင္းသင့္သလဲ ဆိုတာ ေဆြးေႏြးခ်င္ပါတယ္။ ဒါကလည္း သင္ယူမႈနယ္ပယ္ကို ခ်ဳံ႕ၿပီး အေျခခံကိုတည္ေဆာက္ႏိုင္ေအာင္လို႔ ျဖစ္ပါတယ္။ ဒီေနရာမွာ ပ႐ိုဂရမ္းမင္းအေျခခံကို တည္ေဆာက္ဖို႔ပဲေျပာတာ။ ပ႐ိုဂရမ္းမင္းကိုေရးတဲ့ syntax ေတြကို တည္ေဆာက္ဖို႔ေျပာတာ မဟုတ္ေသးဘူး။ ဘယ္ဘာသာရပ္မဆို စိတ္၀င္စားမႈရွိတယ္၊ သင္ယူရတာေပ်ာ္တယ္ဆိုရင္ တတ္ေျမာက္ဖို႔လြယ္ကူတတ္ပါတယ္။ ဒီေတာ့ ဘာကို သင္ပါလို႔ မေျပာခ်င္ ပါဘူး။ ဘာေတြကို သင္ယူေလ့လာႏိုင္တယ္ဆိုတာကို ဦးစြာေျပာလိုပါတယ္။
အစဥ္အလာ ပ႐ိုဂရမ္းမင္းဘာသာရပ္မ်ား
အစဥ္အလာလို႔ေျပာလိုက္တာ အေဖတို႔ အေမတို႔ေခတ္က ပ႐ိုဂရမ္းမင္းကိုေျပာတာ။ ခုေခတ္မွာ တခ်ဳိ႕ဆိုရင္ ၾကားဖူးဖို႔ေတာင္ မလြယ္ေတာ့ဘူး။ ဒီေတာ့ ပ႐ိုဂရမ္းမင္းနဲ႔ ပတ္သက္တာေတြ အားလံုးကို ၿခံဳငံုၿပီး ေလ့လာ သံုးသပ္ၾကည့္ရေအာင္။

1.Lisp and Scheme


တကယ့္သုေတသနလုပ္ငန္းႀကီးေတြ၊ တကၠသိုလ္ႀကီးေတြက သုေတသနလုပ္ငန္းႀကီးေတြနဲ႔ ပ႐ိုဂရမ္းမင္းကို သီအိုရီက်က် ေလ့လာဖို႔့အတြက္ အသံုးျပဳၾကတဲ့ ဘာသာရပ္ျဖစ္တယ္။ သူ႔အေျခခံကိုသိဖို႔ပဲ ဦးေႏွာက္ ေျခာက္ေလာက္ေအာင္ ႀကိဳးစားရလိမ့္မယ္။ ဒါေပမယ့္ ပညာေရးေလာက မွာကေတာ့ ဒီ language ကို ဂုဏ္ယူစြာနဲ႔ သင္ၾကားေနၾကတုန္းပဲ။ ဒီ language ေတြကို ေလ့လာခ်င္ရင္ေတာ့ (http://racket-lang.org/) မွာသြားၿပီးေလ့လာႏိုင္တယ္။
2. Java
အလြယ္လမ္းကို လိုက္ခ်င္သူေတြအတြက္ကေတာ့ မတိုက္တြန္းခ်င္ပါဘူး။ ဒါေပမယ့္ ကေလးေတြကို သင္မယ္ဆိုရင္ေတာ့ Greenfoot (http://www.greenfoot.org/) နဲ႔ BlueJ (http://www.bluej.org/) ေတြကိုသင္ယူတတ္ေျမာက္လာရင္ Java အတြက္ အမ်ားႀကီး အေထာက္အကူျပဳႏိုင္တယ္။

3. C/C++


အခက္ဆံုးလို႔ေျပာရမယ္။ ကေလးေတြကို သင္မယ္ဆိုရင္ေတာ့ ကန္႔သတ္ခ်က္ရွိတယ္။ စိတ္၀င္စားသြားရင္ ေတာ့ သင္ယူခ်င္စိတ္ရွိႏိုင္တယ္။ စဖို႔ပဲခက္တယ္။
4. C# .NET
ေလာက္အထိ တက္လွမ္းဖို႔မွန္းထားတယ္ဆိုရင္ ေရြးခ်ယ္သင့္တယ္။ သူလည္း C++ လိုပဲ resource ေတြ သိပ္မမ်ားေပမယ့္ မိုက္ခ႐ိုေဆာ့ဖ္ကေတာ့ Sharp Kids (http://msdn.microsoft.com/en-us/beginner/bb308756.aspx) ဆိုၿပီး အေျခခံကို လုပ္ေပးထားတာရွိတယ္။ .NET နဲ႔ဆိုရင္ web application ေတြကိုေရးဖို႔ လြယ္မယ္ထင္တယ္။ ပညာေရးအတြက္ဆိုရင္ ေလ့လာထား သင့္တဲ့ language လို႔ေျပာႏိုင္တယ္။

5. Visual Basic


တကယ္လြယ္တဲ့ language တစ္ခုျဖစ္ပါတယ္။ သူမွာ ယခင္ BASIC ဆိုတဲ့ ယခင္ language အေဟာင္းရဲ႕ ရင္းျမစ္ေတြ အမ်ားႀကီးပါေနတယ္။ .NET နဲ႔ C# အျပန္အလွန္ အေထာက္အကူျပဳသလိုပါပဲ။ မိုက္ခ႐ိုေဆာ့ဖ္ကေတာ့ Visual Basic ရဲ႕အေျခခံျဖစ္တဲ့ ကေလးေတြအတြက္ Very Bright Kids (http://msdn.microsoft.com/en-us/beginner/bb308758.aspx) ဆိုတာကို ထုတ္ေပးထားတယ္။

6. Smalltalk


Squeak ရဲ႕ မူကြဲလို႔ေတာင္ေျပာႏိုင္တယ္။ ပ႐ိုဂရမ္မင္းေလ့လာခ်င္တယ္လို႔ေျပာရင္ သူငယ္ခ်င္းေတြကို ညႊန္းသင့္တယ္။ လက္ရွိ အေကာင္းဆံုး tutorial အေနနဲ႔ http://rmod.lille.inria.fr/botsinc လိုင္းမွာ ရႏိုင္တယ္။ အဲဒီထဲက သင္ခန္းစာေတြဟာ Squeak: Learn Programming With Robots စာအုပ္ကို အေျခခံ ထားတယ္။
7. BASIC
တကယ့္ ပ႐ိုဂရမ္းမင္းဘိုးေအ language ပါ။ ဘီလ္ဂိတ္စ္တို႔ လက္ေဆာ့ၿပီး စတင္ခဲ့တဲ့ ပ႐ိုဂရမ္းမင္း ဘာသာရပ္ေပါ့။ အဲဒီ language ကုိ အဖိုးတို႔ေခတ္ language လို႔ေျပာႏိုင္တယ္။ ခုထက္ထိ မိုက္ခ႐ိုေဆာ့ဖ္ က Small Basic for beginning developers (http://msdn.microsoft.com/en-us/beginner/ff384126.aspx) ဆိုၿပီး တင္ထားေပးေသးတယ္။

8. Ruby


ကေလးေတြကို ပ႐ိုဂရမ္းမင္းသင္ဖို႔ အေကာင္းဆံုး resource ေတြ Ruby မွာရွိေနတယ္။ အျခား language ေတြထက္လည္း လြယ္တယ္လို႔ေျပာၾကတယ္။ Ruby for kids (http://ruby4kids.com/ruby4kids) နဲ႔ RailsBridge (http://teachingkids.railsbridge.org/) ေတြမွာ ေလ့လာသင့္တယ္။

9. Python


လူငယ္ developer ေတြျဖစ္ေစခ်င္ရင္ Python ကို အႀကံျပဳခ်င္တယ္။ တကယ့္ကို ေရပန္းအစားဆံုးနဲ႔ လူႀကိဳက္အမ်ားဆံုး language ျဖစ္လာတယ္။ ေလ့လာခ်င္သူေတြအတြက္ LiveWires (http://www.livewires.org.uk/python/home) ကိုညႊန္ခ်င္တယ္။

10. PHP


PHP ကိုေတာ့ စတင္ေလ့လာတဲ့ကေလးေတြအတြက္ မညြန္းခ်င္ေသးဘူး။ Website ေတြကို ဖန္တီးခ်င္စိတ္ ရွိလာရင္ေတာ့ စတင္ေလ့လာဖို႔အေကာင္းဆံုးပဲ။ ခက္ေပမယ့္ စတင္ေလ့လာကတည္းက စိတ္၀င္စားရင္ သူ႔မွာလည္း ရလဒ္ေကာင္းေတြရွိတယ္။ ကေလးေတြအတြက္ PHP For Kids tutorial (http://www.phpforkids.com/) မွာ၀င္ၿပီးေလ့လာၾကည့္ဖို႔ တိုက္တြန္းခ်င္တယ္။

11. HTML and JavaScript


ကေလးေတြအတြက္ အေျခခံက်က်နဲ႔ ပ႐ိုဂရမ္းမင္းကို ေလ့က်င့္ေပးခ်င္တယ္ဆိုရင္ေတာ့ ေလ့လာခိုင္းဖို႔ အသင့္ဆံုး language ပါ။ Website ေတြကို ဖန္တီးဖို႔ အေျခခံက်က်တဲ့ language ေတြပါပဲ။ Waterbear (http://waterbearlang.com/) မွာ စိတ္၀င္စားစရာ ေကာင္းတဲ့ ျပကြက္ေတြနဲ႔ ေလ့လာႏိုင္သလို ပိုၿပီးေတာ့ က်ယ္ျပန္႔စြာ သိခ်င္ရင္ HTMLIsEasy.com (http://www.htmliseasy.com/javascript/index.html) မွာ ၀င္ၿပီးေလ့လာႏိုင္တယ္။
အျခားေလ့လာသင့္တဲ့ language ေတြကေတာ့ ML, Prolog, Haskell နဲ႔ REBOL ဆိုတာေတြရွိေသးတယ္။ သိပ္ၿပီးေထြျပား ကုန္မွာ စုိးရိမ္လို႔ မေျပာေတာ့ဘူး။ ၿပီးေတာ့ အျခား language ေတြေလာက္လည္း နာမည္ေတာ့ မႀကီးဘူး။ ခက္လည္း ခက္တာေၾကာင့္ လည္းပါတယ္။ Language တစ္ခုဆိုတာ တတ္ထားၿပီးရင္ ျပန္ၿပီး အသံုးခ်ႏိုင္တဲ့နယ္ပယ္ က်ယ္၀န္းမွ အဆင္ေျပႏိုင္ပါတယ္။

အျခားဆက္စပ္ ေလ့လာသင့္တဲ့၀န္းက်င္


အထက္မွာေဖာ္ျပခဲ့ တာေတြအျပင္ website ေတြမွာလည္း ေလ့လာစရာေတြ အမ်ားႀကီး ရွိတယ္။ အခ်ဳိ႕ေသာ ေလ့လာစရာေတြက application ေတြနဲ႔ပဲ တြဲပါလာတတ္တာေတြ လည္းရွိေသးတယ္။

1. MSDN Development for Beginners, Kid Corner


http://msdn.microsoft.com/en-us/beginner/bb308754.aspx
မ္ိုက္ခ႐ိုေဆာ့ဖ္က ကေလးေတြကိုသင္ဖို႔ဆိုၿပီးေတာ့ စိတ္၀င္စားစရာေကာင္းေအာင္ တင္ထားေပးတယ္။ သူ႔မွာေပးထားတဲ့ tutorial ေတြကို ေသေသခ်ာခ်ာေလ့လာသင့္ပါတယ္။

2. Teach Kids To Program


http://www.teachkidstoprogram.com/
ဒီ site ကေတာ့ ဂိမ္းေဆာ့ရင္းနဲ႔ ကေလးေတြ ပ႐ိုဂရမ္းမင္းကို စိတ္၀င္စားသြားေအာင္ စြမ္းေဆာင္ေပးသြား လိမ့္မယ္။
3. Alice
http://www.alice.org/
ကေလးေတြအတြက္ ေလ့လာဖို႔အသင့္ဆံုး ပ႐ိုဂရမ္းမင္း၀န္းက်င္တစ္ခုျဖစ္ပါတယ္။ အဲဒီမွာ Storytelling version (http://www.alice.org/kelleher/storytelling/index.html) ဆိုတာရွိတယ္။ အလယ္တန္း အဆင့္ေလာက္ပညာေရးနဲ႔ ဆက္စပ္ေပးဖို႔သင့္တယ္။ ဒီ version ဟာ အထက္တန္းနဲ႔ ေကာလိပ္အဆင့္ ေတြအတြက္ အမ်ားႀကီး အေထာက္အကူျပဳႏိုင္ပါတယ္။

4. Logo


Logo ကေတာ့ ေဟာင္းေနၿပီျဖစ္တဲ့ language တစ္ခုပါ။ ဒါေပမယ့္ သူလည္း ဟိုစပ္စပ္ သည္စပ္စပ္ေတာ့ ပါ၀င္ပတ္သက္ေနေသးတယ္။ Google မွာရွာရင္ tutorial ေတြအမ်ားႀကီးရႏိုင္ေသးတယ္။ Windows version (http://www.elica.net/site/index.html) နဲ႔ Mac version (http://www.terrapinlogo.com/) ဆိုၿပီး နွစ္မ်ဳိးေလ့လာႏိုင္တယ္။ LCSI Microworlds (http://www.microworlds.com/) မွာ စီးပြားျဖစ္ေအာင္ေလ့လာႏိုင္တဲ့့ အပိုင္းေတြအမ်ားႀကီးရွိတယ္။ အဆင့္ျမင့္ေလ့လာခ်င္သူေတြ လက္မလႊတ္သင့္တဲ့ site ေတြေပါ့။

5. Phrogram


http://phrogram.com/
ယခင္ကေတာ့ KPL (http://kidsprogramminglanguage.com/) လို႔လူသိမ်ားတယ္။ သူလည္း ေလ့လာသင့္တဲ့ အ၀န္းအ၀ိုင္းထဲမွာ ပါတယ္။ ကေလးေတြကို .NET အဆင့္အထိေရာက္ေအာင္ဆြဲေခၚသြားႏိုင္တဲ့ language တစ္ခုလို႔ဆိုႏိုင္တယ္။

6. Scratch


http://scratch.mit.edu/
MIT Media Lab မွာရွိတဲ့ Lifelong Kindergarten Group ကေနၿပီးေတာ့ တီထြင္ထားတဲ့ language ျဖစ္ပါ တယ္။ သူ႔မွာ ဇာတ္လမ္းဆင္ထားတာေတြ၊ animation ေတြ၊ ဂိမ္းေတြအစံုထည့္ေပးထားတယ္။ သိစရာ ေလ့လာမွတ္သားစရာ information ေတြနဲ႔ tutorial ေတြအမ်ားႀကီးေလ့လာႏိုင္တယ္။

7. Colobot (Colonize With Bots)


http://www.ceebot.com/colobot/index-e.php
စိတ္၀င္စားစရာ ဂိတ္းတစ္ခုပါပဲ။ Wikipedia page (http://en.wikipedia.org/wiki/Colobot) မွာေတာ့ ပညာေရးဆိုင္ရာ ပညာေပးဂိမ္းလို႔ေဖာ္ျပထားတယ္။ ဘာေၾကာင့္လဲဆိုေတာ့ ကစားသူက သူ႔စက္႐ုပ္ေတြကို ပ႐ိုဂရမ္းမင္း langauge သံုးမွ ခိုင္းလို႔ရပါတယ္။ အဲဒီဂိမ္းမွာသံုးတဲ့ ပ႐ိုဂရမ္းမင္းေတြက C++ သို႔မဟုတ္ Java language ေတြနဲ႔တူတယ္။
8. Terrarium
http://terrarium2.codeplex.com/
သူလည္း ဂရပ္ဖစ္ဒီဇိုင္းေတြ ဂိမ္းေတြနဲ႔ဆင္ယင္ထားၿပီး .NET အတြက္ အမ်ားႀကီးအေထာက္အကူျပဳႏိုင္ တယ္။ သူကေတာ့ ကေလးေတြအတြက္ရည္စူးလုပ္ထားတာေတာ့ မဟုတ္ဘူး။ ဒါေပမယ့္ .NET လိုင္းကို သြားခ်င္ရင္ေတာ့ ေလ့လာသင့္တဲ့ site ေလးတစ္ခုျဖစ္တယ္။

9. Lego Mindstorms


http://mindstorms.lego.com/
စက္႐ုပ္ေတြကို ထိန္းခ်ဳပ္ရာမွာ ပ႐ိုဂရမ္းမင္း language နဲ႔ထိန္းခ်ဳပ္မွရတယ္။ ဒီလိုထိန္းခ်ဳပ္ႏိုင္တဲ့ source ေတြ၊ information ေတြအမ်ားႀကီးကို ဒီမွာေလ့လာနိုင္တယ္။ စိတ္၀င္စားစရာေကာင္းပါတယ္။

10. Stagecast Creator


http://www.stagecast.com/
လူငယ္ေတြ မၾကာမၾကာ၀င္ၿပီးေလ့လာသင့္တဲ့ site လို႔ ညႊန္းခ်င္ပါတယ္။ ငယ္ရြယ္တဲ့ကေလးေတြအတြက္ ပိုၿပီး ညႊန္းခ်င္တယ္။ ကိုယ္တိုင္ ဂိမ္းေတြကို ႀကိဳက္တဲ့ ၀န္းက်င္တစ္ခုနဲ႔တည္ေဆာက္ၿပီး ဖန္တီးႏိုင္လို႔ ေပ်ာ္စရာေကာင္းတဲ့ site ေလးတစ္ခုလို႔့ဆိုႏိုင္တယ္။

11. ToonTalk


http://www.toontalk.com/
“ပ႐ိုဂရမ္းမင္းဆိုတာ ကေလးကစားစရာ” ဆိုၿပီး စီစဥ္ထားတဲ့ site ျဖစ္တယ္။ အထူးျပဳလုပ္ခ်က္ animation ေတြနဲ႔ ကေလးေတြကို ေမးခြန္းေလးေတြ ေျဖခိုင္းသြားတယ္။ ဘာသာမ်ဳိးစံုနဲ႔ ေလ့လာနိုင္ေအာင္လည္း စီစဥ္ေပးထားေသးတယ္။

12. GameMaker


http://www.yoyogames.com/gamemaker/windows
ကေလးေတြအတြက္ ဦးတည္ထားတဲ့ site ေတာ့မဟုတ္ပါဘူး။ ဂိမ္းကိုတည္ေဆာက္တဲ့ application ျဖစ္ပါ တယ္။ ပ႐ိုဂရမ္းမင္းဆိုၿပီး code ေတြေရးဖို႔လည္း မလိုပါဘူး။ Code ကိုအေျခမခံတဲ့ ပ႐ိုဂရမ္မင္း language လို႔ဆိုႏိုင္တယ္။ ကေလးေတြဂိမ္းကို စိတ္၀င္စားရင္ အဆင့္ျမႇင့္ေလ့လာခိုင္းသင့္တဲ့ site အျဖစ္ေတာ့ ညႊန္းခ်င္ပါတယ္။

13. Inform


http://inform7.com/
Code ေတြကိုေလ့လာခ်င္တယ္ဆိုရင္ေတာ့ အလြယ္ကူဆံုး ေလ့လာသင္ယူႏိုင္ပါလိမ့္မယ္။ Code ေတြကို သာမန္ language ကေန အဆင့္ဆင့္ ဇာတ္လမ္းေလးေရးသြားသလို ေလ့လာႏိုင္တဲ့ site ျဖစ္ပါတယ္။

14. Learn to Program


ဒါကေတာ့ စာအုပ္ပါ။ ေရးသူက Chris Pine ျဖစ္ၿပီး အႀကိမ္ႀကိမ္ဖတ္ၿပီးေလ့လာခ်င္သူေတြအတြက္ အခြင့္အလမ္း ေကာင္းျဖစ္ႏိုင္ ပါတယ္။ အမွန္တကယ္ေလ့လာမယ္ဆိုရင္ site ေတြအမ်ားႀကီးရွိႏိုင္ပါေသးတယ္။ ေလ့လာစရာေတြကေတာ့ လိုက္ေလေပးေလ လို႔ဆိုရမလားေတာင္ မသိဘူး။ ကေလးလိုစၿပီး ေလ့လာခ်င္တဲ့ လူႀကီးေတြအတြက္ပါ ပ႐ိုဂရမ္းမင္းဆိုတာ မခက္ပါဘူးလို႔ အားလံုးက ညႊန္းဆိုၾကပါလိမ့္မယ္။ စိတ္၀င္စားရင္ ကေလးလည္း ေလ့လာ၊ လူႀကီးလည္းလိုက္စား အက်ဳိးမ်ားႏိုင္ပါတယ္။
credit:- http://www.maukkha.org

Monday 11 February 2013

Gmail Password အခိုးခံရျခင္းႏွင့္ Disable အေၾကာင္း

ဒါက ေအာင္ေအာင္(မကစ) ဆီကယူထားတာပါ။ ဒါက နည္းေဟာင္းေလးပါ။ ခုထက္ထိ အသံုး၀င္ေသးပါတယ္။ နည္းနည္းပံုစံေျပာင္းတာကလြဲလို႕ေပါ့။
http://pyae-phyo.blogspot.com
အခုေျဖရွင္းေပးေနရတဲ့ျပသနာေလးေတြပါ
တစ္ေယာက္လာပီးေျပာသြားလိုက္ ႏွစ္ေယာက္လာပီးေျပာသြားလိုက္နဲ႕ နဲ႕မလို႔ပါ တစ္ေယာက္လာေျပာပ်ံပီ အေကာင့္သူမ်ားခိုးသြားလို႔တဲ့ တကယ္တမ္းေတာ့ ကိုယ့္အေကာင့္ကို ဘယ္သူမွမခိုးပါဘူး ခိုးပီးေတာ့ေကာဘာလုပ္မွာလည္း တစ္ခ်ိဳ႕ကေတာ့ ေထာက္ေခ်ာက္ဆင္တက္ၾကတယ္ အဲ့ဒါကေတာ့ Gmail အတုေတြရယ္ Mail ထဲ၀င္လာတဲ့ Mail ကို Recover လုပ္မလားဆိုတဲ့ေမးကို သြားဖြင့္ပီးေတာ့ UserName နဲ႕ Password ကိုထည့္ေပးလိုက္လို႔ျဖစ္ပါတယ္
ေနာက္တစ္ခုကေတာ့ KeyLogger ကိုစက္ထည္းသြင္းထားလို႔ျဖစ္ပါတယ္ တကယ္တမ္းေတာ့ အဲ့ဒါေတြအားလံုးဟာ အလွဴလာခံၾကတယ္လို႔ပဲေျပာရမွာေပါ့ (User Name နဲ႕ Password အလွဴခံသည္)အဲ့လိုေအာ္ပီးေတာ့ကို၀င္လာၾကတာပါ

ကိုယ့္က သြားလွဴလိုက္ေတာ့ ပါသြားတာေပါ့ေလ ဟိဟိ ေျပာတဲ့လူေတြမ်ားလာေတာ့လည္း မေရးမဖစ္ေရးမွရေတာ့မွာမလို႔ ေရးပါေတာ့မယ္ ။
အေကာင့္ကေပ်ာက္တာမဟုတ္ပါဘူး ခိုးခံရတာလည္းမဟုတ္ပါဘူး သူငယ္ခ်င္းကိုယ္တိုင္က လိုက္လိုက္လဲလဲ ေပးမိလိုက္တာပါ
အဲ့ဒါကို သူငယ္ခ်င္းကိုတိုင္က မသိလိုက္တာပါ တစ္ခ်ိဳ႕ေတြကပိတ္ဖို႔ေမ့ခဲ့ၾကတာပါ Gmail ပိတ္ဖို႔ေမ့ခဲ့ရင္ေတာ့ျဖင့္(သို႔မဟုတ္)Remember ေပးထားတာပဲျဖစ္ျဖစ္ Browser ထဲမွက်န္ခဲ့တက္ပါတယ္
Gtalk ပိတ္ဖို႕ေမ့သြားရင္ေတာ့ ယူတဲ့သူကလြယ္လြယ္နဲ႕ေတာ့ ယူလို႔မရပါဘူး ဒါေပမယ့္ယူလို႔ရပါတယ္ Password See Software ေတြရယ္ Gtalk Password Recover Software ေတြကိုအသံုးျပဳရပါတယ္ Password See Software ကိုအသံုးျပဳမယ္ဆိုရင္ျဖင့္ တစ္ခါ တစ္ခါ ကြန္နရွင္က်ခဲ့ရင္ Gtalk ကေအာ္တိုျပန္ေအာက္သြားပါတယ္ UserName နဲ႕ Password ျပန္ေပၚလာပါတယ္ အဲ့အခ်ိန္မွာ Password See Software တစ္ခုခုကို Gtalk ေပၚမွာေထာက္လိုက္တာနဲ႕ Password ကိုေတြ႕ရပါတယ္ ကြန္နရွင္မက်မခ်င္းထိုင္ေစာင့္ပီးေတာ့ ယူမွရမွာေပါ့လို႔ စဥ္းစားမိပါလိမ့္မယ္ ဒါေပမယ့္ My Network Place ကေန Disable ေပးလိုက္ရင္ ကြန္နရွင္က်တာနဲကတူတူပါပဲ ေနာက္တစ္ခုကို Gtalk Proxy ကို မရွိတဲ့ Proxy တစ္ခုခုေရွာက္ထည့္လိုက္ရင္လည္း ကြန္နရွင္က်သြားတာနဲ႕အတူတူပါပဲ
Gtalk Password Recover Software ကိုသံုးတာကေတာ့ အဲ့ Software ေတြမွာ Scan ဖတ္တာပါပါတယ္ ေလာေလာဆယ္ဖြင့္ထားတဲ့ Gtalk အေကာင့္က Password ကို Scan ဖတ္ပီးေတာ့ယူသြားပါတယ္ အဲ့ဒါကေတာ့ပိုလြယ္တာေပါ့ တစ္ခ်ိဳ႕ဆိုရင္ ၾကိဳတင္စည္စဥ္လာၾကတယ္ေလ အဲ့ Software ေလးေတြကို Portable Version အျဖစ္ေျပာင္းလဲလာပါတယ္ ပီးေတာ့ ကြန္ပ်ဴတာနားမွာ စတစ္ေလးထိုးပီးေတာ့ ယူသြားယံုပဲေပါ့ ဒါကသူငယ္ခ်င္းကိုယ္တိုင္လွဴခဲ့လို႔ပါ ဟိုတစ္ေယာက္ကလည္း ဒါနေျမာက္ေအာင္ယူသြားတာေပါ့ေလ ဒါေပမယ့္ အဲ့ရန္ေတြကို ၾကိဳတင္ကာကြယ္ဖို႔ ေအာက္မွာေမွာ္ေမွာ္ေရးေပးမယ္ေနာ္ အဲ့ဆိုရင္ ေအးေဆးပဲ ခဏလွဴလိုက္မယ္ ပီးေတာ့ျပန္ယူမယ္ မီးကိုကစားကမေကာင္းဘူးလို႔ေတာ့ေျပာျခင္တယ္ေနာ္ ဘာေၾကာင့္လည္းဆိုေတာ့ ကိုယ့္ထပ္ေတာ္တဲ့သူ တက္တဲ့သူေတြ အမ်ားအျပားရွိသလို ကိုယ္ေလာက္မတက္ခဲ့ရင္လည္း ေရွာက္ဆဲခဲ့ ေမးေတြေရွာက္ျဖတ္ခဲ့ရယ္ ဘယ္လိုလုပ္မလည္း ပီးေတာ့ အေကာင့္ကို ျပန္မရခဲ့ရင္ေမွာ္ေမွာ္ကေတာ့ ေတာ့တာ၀န္ယူဘူးေနာ္ တစ္ခ်ိဳ႕ေတြက မဆင္မျခင္ဖြင့္လိုက္တာပါ ဥပမာေနရာႏွစ္ခု ကိုတစ္ျပိဳင္တည္းဖြင့္သလိုျဖစ္သြားတာေပါ့ freedom Software ေလးကိုသံုးဖူးၾကရင္ေတာ့သိမွာပါ ဒါေပမယ့္ တစ္ခ်ိဳ႕က Freedom ကိုသံုးပီးပတ္မသြားပါဘူး ဒါေၾကာင့္ေနာက္လူက လာပီးသူ႕အေကာင့္ကို ဖြင့္လိုက္တာနဲ႕ Disable ျဖစ္ေရာေလ ဘာေၾကာင့္လည္းဆိုေတာ့ Freedom ကသူမ်ားႏိုင္ငံ proxy ကိုသံုးတာပါ ဥပမာ US Proxy ကိုသံုးတယ္ထား User တစ္ေယာက္က တျခားဆိုင္မွာ ျမန္မာ Proxy နဲ႕သံုးလာပါတယ္ ပီးေတာ့ ဒီဆိုင္မွာ US Proxy ကိုသံုးမိလိုက္တယ္ အဲ့ေတာ့ဘာျဖစ္သြားလည္း အဲ့အေကာင့္က ခုနက ျမန္မာမွာ အခုခ်က္ျခင္းပဲ US ကိုေရာက္ေနတယ္ ဆိုေတာ့ Google Server ကမယံုတင္ကာျဖစ္ပီးေတာ့ ျဖတ္လိုက္တာေပါ့ အဲ့ဒါနဲ႕ အေကာင့္ေလးက ပ်က္သြားေရာေပါ့ အကယ္၍ သံုးျခင္တယ္ဆိုရင္ေပါ့ Proxy ႏွစ္ခု အေျပာင္းအလဲလုပ္မယ္ဆိုရင္ အနည္းဆံုး ႏွစ္နာရီျခားပါ ပီးေတာ့ Gmail အတုနဲ႕ေတြ႕လိုက္ရင္ေတာ့ Password ပါသြားတာေပါ့ တကယ္တမ္းေတာ့ Gmail မွာ Password ကအဓိကလံုျခံဳေရးစနစ္မဟုတ္ပါဘူး လံုျခံဳေရးစနစ္အဓိက သံုးခုရွိပါတယ္ ေအာက္မွာေျပာျပသြားပါမယ္ Gmail Password ေပ်ာက္သြားလို႔ Gmail အေကာင့္တစ္ခုဆံုးရႈံးသြားပီလို႔မထင္လိုက္ပါနဲ႕ ျပန္ယူလို႔ရပါတယ္ ျပန္ယူနည္းသံုးနည္းရွိပါတယ္ အဲ့ဒါကိုလည္းေျပာျပပါမယ္ Disable ျဖစ္သြားခဲ့ရင္ေတာ့ 24 နာရီေစာင့္ၾကည့္လိုက္ပါ ပီးရင္ ျပန္ဖြင့္ၾကည့္ပါမရလွ်င္ ေနာက္ဆံုးတစ္နည္းေတာ့က်န္ပါေသးတယ္ ရမရေတာ့အာမမခံပါဘူး ဘာေၾကာင့္လည္းဆိုေတာ့ ေမွာ္ေမွာ္ စမ္းတာ တစ္ခ်ိဳ႕အေကာင့္ေတြ ျပန္မရခဲ့ပါဘူး တစ္ခ်ိဳ႕အေကာင့္ေတြေတာ့ လြယ္လြယ္နဲ႕ျပန္ရပါတယ္ ကဲသင္ခန္းစာေလးစလိုက္ရေအာင္
Gmail Recover လုပ္ထားပါ
ဘာေၾကာင့္လည္းဆိုေတာ့ Password ျပန္ယူရာမွာ Recover မလုပ္ထားပါက ျပန္ယူလို႔ရမယ္မဟုတ္ပါ အဲ့ဒါေၾကာင့္အရင္ဆံုးကာကြယ္နည္းကို ေျပျပပါမယ္ အျခားေမးေတြ အေကာင့္ေတြမွာလည္း Recover ဆိ္ုတာရွိၾကပါတယ္ သူ႕နည္းနဲ႕သူေပါ့ Gmail Recover လုပ္နည္းသံုးနည္းကိုေျပာျပပါမယ္ အဲ့ဒါေတြက တကယ္တမ္းေတာ့ အေကာင့္စလုပ္ကတည္းကလုပ္ထားရမွာပါ ဒါေပမယ့္ အေကာင့္ရွိပီးသားသူေတြအတြက္ အရင္ေရးေပးပါမယ္ ဘာေၾကာင့္လည္းဆိုေတာ့ အေကာင့္အသစ္လုပ္ရန္အလြန္ခတ္ခဲသြားပီျဖစ္ေသာေၾကာင့္ျဖစ္သည္
Gmail Recover လုပ္နည္း
အျခား Gmail အေကာင့္ႏွင့္ Recover လုပ္တာျဖစ္ပါတယ္ ဒါေပမယ့္ အေကာင့္ႏွစ္ခုရွိတဲ့သူမ်ားအတြက္ပိုအဆင္ေျပပါတယ္ ဘာေၾကာင့္လည္းဆိုေတာ့ လူ႕စိတ္ကေမ်ာက္စိတ္လိုပဲေလ သူမ်ားအေကာင့္ကို Recover ေပးထားမိရင္ ျဖတ္လိုက္ပါ အဲ့ Recover ေပးခံထားရတဲ့အေကာင့္ပိုင္ရွင္က သူငယ္ခ်င္းတို႕အေကာင့္ကို အခ်ိန္မေရႊး တစ္ေရးႏိုးထပီးေတာ့ Password ကိုေျပာင္းပစ္လို႔ရပါတယ္ အေကာင့္ႏွစ္ခုပိုင္ထားသူမ်ားကေတာ့ အေကာင့္အခ်င္းခ်င္း Recover ေပးထားလို႔ရပါတယ္ အဲ့ဒါအဆင္ေျပတာေပါ့ Gmail ကိုအရင္ဖြင့္လုိက္ပါ ပီးရင္ Setting >> Accounts and Import >> Google Account Settings ကိုႏွိပ္လိုက္ပါ အဲ့ဆို ေအာက္ကပံုအတိုင္းေပၚလာမွာျဖစ္ပါသည္

http://pyae-phyo.blogspot.com

http://pyae-phyo.blogspot.com
အဲ့နားမွာ Your recovery email adresses: နားက Edit ကိုႏွပ္ပီး သူငယ္ခ်င္း Recover လုပ္မယ့္ေမးကို ထည့္လိုက္ပါ ပီးရင္ Security question ကိုပါျပင္ပါမယ္ ေအာက္နားက Edit ကိုႏွိပ္ပီး ၾကိဳက္တာျပင္လို႔ရပါတယ္ ဥပမာ ေမခြန္းက What is your father's middle name ထားလိုက္ အေျဖကို I go to school hehehe 12345 အဲ့လိုေရွာက္ေျဖလို႔ရပါတယ္ အဲ့ေတာ့ မွန္းရခတ္တဲ့ တာေပါ့ အဲ့ေတာ့ပိုလံုျခံဳတယ္ေလ တစ္ခုၾကားျဖတ္ေျပာမယ္ေနာ္ Gmail Password ေပးမယ္ဆိုရင္ ျမိဳ႕နာမည္ တို႔ ေမြးေန႔တုိ႕ ကိုယ့္နာမည္တို႔ကို မေပးတာေကာင္းပါတယ္ ပီးေတာ့ နံပါတယ္ ေတြေပါ့ ဥပမာ တစ္ခုေပးျပမယ္ေနာ္ 123hell0he44y749 အဲ့လို ေပါက္တက္ကရေပးတာ ေကာင္းပါတယ္ Password Creaker Software ေတြကို လွည့္စားတဲ့သေဘာေပါ့ အဲ့လိုေပးရင္ Password Creaker Software တို႔ Web Mail hack Software တို႕ကေကာင္းေကာင္းအလုပ္မလုပ္ေပးႏိုင္ေတာ့ ပိုပီးလႈံျခံဳတာေပါ့ေလ ပီးေတာ့ တစ္လံုးျခင္းအဓိပါယ္ရွိတဲ့စာလံုးေတြ everything အဲ့လိုေတြမေပးသင့္ပါဘူး ဘာေၾကာင့္လည္းဆိုေတာ့ Password Creaker Software တစ္ခ်ိဳ႕က Dictionary ေတြနဲ႕တိုက္စစ္လို႔ရတယ္ေလ အဲ့ေတာ့ ခ်က္ခ်င္း Password ကိုသိသြားေရာေပါ့ ေျပာရင္နဲ႕ဘယ္ေရာက္သြားလည္းသိ၀ူး အေပၚကျပန္ဖတ္လိုက္ဦးမယ္ မွန္မိပီ အကုန္ပီးရင္ Save လိုက္ပါ အဲ့ဆိုရင္ Recover လုပ္ငန္းပီးဆံုးသြားပါပီ အဲ့ဒါက အေကာင့္ကို Recover လုပ္နည္းႏွစ္နည္းပါ ေနာက္တစ္နည္ကေတာ့ ေနာက္ပိုစ္တစ္ခုမွာေရးေပးပါမယ္ Password ျပန္ယူတဲ့နည္းေကာေပါ့ ေမွာ္ေမွာ္ေမာပီ ဆက္ရန္ ဟယ္ဟယ္ ကိုရီးယားဇတ္လမ္းတြဲေတာ့ဟုတ္၀ူးေနာ္ တစ္ခုေလာက္ေတာ့ေၾကာ္ဌွာ၀င္ထားမွရမယ္ Gmail ကိုတစ္ကမာၻလံုးသံုးေနတာပါ သူမ်ားႏိုင္ငံကဘာမွကိုမျဖစ္ပါဘူး ျမန္မာႏိုင့္ငံကပဲ ဟက္ခံရတာနဲ႕ ဘာနဲ႕ညာနဲ႕ဆိုေတာ့ ျမန္မာက ဟက္ကာေတြ ခရက္ကာေတြက သူမ်ားႏိုင္ငံထပ္ပိုေတာ္တယ္ထင္တယ္ေနာ္ အဲ့ဒါေလးပါ ေျဖေပးခဲေနာ့ က်န္တာေတာ့ ေနာက္ပိုစ္တစ္ခုနဲ႕ဆက္ေရးေပးမွာပါ ေနာ္အရင္ပိုစ့္ကအတိုင္း Recover လုပ္ပီးပါက ျပန္ယူလို႔ရပါတယ္
ျပန္ယူမယ္ဆိုရင္ အရင္ဆံုး Gmail Signin လုပ္မယ့္ေနရာကို
သြားလိုက္ပါ ပိးေတာ့ Signin ၀င္မယ့္ေအာက္နားေလးမွာ

http://pyae-phyo.blogspot.com
 Can't access your account? ဆိုတာေလးကိုႏွိပ္လိုက္ပါ
အဲ့နားေရာက္ရင္ Email address ဆိုတာကို ေတြ႔ရပါလိမ့္မယ္
သူငယ္ခ်င္းရဲ႕ Gmail address ကိုရိုက္ထည့္လိုက္ပါ ပီးရင္
Submit ကိုႏွိပ္လိုက္ပါ
စာလံဳးေလးပံုတူရိုက္ခိုင္းတာေပၚလာပါလိမ့္မယ္ ရိုက္ေပးလိုက္ပါ

http://pyae-phyo.blogspot.com
အဲ့ေအာက္ေရာက္ရင္ Email to ******@g*****.com
ဆိုတာက သူငယ္ခ်င္းရဲ႕ password အသစ္ကိုေျပာင္းလို႔ရမယ့္လင့္ကို Recover
ေပးထားတဲ့ေမးထဲသို႔ပို႔ေပးမွာျဖစ္ပါသည္ အဲ့ဒါကို
လစ္ေပးပီးေတာ့ Continue ကိုႏွိပ္လုိက္တာနဲ႕ Recover mail
ထဲကိုေရာက္သြားပါလိမ့္မယ္ ဒုတိယတစ္ေၾကာင္း Answer your
security question ကေတာ့ Password ကို အရင္ေပးထားတဲ့
Security Quertion နဲ႕အသစ္ကိုေျပာင္းတာျဖစ္ပါတယ္
ကလစ္ေလးေပးပီးေတာ့ Continue ကိုႏွိပ္လို္ကတာႏွင့္
အေျဖထည့္ေပးရမယ့္ Box ေလးက်လာပါလိမ့္မယ္
ထည့္ေပးပီးေတာ့ Continue ႏွိပ္လိုက္တာနဲ႕ Password
အသစ္ကိုေျပာင္းလို႔ရမွာျဖစ္ပါတယ္
တတိယတစ္ေၾကာင္း အလြန္အေရးၾကီးပါသည္ သူရဲ႕ လုပ္ႏိုင္စြမ္းရည္ေတာ္ေတာ္ျမင့္ပါသည္ အဆံုးအထိေတာ့ဖတ္လိုက္ပါ လို႔ေမွာ္ေမွာ္ေျပာပါရေစ I no
longer have access to these ဆိုတာေလးကို
ကလစ္ေလးေပးပီးေတာ့ Conitinue ကိုႏွိပ္လိုက္ပါ ေအာက္မွာျပထားတဲ့ Box ေလးတစ္ခုက်လာပါလိမ့္မည္


http://pyae-phyo.blogspot.com
ဒါဟာေနာက္ဆံုးေမွ်ာ္လင့္ခ်က္ပါပဲ
အေပၚနည္းေတြမေအာင္ျမင္ခဲ့ဘူး ဆိုရင္ ဒီနည္းေလးကေတာ့
ေအာင္ျမင္မွာပါ မေအာင္ျမင္ေတာ့ သူငယ္ခ်င္းေမးေလးကို
လြတ္သာလြတ္လိုက္ေတာ့ေပါ့ေနာ္ တစ္ခုရွိပါတယ္ Disable
ျဖစ္သြားတဲ့ေမး တစ္ခ်ို႕ကို သည္နည္းေလးနဲ႕ယူလို႔ရႏိုင္ပါတယ္ အကယ္၍ မက်လာခဲ့ဘူးဆိုရင္ေတာ့
ဒါေလးက အဲ့ပိုစ္ကို သြားမယ့္လင့္ေလးပါ ႏွိပ္လိုက္ပါ
အဲ့ဒါမွမက်လာေသးဘူးဆိုရင္ 24 နာရီေစာင့္ရမွာျဖစ္ပါသည္ အမွန္တစ္ကယ္က ကထမနည္းကို စမ္းပီးရင္ 24 နာရီးေစာင့္ပီးမွာ ဒုတိယနည္းကို စမ္းပါ ဒုတိယနည္းနဲ႕ တတိယနည္းလည္း 24 နာရီျခားပါ မျခားခဲ့ဘူးဆိုရင္ ကံဆိုးရင္ ေတာ့ ေမးေလးက disable ျဖစ္သြားတက္ပါတယ္ အဲ့ဆိုရင္ေတာ့ ေမးကို ဆံုးရႈံးသြားမွာျဖစ္ပါတယ္
ပထမဆံုးက ကိုယ္သူငယ္ခ်င္းရဲ႕ေမးတစ္ခုခုကို ခနငွားပီးေတာ့ An
email adress we can use to contact you*
ဆိုတဲ႕အကြက္ေလးထဲမွာ ထည့္လိုပ္ပါ အဲ့ေမးကို သူက Password
ေျပာင္းမယ့္ လင့္ကိုပို႔ေပးမွာျဖစ္ပါသည္ ပီးရင္ ေအာက္နားေလးက
I am unable to reset my password ဆိုတာေလးကို
ကလစ္ေပးလိုက္ပါ ပီးရင္ေအာက္ကိုဆက္ဆင္းသြားပါ Product
information ေအာက္နားက Do you use Gmail with this
account?* ဆိုတဲ႕ေနရာမွာ Yes ကိုေရႊးေပးလိုက္ပါ ပီးရင္
ေအာက္နားမွာ အကြက္ေလးေတြထပ္ထြက္လာပါလိမ့္မယ္
အဲ့နားမွာ ကိုေပ်ာက္သြားတဲ့ေမးလိပ္စာကိုထည့္လိုက္ပါ ပီးလွ်င္ ေအာက္နားမွာ Do you have a verification code? ဆိုတာေလးေပါ့ အဲ့ဒါကအေကာင့္လုပ္ကတည္းက recover mail ေပးပီးေတာ့ လုပ္ထားမွရပါတယ္ အဲ့ကုတ္ေလးကို သိရင္ေတာ့ ထည့္ေပးလိုက္ေပါ့ မသိရင္လည္း ထားခဲ့လို႔ရပါတယ္ ပီးလွ်င္ Email adresses of up to five frequently emailed contacts: ဆိုတဲ႕ေနရာမွာ ကိုယ့္အေကာင့္ လုပ္တုန္းက ထိပ္ဆံု အပ္တဲ့သူ သို႕မဟုတ္ ထိပ္ဆံုးေမးပို႔ တဲ့သူ တစ္ေယာက္ရဲ႕ အေကာင့္ကို ထည့္ေပးရမွာျဖစ္ပါတယ္
ပီးရင္ Other account information ဆိုတာေလးကိုေျဖရပါမယ္
Account creation date* အေကာင့္ လုပ္ခဲ့တဲ႕ လနဲ႕ႏွစ္ကို ထည့္ေပးလိုက္ပါ ပီးရင္ Last successful login date ဆိုတာက ေနာက္ဆံုး ဖြင့္ခဲ့တဲ့ေန႔ကို ထည့္ေပးရပါမယ္ အတိအက်ထည့္ေပးရပါမယ္ မသိရင္ေတာ့ ထားခဲ့လိုက္ပါ ပီးရင္ password အေဟာင္းကို last password you remember* အဲ့အကြက္ေလးထဲမွာထည့္ေပးလိုက္ပါ ပီးရင္ Submit ကိုႏွိပ္လိုက္ပါ နည္းနည္းေလးၾကာရင္ေတာ့ သင္ ထိပ္ဆံုးမွာထည့္ထားတဲ့ေမးထဲကို Password အသစ္ေျပာင္းမယ္ လင့္ေလးေရာက္လာပါလိမ့္မယ္ အဲ့မွာေျပာင္းလိုက္ရင္ အဆင္ေျပသြားပါပီ ဒီနည္းေလးက ကိုယ့္အေကာင့္ အခိုးခံရသူေတြအတြက္ လုပ္ရတာအဆင္ေျပပါတယ္ ဘာလို႔လည္းဆိုေတာ့ ကိုယ္ပဲသိႏိုင္တဲ့အခ်က္အလက္ေတြပဲျဖစ္လို႔ပါ ဒါေလးကိုမွတ္ထားလိုက္ပါ တစ္ခ်ိဳ႕ေတြက အေကာင့္ကို ခိုးပီးေတာ့ recover mail ျပင္လိုက္မယ္ sercurity question ေတြျပင္လိုက္မယ္ဆိုရင္ ေတာ့ မရေတာ့ဘူး ဆိုပီးစိတ္ဓာတ္ေတာ့မက်လိုက္ပါနဲ႕ ဒီတတိယနည္းကို ေကာင္းေကာင္း သိထားမယ္ဆိုရင္ ၾကိဳက္တဲ့ ဟက္ကာလာ ၾကိဳက္တဲ့ ခရပ္ကာလာ ဘာမွကိုေၾကာက္စရာမလိုဘူး ဘာလို႔လည္ းဆိုေတာ့ သူတို႕က ဒါေတြကိုမမျပင္ႏိုင္တာ ျပင္ႏိုင္တဲ့ ခရပ္ကာဆိုရင္ေတာ့တစ္မ်ိဳးေပါ့ေလ ဒါေပမယ့္ သူတို႔ျပင္သည္ထားအံုး လုပ္လို႔ရပါေသးတယ္ ျပသနာမရွိပါဘူး Gmail Password ေမ့ျခင္းႏွင့္ အခိုးခံရျခင္း အႏ ၱရာယ္မွ လြတ္ကင္းႏိုင္ၾကပါေစ လို႔ ဆုေတာင္းရင္း ... အိပ္ေပ်ာ္သြားပါပီ ဟိဟိ

 ဦးဦးေမွာ္ဆ၇ာ


credit : aungsanmks.blogspot.com

Sunday 10 February 2013

စြမ္းေဆာင္ရည္ ျမင့္မားသည့္ Archos 97 Titanium HD အမ်ိဳးအစား TABLET

http://pyae-phyo.blogspot.com

Archos 97 Titanium HD Tablet အမ်ိဳးအစားသည္ ေနာက္ဆုံး ထုတ္လုပ္လိုက္သည့္ Tablet အမ်ိဳးအစား ျဖစ္သည္။
9.7 လက္မ အရြယ္အစား ရွိသည့္ ယင္း Tablet ၏ ကိုယ္ထည္္ကို Aluminium သတၱဳ အေျပာင္စားျဖင့္ ျပဳလုပ္ထားရွိျပီး OS တြင္ window 4.1 ဗားရွင္း အမ်ိဳးအစားကို အသုံးျပဳထားသည္။

HD Videos ႏွင့္ ဓာတ္ပံုမ်ား အေကာင္းဆုံး ႐ုပ္သံၾကည္လင္မႈ ရရွိေစရန္ အတြက္ (2048 x 1536) Resolution ႏွင့္ IPS Panel ကို အသံုးေပးထားေသာေၾကာင့္ iPad ပံုစံမ်ိဳးလည္း ျဖစ္သည္။ RAM တြင္လည္း 1 GB အထိ တပ္ဆင္ေပးထားျပီး internal Memory ကို 8 GB အထိ ထည့္သြင္း ေပးထားကာ Card Slot တြင္ Micro SD ကို 64 GB အထိ တိုးျမင့္ႏိုင္မည္ ျဖစ္သည္။ ယင္း Tablet တြင္ပါရွိေသာ Camera တြင္လည္း Rear Camera မွာ 5 Migapixel ႏွင့္ Front Camera တြင္ 2 Migapixel တပ္ဆင္ေပးထားသည္။ အဆိုပါ Archos 97 Titanium HD Tablet အမ်ိဳးအစားကို အေမရိကန္ ေဒၚလာ ၂၄၉ ျဖင့္ ေရာင္းခ်မည္ ျဖစ္သည္။

Sources; CNET

Saturday 9 February 2013

Apple 4S သံုးဆြဲသူမ်ားကို iOS 6.1 သို႕မေျပာင္းေအာင္ Vodafone ကသတိေပး

http://myanmartechnews.blogspot.com
iOS 6.1 ထြက္တာမွ သိပ္မၾကာေသးပါဘူး။ အခက္အခဲအမ်ိဳးမ်ိဳးရွိတဲ့ iOS 6.1 လို႕ ႏုိင္ငံတကာ ကပါ ဆိုလာပါၿပီ။ ေနာက္ဆံုးေပၚလို႕ေျပာသံပါပဲ။ လြန္ခဲ့တဲ့ ၁ပတ္က iOS 6.1 ထြက္လာၿပီး ပံုစံအသစ္ေတြေျပာင္းလာတယ္ဆိုတာပဲ။ ျပႆနာကေတာ့ Vodafone 3G Network မွာပါ။

Vodafone ကုမၸဏီ က Apple ကုမၸဏီ ကိုစြပ္ဆြဲပါတယ္။ Mobile ကြ်မ္းက်င္သူကေတာ့ iOS 6.1 ဟာလံုး၀၀အလုပ္မလုပ္ပါဘူးဆုိတဲ့ စကားပါပဲ။ Apple ကေတာ့ ေနာက္ပိုင္း iOS 6.1 ကို iPhone 4S မွာသြားၿပီး version မျမင္ဖို႕ အာမခံလိုက္ပါတယ္။

iOS 6.1 သံုးဆြဲေသာ ညီကိုေမာင္ႏွမမ်ား ခင္ဗ်ား.... Calls ၊ SMS ၊ 3GS ၊ Wifi နဲ႕ အျခား ျပႆနာမ်ား ရွိခဲ့ရင္ Myanmar Tech News ကို comment ေပးခဲ့ပါဦးဗ်ာ။

ဒါကေတာ့ ၈ရက္ေန႕ ေဖေဖာ္၀ါရီလ ၂၀၁၃ ကသတင္းပါ။

http://myanmartechnews.blogspot.com
 Vodafone က iPhone 4S သံုးစြဲသူအခ်ိဳ႕ကို ဒီလို msg ေတြပို႕ေပးေနပံု။ iOS 6.1 မသံုးဖို႕ ေျပာေနတာပါ။
http://myanmartechnews.blogspot.com

Vodafone ကအင္တာနက္ေပၚကေန iOS 6.1 ကို update မလုပ္ဖို႕အၾကံေပးေနပံု။


ref: phonearena.com
Pyae Phyo (MTN)

Windows XP Genuine ကို Activate လုပ္မယ္

Windows XP Genuine ကို Activate လုပ္မယ္

ကြ်န္ေတာ္မႏွစ္က လုပ္ထားတဲ့ Windows XP Genuine cracking က လံုး၀အလုပ္မျဖစ္ပါဘူး။ ၁ႏွစ္သာသာပဲ ခံပါတယ္။ ခုေတာ့ Forever (ရာသက္ပန္) ခံႏိုင္ေအာင္လုပ္မယ့္နည္းတစ္ခုရွိပါတယ္။ ဘယ္ေတာ့မွ မေတာင္းဆိုေတာ့ဘူးေပါ့။ တကယ္ေတာ့၁နာရီေတာင္မၾကာပါဘူး။ ကြ်န္ေတာ္ကသာ လူၿပိန္းမို႕လို႕ ၁နာရီေလာက္ျဖစ္သြားတာပါ။ အလကားေနရင္ ဆိုင္ကိုမပို႕နဲ႕။ လုပ္တာ လြယ္လြယ္ပဲ။ လူၿပိန္းနည္းပဲ။
http://pyae-phyo.blogspot.com
ဒီလိုမ်ိဳးေပၚလာရင္ background ပံုေပ်ာက္ၿပီး အဲ့လိုမ်ိဳး အမဲေရာင္ေပၚတတ္ေလ့ရွိပါတယ္ဗ်ာ။ ခင္ဗ်ားတို႕ Windows XP စက္မွာျဖစ္ရင္ တခ်ိဳ႕ေဆာ့၀္လ္အလုပ္မလုပ္ဘူး။ စက္ေလးလာတယ္မ်ိဳးရွိပါတယ္။ Microsoft မွာလည္း ေငြရွိရင္ ျဖဳတ္နည္း၀ယ္မရေတာ့တာ ခက္သား။


http://pyae-phyo.blogspot.com

Ctrl+R ကို keyboard ထဲကေန clickပါ။ (သို႕မဟုတ္) Start >> Run ကိုသြားပါ။
http://pyae-phyo.blogspot.com
ကြ်န္ေတာ္ေအာက္ပါအတုိင္းျပတဲ့ဟာေလးကို ကူးၿပီး Run command မွာ ထည့္ပါ။


Put this one in Run box:  

ၿပီးေတာ့ ကြ်န္ေတာ္အမဲေရာင္ေလးနဲ႕ ၀ိုင္းထားတဲ့ WgaTray ကို Delete လုပ္ပါ။ Right click ကို ကလစ္ၿပီး delete လုပ္ပါ။
http://pyae-phyo.blogspot.com
ဒီလိုမ်ိဳးေပၚလာမည္။ သို႕ေသာ္ Yes ကိုသြား click မလုပ္နဲ႕။ Access Denied ဆိုၿပီး ေပၚလာမွာဆိုးလို႕ပါ။ ဒီ box ကိုမပိတ္နဲ႕ဦး။
http://pyae-phyo.blogspot.com
Ctrl + Alt + Delete ကို ကလစ္ၿပီး Windows Task Manager တက္လာမယ္။ အဲ့ဒီေတာ့ WgaTray.exe ကိုရွာၿပီး select လုပ္ထားပါ။

WgaTray.exe ကို တစ္ခါတည္းတန္းလုပ္ပါ။ ၿပီးတာနဲ႕ အျမန္ဆံုး ကို click ပါ။ ခင္ဗ်ားတို႕ ဘာမွစဥ္းစားဖို႕ မလုပ္ပါနဲ႕။ ၃-၅ seconds အတြင္းလုပ္ပါ။
http://pyae-phyo.blogspot.com
ခု Start Menu ကို သြားပါ။ Run ... ကို click ပါ။
http://pyae-phyo.blogspot.com
ၿပီးရင္ regedit လို႕ထည့္ၿပီး ကို click ပါ။
http://pyae-phyo.blogspot.com
ကြ်န္ေတာ္ျပတဲ့အတုိင္း စိတ္ရွည္ရွည္ထားၿပီး ဒါေတြ သြားပါဗ်ာ။ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\ CurrentVersion\Winlogon\Notify တဲ့။ ေတြ႕တာနဲ႕ WgaLogon ဆိုတဲ့ folder ကို right click သြားၿပီး Delete လုပ္ပါ။
http://pyae-phyo.blogspot.com
ဒီအတုိင္းဆုိရင္ေတာ့ ျမင္ေနရပါဦးမယ္။ FOREVER မျမင္ခ်င္ရင္ေတာ့ စက္ကို Restart ခ်လိုက္ပါ။

အရမ္းလြယ္တာပဲ။ ဘာေဆာ့၀္လ္မွမလိုပါဘူး။ ဒီပိုစ့္ကို share ခ်င္ရင္ share ၾကပါ။ ခိခိ။ Educational Purpose ျဖစ္တဲ့အတြက္ မဟုတ္မဟက္တဲ့ေနရာ မွာ မသံုးၾကပါနဲ႕ လို႕ေျပာခ်င္ပါတယ္။ ေနာက္နည္းေတြကေတာ့ အားရင္ေျပာျပပါဦးမယ္။

အဆင္ေျပပါေစ။ Han Tar Pyae Phyo

Friday 8 February 2013

Mozilla ကုမၸဏီက ၂၀၁၂ အယံုအၾကည္ရဆံုးကုမၸဏီတစ္ခုျဖစ္ခဲ့

http://pyae-phyo.blogspot.com
Mozilla ကုမၸဏီက ၂၀၁၂ အယံုအၾကည္ရဆံုးကုမၸဏီတစ္ခုျဖစ္ခဲ့တာဆိုပဲ။ ကြ်န္ေတာ္တို႕ ခုကိုင္တဲ့ စိတ္အခ်ရဆံုး၊ အယံုအၾကည္ရဆံုးဆိုတဲ့ Mozilla ဟာ ယမန္ႏွစ္တုန္းကမွ Trusted Company အျဖစ္ရာထူးအတိုးခံရပါတယ္။ Mozilla ကကြ်န္ေတာ္တို႕ကိုင္ေနတဲ့ Firefox(လူအသံုးမ်ား) ၊ Thunderbirds(လူအသံုးနည္း) တဲ့အရာေလးေတြပါ။

US(အေမရိကန္) မွာ Mozilla သံုးဆြဲသူတစ္သိန္း ကိုေမးျမန္းခဲ့ပါတယ္ ရလဒ္ကေတာ့ Mozilla ကေကာင္းတယ္ဆိုပဲဗ်ာ။ သံုးဆြဲသူမ်ားတဲ့ Mozilla ဟာ နာမည္အၾကီးဆံုးစရင္းထဲမွာ၀င္ေနပါတယ္။ အေက်ာ္အၾကားဆံုးကုမၸဏီ အခု၂၀အနက္ Mozilla ဟာပါ၀င္ေနပါတယ္။ အင္တာနက္၊ ဆုိရွယ္နက္ေ၀ါ့ကင္းတို႕မွာ နာမည္ထိပ္တန္းျဖစ္ေနဆဲပါ။

Mozilla ဟာလံုျခံဳေရး၊ ဒီဇိုင္း၊ စီစဥ္ရာမွာ ေတာ္ေနၾကတာျဖစ္ပါတယ္။ ေအာင္ျမင္ရတဲ့အေၾကာင္းအရင္းကေတာ့ လူကိုင္မ်ားတာနဲ႕၊ အကူအညီေတြမ်ားမ်ားျပားျပားရေနတာျဖစ္ပါတယ္။ ဆန္းက်ယ္တဲ့လ်ိဳ႕၀ွက္ခ်က္ကေတာ့ Security ျမင့္မားေရးနဲ႕ သံုးလို႕ေကာင္းတာျဖစ္ပါတယ္။

အြန္လိုင္းဆားဗစ္မွာလည္း Mozilla ဟာေကာင္းတယ္လို႕ဆိုထားပါတယ္။ "ကြ်န္ေတာ္တို႕ Mozilla ကိုတိုးတက္ေအာင္လုပ္ေနသလို၊ လူေတြစိတ္ခ်ယံုၾကည့္စြာသံုးရတဲ့ Mozilla products ျဖစ္ေအာင္လုပ္ေနအံုးမွာပါ" လို႕ Mozilla ကို လုပ္ကိုင္ေနသူတစ္ဦးကဆိုပါတယ္။ Mozilla က သံုးစြဲသူယံုၾကည္ၿပီး အဆင္ေျပၿပီးေတာ့ သံုးစြဲသူအႀကိဳက္ျဖစ္ေနပါတယ္။

ref : blog.mozilla.org
Pyae Phyo (Bar Nyar Kwi Kwa)

Sunday 3 February 2013

TicTacToe3D ဂိမ္း [HTML Codes-2]

http://pyae-phyo.blogspot.com
ခုေတာ့ ေနာက္ဂိမ္းအသစ္တင္ဆက္ပါမယ္။ HTML နဲ႕ Javascript တို႕ေပါင္းစပ္ၿပီးလုပ္ထားတာပါ။ C++ language ကေန HTML တို႕ Javascript အျဖစ္ေျပာင္းလုပ္ထားတာပါ။ ကုဒ္ေတြအလုပ္မလုပ္လို႕ အခ်ိန္ေပးၿပီး ထြင္ေနရတာပါ။ ပံုေတြက အလုပ္မလုပ္လို႕  blogspot.com နဲ႕ပံုတင္ၿပီး ျပင္ထားပါတယ္။ ကြ်န္ေတာ္ကေတာ့ ဒီဟာကို Dreamweaver နဲ႕ Notepad++ နဲ႕လုပ္တာပါ။ ၂နာရီေလာက္ၾကာသြားပါတယ္ဗ်ာ။ အဆင္မေျပရင္ ပံုေတြပါေပးလိုက္မယ္။ ပံုေလးေတြကို download လုပ္ခ်င္ရင္...
http://pyae-phyo.blogspot.com
Download [Only for picture]
အေပၚက ဂိမ္းမဟုတ္ေသးဘူး။ ဂိမ္းက ေအာက္က ေနာက္ download button ကို click ၿပီးေဒါင္းေစဗ်ာ။ အဲ့မွာ html ဖိုင္ေတြ႕လိမ့္မယ္။ ဖြင့္သာဖြင့္ခ်လိုက္။ ဒါဆုိရင္ ဂိမ္းစတင္ေဆာ့ကစားလို႕ရပါၿပီခင္ဗ်ာ။


http://pyae-phyo.blogspot.com
Download [TicTacToe3D Game]
ကိုယ့္ဘာသာကိုယ္ထြင္ၿပီးကစားခ်င္ရင္ေတာ့ လြယ္လြယ္ေလးပဲ။

ခင္ဗ်ားတို႕အတြက္ ေဆာ့စရာေလးပါ။ Notepad ကိုဖြင့္လိုက္ပါ။ မဖြင့္တတ္ရင္ Start >> Programs >> Accessories >> Notepad ဆိုတဲ့ အျပာေရာင္စာအုပ္ေလးေပါ့(Windows XP ကိုင္တဲ့သူေတြဖြင့္ဖို႕)။ ဒါေပမယ့္ ကြ်န္ေတာ္ Windows 7 အေၾကာင္းကုိ သိပ္နားမလည္ပါဘူး။ ဒါေၾကာင့္ ကိုယ့္ဘာသာ ကိုယ္ရွာၾကည့္ပါ။ Notepad မွာ ေအာက္ပါ ကြ်န္ေတာ္ေပးတဲ့ HTML Code ကိုကူးၿပီးေတာ့ TicTacToe3D.html လို႕ေပးၿပီး save လိုက္ပါ။ ၿပီးရင္ Mozilla Firefox မွာဖြင့္ၾကည့္ပါ။ ဒါမွမဟုတ္ရင္ ကိုယ္ဖြင့္ခ်င္တဲ့ browser မွာဖြင့္ေပးလိုက္။ ၿပီးရင္ စိတ္ခ်လက္ခ်ေဆာ့လို႕ရပါၿပီ။ ကုဒ္က ေအာက္ပါအတုိင္းကူးလိုက္ပါ။


ကုဒ္ကအလုပ္မလုပ္လို႕ တစ္ပတ္အၾကာမွ တင္တာကိုေတာင္းပန္ပါတယ္ဗ်ာ။
<HTML>
<HEAD>
<META NAME="description" content="TicTac3D is a

PC-Game, which is a part of the '7 by one stroke'

package, translated from C++ into HTML and

JavaScript">
<META NAME="author"

content="http://pyae-phyo.blogspot.com">
<META NAME="keywords" content="Game,

TicTac3D, Streich, Stroke, JavaScript">
<META HTTP-EQUIV="Content-Type"

CONTENT="text/html; charset=iso-8859-1">
<title>TicTac3D</title>
<script language="JavaScript">
var i, j, k, RotAng, XMouseOver, YMouseOver,

LastEvent, IsOver=-1, IsStart0;
var Start, I_Sel, J_Sel, Start0, NBlink=0;
var NeedBallDown, MoveCount, MaxMoveCount;
IsPlayer = new Array(2);
Level = new Array(2);
Fld = new Array(4);
for (i=0; i<4; i++)
  Fld[i] = new Array(4);
for (i=0; i<4; i++)
{ for (j=0; j<4; j++)
    Fld[i][j] = new Array(4);
}
ScreenFld = new Array(4);
for (i=0; i<4; i++)
  ScreenFld[i] = new Array(4);
for (i=0; i<4; i++)
{ for (j=0; j<4; j++)
    ScreenFld[i][j] = new Array(2);
}
FldCount = new Array(4);
for (i=0; i<4; i++)
  FldCount[i] = new Array(4);
Value = new Array(4);
for (i=0; i<4; i++)
  Value[i] = new Array(4);
History = new Array(64);
for (i=0; i<64; i++)
  History[i] = new Array(2);
Pic= new Array(4);
Pic[0] = new Image(); Pic[0].src =

"http://3.bp.blogspot.com/-H9y5f78O_hQ/UQ42q5X4

6wI/AAAAAAAAClU/K_cDVioy1cg/s1600/tt3d_0.gif";
Pic[1] = new Image(); Pic[1].src =

"http://4.bp.blogspot.com/--drIEih8Xfs/UQ42sECQ4

TI/AAAAAAAACls/UEXzI0DP6i8/s1600/tt3dred.gif";
Pic[2] = new Image(); Pic[2].src =

"http://4.bp.blogspot.com/-YY-ZssbHboY/UQ42s4hV

-hI/AAAAAAAACl4/43ctLNDHKFY/s1600/tt3d_1.gif";
Pic[3] = new Image(); Pic[3].src =

"http://1.bp.blogspot.com/-lmjCjncseII/UQ42sx4hKu

I/AAAAAAAACl0/dnjpTpg9B7E/s1600/tt3dblue.gif";
BG= new Array(2);
BG[0] = new Image(); BG[0].src =

"http://3.bp.blogspot.com/-O8220I2a7LM/UQ42rQN

Wh3I/AAAAAAAAClk/vvGPsu84LYI/s1600/tt3d0bg.gif

";
BG[1] = new Image(); BG[1].src =

"http://2.bp.blogspot.com/-BNo56_uZ_Kc/UQ42q3uz

IsI/AAAAAAAAClY/f_ONZCsLdYY/s1600/tt3d1bg.gif";

IsStart0=true;
IsPlayer[0]=true;
IsPlayer[1]=false;
Level[0]=2;
Level[1]=3;
WinFlds=new Array(2);
WinFlds[0]=new Array(3);
WinFlds[1]=new Array(3);

function Init()
{ var ii, jj, kk;
  for (ii=0; ii<4; ii++)
  { for (jj=0; jj<4; jj++)
    { for (kk=0; kk<4; kk++)
        Fld[ii][jj][kk]=0;
      FldCount[ii][jj]=0;
    }
  }
  if (IsStart0) Start0=true;
  else Start0=false;
  LastEvent="";
  NeedBallDown=0;
  I_Sel=-1; J_Sel=-1;
  MoveCount=0;
  MaxMoveCount=0;
  RotAng=0;
  XMouseOver=-1;
  YMouseOver=-1;
  RefreshScreen();
  IsOver=0;
  NBlink=0;
}

function SetOption(nn, mm)
{ if (nn<2)
  { if (mm==0)
      IsPlayer[nn]=true;
    else
      IsPlayer[nn]=false;
  }
  else IsStart0=mm;
}

function SetLevel(nn, mm)
{ Level[nn]=mm;
}

function MoveString(nn)
{ if (nn>9) return(" "+nn+" ");
  return("  "+nn+"  ");
}

function Timer()
{ if (IsOver<0) return;
  if (IsOver>0) { Blink(); return; }
  if (NeedBallDown==0)
  { if

((((MoveCount+Start0)%2==1)&&(IsPlayer[0]))||
      

(((MoveCount+Start0)%2==0)&&(IsPlayer[1])));
    else
    { if (LastEvent=="")

GetBestMove(((MoveCount+1+Start0)%2)*2-1);
      if (LastEvent=="TurnLeft") { TurnLeft();

LastEvent=""; }
      if (LastEvent=="TurnRight") { TurnRight();

LastEvent=""; }
      if (LastEvent=="Back") { Back(); LastEvent="";

}
      if (LastEvent=="Replay") { Replay();

LastEvent=""; }      
    }
  }
  if (NeedBallDown>0)
  { if (Fld[I_Sel][J_Sel][NeedBallDown-1]==0)
    { if (NeedBallDown<4)
      

window.document.images[13*(YMouseOver+3-Need

BallDown)+XMouseOver].src = Pic[2].src;
      if ((MoveCount+Start0)%2==1)
      

window.document.images[13*(YMouseOver+4-Need

BallDown)+XMouseOver].src = Pic[1].src;
      else
      

window.document.images[13*(YMouseOver+4-Need

BallDown)+XMouseOver].src = Pic[3].src;
    }
    if (NeedBallDown>1)
    { if (Fld[I_Sel][J_Sel][NeedBallDown-2]!=0)
        NeedBallDown=1;
    }
    if (NeedBallDown==1)
    {

window.document.OptionsForm.Moves.value=MoveS

tring(MoveCount+1);
      MakeMove();
    }
    NeedBallDown--;
  }
}

function TurnLeft()
{ if (NeedBallDown!=0) { LastEvent="TurnLeft";

return; }
  RotAng--;
  if (RotAng<0) RotAng=7;
  RefreshScreen();
}

function TurnRight()
{ if (NeedBallDown!=0) { LastEvent="TurnRight";

return; }
  RotAng++;
  if (RotAng>7) RotAng=0;
  RefreshScreen();
}

function Back()
{ if (NeedBallDown!=0) { LastEvent="Back"; return;

}
  if (MoveCount>0)
  { IsOver=0;
    NBlink=0;
    MoveCount--;
    var ii=History[MoveCount][0];
    var jj=History[MoveCount][1];
    var kk=--FldCount[ii][jj];
    Fld[ii][jj][kk]=0;
  

window.document.OptionsForm.Moves.value=MoveS

tring(MoveCount);
    RefreshPic(ii, jj, kk);
  }
}

function Replay()
{ if (NeedBallDown!=0) { LastEvent="Replay";

return; }
  if (MoveCount<MaxMoveCount)
  { I_Sel=History[MoveCount][0];
    J_Sel=History[MoveCount][1];
  

window.document.OptionsForm.Moves.value=MoveS

tring(MoveCount+1);
    MakeMove();    
    RefreshPic(I_Sel, J_Sel,

FldCount[I_Sel][J_Sel]-1);
  }
}

function MakeMove()
{ var ccol, kk;
  ccol=((MoveCount+1+Start0)%2)*2-1;
  kk=FldCount[I_Sel][J_Sel]++;
  Fld[I_Sel][J_Sel][kk]=ccol;
  if (History[MoveCount][0]!=I_Sel)
  { History[MoveCount][0]=I_Sel;
    MaxMoveCount=MoveCount+1;
  }
  if (History[MoveCount][1]!=J_Sel)
  { History[MoveCount][1]=J_Sel;
    MaxMoveCount=MoveCount+1;
  }
  MoveCount++;
  if (MaxMoveCount<MoveCount)
    MaxMoveCount=MoveCount;
  IsOver=IsWinning(I_Sel, J_Sel, kk, ccol);
  if (IsOver>0)
  { if (ccol<0) alert("Red has won !");
    else alert("Blue has won !");
  }
  else
  { if (MoveCount==64)
    { IsOver=-1;
      alert("It's a draw !");
    }
  }
}

function GetBestMove(theCol)
{ var ii, jj, kk, zz, vv, vvbest, nn, cc=theCol;
  var iiw,jjw,kkw,wwcount;
  var LLevel=Level[(MoveCount+1+Start0)%2];
  I_Sel=-1; J_Sel=-1;
  for (ii=0; ii<4; ii++)
  { for (jj=0; jj<4; jj++)
    { if ((kk=FldCount[ii][jj])<4)
      { Fld[ii][jj][kk]=cc;
        if (IsWinning(ii, jj, kk, cc)>0)
        { Fld[ii][jj][kk]=0;
          Select(ii, jj);
          return;
        }
        Fld[ii][jj][kk]=0;
      }
    }
  }
  nn=0;
  for (ii=0; ii<4; ii++)
  { for (jj=0; jj<4; jj++)
    { Value[ii][jj]=0;
      if ((kk=FldCount[ii][jj])<4)
      { nn++;
        Fld[ii][jj][kk]=-cc;
        if (IsWinning(ii, jj, kk, -cc)>0)
        { Fld[ii][jj][kk]=0;
          Select(ii, jj);
          return;
        }
        Fld[ii][jj][kk]=0;
      }
    }
  }
  if (LLevel>2)
  { for (ii=0; ii<4; ii++)
    { for (jj=0; jj<4; jj++)
      { if ((kk=FldCount[ii][jj])<4)
        { wwcount=0;
          Fld[ii][jj][kk]=cc;
          if (kk<3)
          { if ((wwcount=CanWin(ii,jj,kk+1,cc))==2)
            { Fld[ii][jj][kk]=0;
              Select(ii, jj);
              return;
            }
          }
          if (wwcount>=0)
          { for (iiw=0; iiw<4; iiw++)   
            { for (jjw=0; jjw<4; jjw++)
              { if ((kkw=FldCount[iiw][jjw])<4)
                { if (!((ii==iiw)&&(jj==jjw)))
                  { Fld[iiw][jjw][kkw]=cc;
                    if (IsWinning(iiw, jjw, kkw, cc)>0)
                      wwcount++;
                    Fld[iiw][jjw][kkw]=0;
                    if (wwcount>1)
                    { Fld[ii][jj][kk]=0;
                      Select(ii, jj);
                      return;
                    }
                  }
                }
              }
            }
          }
          Fld[ii][jj][kk]=0;
        }
      }
    }
  }
  if (LLevel>3)
  { for (ii=0; ii<4; ii++)
    { for (jj=0; jj<4; jj++)
      { if ((kk=FldCount[ii][jj])<4)
        { vv=0;
          Fld[ii][jj][kk]=cc;
          if (kk<3)
          { Fld[ii][jj][kk+1]=-cc;
            if (IsWinning(ii, jj, kk+1, -cc)>0)
              vv=-1;
            Fld[ii][jj][kk+1]=0;
          }
          if (vv==0)
          { Fld[ii][jj][kk]=-cc;
            if(kk<3)
            { Fld[ii][jj][kk+1]=cc;
              if (IsWinning(ii, jj, kk+1, cc)>0)
                Value[ii][jj]=-200;
              Fld[ii][jj][kk+1]=0;
            }
            for (iiw=0; iiw<4; iiw++)   
            { for (jjw=0; jjw<4; jjw++)
              { if ((kkw=FldCount[iiw][jjw])<4)
                { if (!((ii==iiw)&&(jj==jjw)))
                  { if

((vv=CanWin(iiw,jjw,kkw,-cc))==2)
                    { Fld[ii][jj][kk]=0;
                      Select(ii, jj);
                      return;
                    }
                    if (vv==-1)
                    Value[ii][jj]=-100;
                  }
                }
              }
            }
            Fld[ii][jj][kk]=cc;
            if (kk<3)
            { Fld[ii][jj][kk+1]=-cc;
              for (iiw=0; iiw<4; iiw++)   
              { for (jjw=0; jjw<4; jjw++)
                { if ((kkw=FldCount[iiw][jjw])<4)
                  { if (!((ii==iiw)&&(jj==jjw)))
                    { if (CanWin(iiw,jjw,kkw,-cc)==2)
                        Value[ii][jj]=-5000;
                    }
                  }
                }
              }
              Fld[ii][jj][kk+1]=0;
            }
          }
          Fld[ii][jj][kk]=0;
        }
      }
    }
  }
  if (nn==0)
  { IsOver=-1; return; }
  zz=0;
  nn=0;
  for (ii=0; ii<4; ii++)
  { for (jj=0; jj<4; jj++)
    { if ((kk=FldCount[ii][jj])<4)
      { Fld[ii][jj][kk]=cc;
        if (kk<3)
        { Fld[ii][jj][kk+1]=-cc;
          if (IsWinning(ii, jj, kk+1, -cc)>0)
          { vv=-8100;
            Fld[ii][jj][kk+1]=0;
          }
          else
          { Fld[ii][jj][kk+1]=0;
            vv=GetValue(ii, jj, kk, cc);
          }
        }
        else
          vv=GetValue(ii, jj, kk, cc);
        if (LLevel<2) vv%=200;
        if (LLevel<3)

vv+=Math.floor(Math.random()*108);
        if (LLevel==3)

vv+=Math.floor(Math.random()*27);
        Value[ii][jj]+=vv;
        if (zz==0) vvbest=Value[ii][jj];
        zz++;
        if (Value[ii][jj]==vvbest)
          nn++;
        if (Value[ii][jj]>vvbest)
        { nn=1;
          vvbest=Value[ii][jj];
        }
        Fld[ii][jj][kk]=0;
      }
    }
  }
  zz=Math.floor(Math.random()*nn);
  nn=-1;
  for (ii=0; ii<4; ii++)
  { for (jj=0; jj<4; jj++)
    { if ((kk=FldCount[ii][jj])<4)
      { if (vvbest==Value[ii][jj])
        { nn++;
          if (nn==zz)
          { Select(ii, jj);
            return;
          }
        }
      }
    }
  }
}

function CanWin(ii, jj, kk, cc)
{ var kkl, kkk=kk-1;
  var vv=0;
  do
  { kkk++;
    Fld[ii][jj][kkk]=-cc;
    if (IsWinning(ii, jj, kkk, -cc)>0)
    { for (kkl=kk; kkl<=kkk; kkl++)
        Fld[ii][jj][kkl]=0;
      if (kkk==kk) return(-1);
      else return(vv);
    }
    Fld[ii][jj][kkk]=cc;
    if ((IsWinning(ii, jj, kkk, cc)>0)&&(kkk<3))
    { if (kkk==kk) vv++;
      Fld[ii][jj][kkk]=-cc;
      Fld[ii][jj][kkk+1]=cc;
      if (IsWinning(ii, jj, kkk+1, cc)>0)
      { for (kkl=kk; kkl<=kkk+1; kkl++)
          Fld[ii][jj][kkl]=0;
        return(2);
      }
      Fld[ii][jj][kkk+1]=0;
    }
    Fld[ii][jj][kkk]=-cc;
  }
  while (kkk<3);
  for (kkl=kk; kkl<=kkk; kkl++)
    Fld[ii][jj][kkl]=0;
  return(vv);
}

function GetValue(ii, jj, kk, ccol)
{ var ll, cc, ccount1, ccount2, vval=0;
  var dd1, dd2, ddv, ddd, ddr;
  if (MoveCount%2==0)
  { dd1=1;
    dd2=1;
    ddv=(3-kk)*2;
    ddd=4; ddr=4;
    if (kk==2)
    { ddd=8; ddr=8; }
  }
  else
  { dd1=1;
    dd2=1;
    ddv=(3-kk)*(3-kk)+1;
    ddd=4; ddr=4;
    if (kk==2)
    { ddd=8; ddr=8; }
  }
  var ss1=0;
  var ss2=0;
  var ww1count=3*dd1;
  var ww1=0;
  var ww2count=2*dd2;
  var ww2=0;
  ccount1=0;
  ccount2=0;
  for (ll=0; ll<4; ll++)
  { if ((cc=Fld[ll][jj][kk])==ccol) ccount1+=dd1;
    if (cc==-ccol) ccount2+=dd2;
  }
  if ((ccount1>dd1)&&(ccount2>0));
  else
  { vval+=(ccount1+1)*(ccount2+1)*ddv;
    ss1+=ccount1-dd1; ss2+=ccount2;
    if (ccount1>=ww1count) ww1++;
    if (ccount2>=ww2count) ww2++;
  }
  ccount1=0;
  ccount2=0;
  for (ll=0; ll<4; ll++)
  { if ((cc=Fld[ii][ll][kk])==ccol) ccount1+=dd1;
    if (cc==-ccol) ccount2+=dd2;
  }
  if ((ccount1>dd1)&&(ccount2>0));
  else
  { vval+=(ccount1+1)*(ccount2+1)*ddv;
    ss1+=ccount1-dd1; ss2+=ccount2;
    if (ccount1>=ww1count) ww1++;
    if (ccount2>=ww2count) ww2++;
  }
  ccount1=0;
  ccount2=0;
  for (ll=0; ll<=kk; ll++)
  { if ((cc=Fld[ii][jj][ll])==ccol) ccount1+=dd1;
    if (cc==-ccol) ccount2+=dd2;
  }
  if ((ccount1>dd1)&&(ccount2>0));
  else
  { vval+=(ccount1+1)*(ccount2+1)*ddv;
    ss1+=ccount1-dd1; ss2+=ccount2;
    if (ccount1>=ww1count) ww1++;
    if (ccount2>=ww2count) ww2++;
  }
  if (jj==kk)
  { ccount1=0;
    ccount2=0;
    for (ll=0; ll<4; ll++)
    { if ((cc=Fld[ii][ll][ll])==ccol) ccount1+=dd1;
      if (cc==-ccol) ccount2+=dd2;
    }
    if ((ccount1>dd1)&&(ccount2>0));
    else
    { vval+=(ccount1+1)*(ccount2+1)*ddd;
      ss1+=ccount1-dd1; ss2+=ccount2;
      if (ccount1>=ww1count) ww1++;
      if (ccount2>=ww2count) ww2++;
    }
  }
  if ((3-jj)==kk)
  { ccount1=0;
    ccount2=0;
    for (ll=0; ll<4; ll++)
    { if ((cc=Fld[ii][3-ll][ll])==ccol) ccount1+=dd1;
      if (cc==-ccol) ccount2+=dd2;
    }
    if ((ccount1>dd1)&&(ccount2>0));
    else
    { vval+=(ccount1+1)*(ccount2+1)*ddd;
      ss1+=ccount1-dd1; ss2+=ccount2;
      if (ccount1>=ww1count) ww1++;
      if (ccount2>=ww2count) ww2++;
    }
  }
  if (ii==kk)
  { ccount1=0;
    ccount2=0;
    for (ll=0; ll<4; ll++)
    { if ((cc=Fld[ll][jj][ll])==ccol) ccount1+=dd1;
      if (cc==-ccol) ccount2+=dd2;
    }
    if ((ccount1>dd1)&&(ccount2>0));
    else
    { vval+=(ccount1+1)*(ccount2+1)*ddd;
      ss1+=ccount1-dd1; ss2+=ccount2;
      if (ccount1>=ww1count) ww1++;
      if (ccount2>=ww2count) ww2++;
    }
  }
  if ((3-ii)==kk)
  { ccount1=0;
    ccount2=0;
    for (ll=0; ll<4; ll++)
    { if ((cc=Fld[3-ll][jj][ll])==ccol) ccount1+=dd1;
      if (cc==-ccol) ccount2+=dd2;
    }
    if ((ccount1>dd1)&&(ccount2>0));
    else
    { vval+=(ccount1+1)*(ccount2+1)*ddd;
      ss1+=ccount1-dd1; ss2+=ccount2;
      if (ccount1>=ww1count) ww1++;
      if (ccount2>=ww2count) ww2++;
    }
  }
  if (jj==ii)
  { ccount1=0;
    ccount2=0;
    for (ll=0; ll<4; ll++)
    { if ((cc=Fld[ll][ll][kk])==ccol) ccount1+=dd1;
      if (cc==-ccol) ccount2+=dd2;
    }
    if ((ccount1>dd1)&&(ccount2>0));
    else
    { vval+=(ccount1+1)*(ccount2+1)*ddd;
      ss1+=ccount1-dd1; ss2+=ccount2;
      if (ccount1>=ww1count) ww1++;
      if (ccount2>=ww2count) ww2++;
    }
  }                        
  if ((3-jj)==ii)
  { ccount1=0;
    ccount2=0;
    for (ll=0; ll<4; ll++)
    { if ((cc=Fld[ll][3-ll][kk])==ccol) ccount1+=dd1;
      if (cc==-ccol) ccount2+=dd2;
    }
    if ((ccount1>dd1)&&(ccount2>0));
    else
    { vval+=(ccount1+1)*(ccount2+1)*ddd;
      ss1+=ccount1-dd1; ss2+=ccount2;
      if (ccount1>=ww1count) ww1++;
      if (ccount2>=ww2count) ww2++;
    }
  }                      
  if ((ii==jj)&&(jj==kk))
  { ccount1=0;
    ccount2=0;
    for (ll=0; ll<4; ll++)
    { if ((cc=Fld[ll][ll][ll])==ccol) ccount1+=dd1;
      if (cc==-ccol) ccount2+=dd2;
    }
    if ((ccount1>dd1)&&(ccount2>0));
    else
    { vval+=(ccount1+1)*(ccount2+1)*ddr;
      ss1+=ccount1-dd1; ss2+=ccount2;
      if (ccount1>=ww1count) ww1++;
      if (ccount2>=ww2count) ww2++;
    }
  }
  if ((ii==kk)&&((3-jj)==kk))
  { ccount1=0;
    ccount2=0;
    for (ll=0; ll<4; ll++)
    { if ((cc=Fld[ll][3-ll][ll])==ccol) ccount1+=dd1;
      if (cc==-ccol) ccount2+=dd2;
    }
    if ((ccount1>dd1)&&(ccount2>0));
    else
    { vval+=(ccount1+1)*(ccount2+1)*ddr;
      ss1+=ccount1-dd1; ss2+=ccount2;
      if (ccount1>=ww1count) ww1++;
      if (ccount2>=ww2count) ww2++;
    }
  }
  if ((ii==jj)&&(jj==(3-kk)))
  { ccount1=0;
    ccount2=0;
    for (ll=0; ll<4; ll++)
    { if ((cc=Fld[ll][ll][3-ll])==ccol) ccount1+=dd1;
      if (cc==-ccol) ccount2+=dd2;
    }
    if ((ccount1>dd1)&&(ccount2>0));
    else
    { vval+=(ccount1+1)*(ccount2+1)*ddr;
      ss1+=ccount1-dd1; ss2+=ccount2;
      if (ccount1>=ww1count) ww1++;
      if (ccount2>=ww2count) ww2++;
    }
  }
  if (((3-ii)==kk)&&(jj==kk))
  { ccount1=0;
    ccount2=0;
    for (ll=0; ll<4; ll++)
    { if ((cc=Fld[3-ll][ll][ll])==ccol) ccount1+=dd1;
      if (cc==-ccol) ccount2+=dd2;
    }
    if ((ccount1>dd1)&&(ccount2>0));
    else
    { vval+=(ccount1+1)*(ccount2+1)*ddr;
      ss1+=ccount1-dd1; ss2+=ccount2;
      if (ccount1>=ww1count) ww1++;
      if (ccount2>=ww2count) ww2++;
    }
  }
  if (ww1>1) vval+=ww1*4000;
  if (ss1>3*dd1) vval+=(ss1-3*dd1)*20;
  if ((ww2>=1)&&(ss2>2*dd2))

vval+=(ss2-2*dd2)*(kk+1)*50;
  if (ww2>1) vval+=ww2*500;
  return(vval);
}

function IsWinning(ii, jj, kk, ccol)
{ var ll, ccount;
  ccount=0;
  for (ll=0; ll<4; ll++)
  { if (Fld[ll][jj][kk]==ccol) ccount++;
  }
  if (ccount==4) return(1);
  ccount=0;
  for (ll=0; ll<4; ll++)
  { if (Fld[ii][ll][kk]==ccol) ccount++;
  }
  if (ccount==4) return(2);
  ccount=0;
  for (ll=0; ll<=kk; ll++)
  { if (Fld[ii][jj][ll]==ccol) ccount++;
  }
  if (ccount==4) return(3);
  if (jj==kk)
  { ccount=0;
    for (ll=0; ll<4; ll++)
    { if (Fld[ii][ll][ll]==ccol) ccount++;
    }
    if (ccount==4) return(4);
  }
  if ((3-jj)==kk)
  { ccount=0;
    for (ll=0; ll<4; ll++)
    { if (Fld[ii][3-ll][ll]==ccol) ccount++;
    }
    if (ccount==4) return(5);
  }
  if (ii==kk)
  { ccount=0;
    for (ll=0; ll<4; ll++)
    { if (Fld[ll][jj][ll]==ccol) ccount++;
    }
    if (ccount==4) return(6);
  }
  if ((3-ii)==kk)
  { ccount=0;
    for (ll=0; ll<4; ll++)
    { if (Fld[3-ll][jj][ll]==ccol) ccount++;
    }
    if (ccount==4) return(7);
  }
  if (jj==ii)
  { ccount=0;
    for (ll=0; ll<4; ll++)
    { if (Fld[ll][ll][kk]==ccol) ccount++;
    }
    if (ccount==4) return(8);
  }
  if ((3-jj)==ii)
  { ccount=0;
    for (ll=0; ll<4; ll++)
    { if (Fld[ll][3-ll][kk]==ccol) ccount++;
    }
    if (ccount==4) return(9);
  }
  if ((ii==jj)&&(jj==kk))
  { ccount=0;
    for (ll=0; ll<4; ll++)
    { if (Fld[ll][ll][ll]==ccol) ccount++;
    }
    if (ccount==4) return(10);
  }
  if ((ii==kk)&&((3-jj)==kk))
  { ccount=0;
    for (ll=0; ll<4; ll++)
    { if (Fld[ll][3-ll][ll]==ccol) ccount++;
    }
    if (ccount==4) return(11);
  }
  if ((ii==jj)&&(jj==(3-kk)))
  { ccount=0;
    for (ll=0; ll<4; ll++)
    { if (Fld[ll][ll][3-ll]==ccol) ccount++;
    }
    if (ccount==4) return(12);
  }
  if (((3-ii)==kk)&&(jj==kk))
  { ccount=0;
    for (ll=0; ll<4; ll++)
    { if (Fld[3-ll][ll][ll]==ccol) ccount++;
    }
    if (ccount==4) return(13);
  }
  return(0);
}

function Blink()
{ var ii=I_Sel, jj=J_Sel, kk=FldCount[ii][jj]-1, ll, cc;
  cc=NeedBallDown;
  if (NeedBallDown==0)

NeedBallDown=Fld[ii][jj][kk];
  else { NeedBallDown=0; NBlink++; }
  if (IsOver==1)
  { for (ll=0; ll<4; ll++) { Fld[ll][jj][kk]=cc;

RefreshPic(ll,jj,kk); }
  }
  if (IsOver==2)
  { for (ll=0; ll<4; ll++) { Fld[ii][ll][kk]=cc;

RefreshPic(ii,ll,kk); }
  }
  if (IsOver==3)
  { for (ll=0; ll<=kk; ll++) { Fld[ii][jj][ll]=cc;

RefreshPic(ii,jj,ll); }
  }
  if (IsOver==4)
  { for (ll=0; ll<4; ll++) { Fld[ii][ll][ll]=cc;

RefreshPic(ii,ll,ll); }
  }
  if (IsOver==5)
  { for (ll=0; ll<4; ll++) { Fld[ii][3-ll][ll]=cc;

RefreshPic(ii,3-ll,ll); }
  }
  if (IsOver==6)
  { for (ll=0; ll<4; ll++) { Fld[ll][jj][ll]=cc;

RefreshPic(ll,jj,ll); }
  }
  if (IsOver==7)
  { for (ll=0; ll<4; ll++) { Fld[3-ll][jj][ll]=cc;

RefreshPic(3-ll,jj,ll); }
  }
  if (IsOver==8)
  { for (ll=0; ll<4; ll++) { Fld[ll][ll][kk]=cc;

RefreshPic(ll,ll,kk); }
  }
  if (IsOver==9)
  { for (ll=0; ll<4; ll++) { Fld[ll][3-ll][kk]=cc;

RefreshPic(ll,3-ll,kk); }
  }
  if (IsOver==10)
  { for (ll=0; ll<4; ll++) { Fld[ll][ll][ll]=cc;

RefreshPic(ll,ll,ll); }
  }
  if (IsOver==11)
  { for (ll=0; ll<4; ll++) { Fld[ll][3-ll][ll]=cc;

RefreshPic(ll,3-ll,ll); }
  }
  if (IsOver==12)
  { for (ll=0; ll<4; ll++) { Fld[ll][ll][3-ll]=cc;

RefreshPic(ll,ll,3-ll); }
  }
  if (IsOver==13)
  { for (ll=0; ll<4; ll++) { Fld[3-ll][ll][ll]=cc;

RefreshPic(3-ll,ll,ll); }
  }
  if (NBlink==7) IsOver=-1;
}

function Select(ii, jj)
{ I_Sel=ii;
  J_Sel=jj;
  XMouseOver=ScreenFld[ii][jj][0];
  YMouseOver=ScreenFld[ii][jj][1];
  NeedBallDown=4;
}

function Clicked(xx, yy)
{ if (IsOver!=0) return;
  if (NeedBallDown!=0) return;
  MouseOut();
  MouseOver(xx, yy);
  if (XMouseOver>=0)
    NeedBallDown=4;
 

window.document.OptionsForm.HelpButton.focus();
  window.document.OptionsForm.HelpButton.blur();
}

function MouseOver(xx, yy)
{ if (IsOver!=0) return;
  if (XMouseOver>=0) return;
  if

((((MoveCount+Start0)%2==1)&&(IsPlayer[0]))||
    

(((MoveCount+Start0)%2==0)&&(IsPlayer[1])))
  { if (NeedBallDown==0)
    { for (ii=0; ii<4; ii++)
      { for (jj=0; jj<4; jj++)
        { if

((ScreenFld[ii][jj][0]==xx)&&(ScreenFld[ii][jj][1]=

=yy))
          { if (Fld[ii][jj][3]==0)
            { if ((MoveCount+Start0)%2==1)
              

window.document.images[13*yy+xx].src =

Pic[1].src;
              else
              

window.document.images[13*yy+xx].src =

Pic[3].src;
              XMouseOver=xx;
              YMouseOver=yy;
              I_Sel=ii;
              J_Sel=jj;
            }
          }
        }
      }
    }
  }
}

function MouseOut()
{ if (IsOver!=0) return;
  if (XMouseOver>=0)
  { if (NeedBallDown==0)
    { for (ii=0; ii<4; ii++)
      { for (jj=0; jj<4; jj++)
        { if

((ScreenFld[ii][jj][0]==XMouseOver)&&(ScreenFld[i

i][jj][1]==YMouseOver))
          

window.document.images[13*YMouseOver+XMouse

Over].src = Pic[2+Fld[ii][jj][3]].src;
        }
      }
      XMouseOver=-1;
    }
  }
}

function RefreshPic(ii, jj, kk)
{ var xx=ScreenFld[ii][jj][0];
  var yy=ScreenFld[ii][jj][1];
  window.document.images[13*(yy+3-kk)+xx].src =

Pic[2+Fld[ii][jj][kk]].src;
}

function RefreshScreen()
{ var ii, jj, kk, xx, yy;
  if (document.getElementById)
  

document.getElementById('board').style.backgroun

dImage="url("+BG[RotAng%2].src+")";
  for (ii=0; ii<13; ii++)
  { for (jj=0; jj<13; jj++)
      window.document.images[13*ii+jj].src =

Pic[0].src;
  }
  for (ii=0; ii<4; ii++)
  { for (jj=0; jj<4; jj++)
    { if (RotAng==0) { xx=3*ii+jj; yy=9-2*jj+ii; }
      if (RotAng==1) { xx=3*ii+3-jj; yy=9-2*jj+3-ii;

}
      if (RotAng==2) { xx=3*(3-jj)+ii;

yy=9-2*ii+(3-jj); }
      if (RotAng==3) { xx=3*(3-jj)+3-ii;

yy=9-2*ii+3-(3-jj); }
      if (RotAng==4) { xx=3*(3-ii)+(3-jj);

yy=9-2*(3-jj)+(3-ii); }
      if (RotAng==5) { xx=3*(3-ii)+3-(3-jj);

yy=9-2*(3-jj)+3-(3-ii); }
      if (RotAng==6) { xx=3*jj+(3-ii);

yy=9-2*(3-ii)+jj; }
      if (RotAng==7) { xx=3*jj+3-(3-ii);

yy=9-2*(3-ii)+3-jj; }
      ScreenFld[ii][jj][0]=xx;
      ScreenFld[ii][jj][1]=yy-3;   
      for (kk=0; kk<4; kk++)
        window.document.images[13*(yy-kk)+xx].src

= Pic[2+Fld[ii][jj][kk]].src;
    }
  }
 

window.document.OptionsForm.Moves.value=MoveS

tring(MoveCount);
}

function Resize()
{ if (navigator.appName == "Netscape")

history.go(0);
}

function Help()
{ alert("This game is similar to \"Tic Tac Toe\" and

\"Connect Four\"."+
      "\nThere are 4x4 sticks on a square game

board and 2 players."+
      "\nOne of them has 32 red balls, the other has

32 blue balls."+
      "\nThe two players alternately put a ball on a

stick. The player,"+
      "\nwho first gets 4 balls in a horizontal,

vertical or diagonal line,"+
      "\nis the winner.");
}
</script>
</head>
<BODY bgcolor=#cccc88 text=#000000

onResize="javascript:Resize()">
<form name="OptionsForm">
<DIV ALIGN=center>
<table noborder cellpadding=0 cellspacing=10

width=650 heigth=390>
<tr height=100%>

  <td width=60% valign=center

bgcolor=#88cc88><div id="board">
    <table border cellpadding=22 cellspacing=0

width=100%><tr><td>
      <table noborder cellpadding=0

cellspacing=0><tr><td>
      <script language="JavaScript">
      document.open("text/plain");
      for (j=0; j < 13; j++)
      { document.writeln("<NOBR>");
        for (i=0; i < 13; i++)
          document.write("<a

href=\"javascript:Clicked("+i+","+j+")\"

onMouseOver=\"MouseOver("+i+","+j+")\"

onMouseOut=\"MouseOut()\"><IMG

src=\"tt3d_0.gif\" border=0></a>");
        document.writeln("</NOBR><BR>");
      }
      document.close();
      </script>
      </div></td></tr></table>
    </td></tr></table>
  </td>
  <td width=40% valign=center>

      <table border=0 cellpadding=0 cellspacing=0

width=100%>
      <tr><td>
        <table border=1 cellpadding=1

cellspacing=0 width=100% bgcolor=#eeeecc>
        <tr><td><input type=radio name="Red"

checked value="Red: Player"

onClick="javascript:SetOption(0,0)"><b> Red:

Player</b></td></tr>
        <tr><td><table noborder width=100%

cellpadding=0 cellspacing=0>
                <tr><td><input type=radio

name="Red" value="Red: Computer"

onClick="javascript:SetOption(0,1)"><b> Red:

Computer</b></td></tr>
                <tr><td><b>&nbsp;Level:
                  <input type=radio name="RedLevel"

value="1" onClick="javascript:SetLevel(0,1)">1
                  <input type=radio name="RedLevel"

checked value="2"

onClick="javascript:SetLevel(0,2)">2
                  <input type=radio name="RedLevel"

value="3" onClick="javascript:SetLevel(0,3)">3
                  <input type=radio name="RedLevel"

value="4"

onClick="javascript:SetLevel(0,4)">4</b>

                </td></tr></table>
        </td></tr></table>
      </td></tr>
      <tr><td>&nbsp;</td></tr>
      <tr><td>
        <table border=1 cellpadding=1

cellspacing=0 width=100% bgcolor=#eeeecc>
        <tr><td><input type=radio name="Blue"

value="Blue: Player"

onClick="javascript:SetOption(1,0)"><b> Blue:

Player</b></td></tr>
        <tr><td><table noborder width=100%

cellpadding=0 cellspacing=0>

                <tr><td><input type=radio

name="Blue" checked value="Blue: Computer"

onClick="javascript:SetOption(1,1)"><b> Blue:

Computer</b></td></tr>
                <tr><td><b>&nbsp;Level:
                  <input type=radio name="BlueLevel"

value="1" onClick="javascript:SetLevel(1,1)">1
                  <input type=radio name="BlueLevel"

value="2" onClick="javascript:SetLevel(1,2)">2
                  <input type=radio name="BlueLevel"

checked value="3"

onClick="javascript:SetLevel(1,3)">3
                  <input type=radio name="BlueLevel"

value="4"

onClick="javascript:SetLevel(1,4)">4</b>
                </td></tr></table>
        </td></tr></table>
      </td></tr>

      <tr><td>&nbsp;</td></tr>
      <tr><td>
        <table border=1 cellpadding=1

cellspacing=0 width=100% bgcolor=#eeeecc>
    <tr><th colspan=2><b>Who

begins</b></th></tr>
        <tr><th width="50%"><input type=radio

name="Start" checked value="Red"

onClick="javascript:SetOption(2,1)"><b>Red</b><

/th>
        <th width="50%"><input type=radio

name="Start" value="Blue"

onClick="javascript:SetOption(2,0)"><b>Blue</b>

</th></tr>
        </table>

      </td></tr>
      <tr><td>&nbsp;</td></tr>
      <tr><td>
        <table border=0 cellpadding=0

cellspacing=0 width=100%><tr>
        <td width=20% align=center><input

type=button value="&nbsp;&lt;-&nbsp;"

style="width:40; background-color:#eeeecc"

onClick="javascript:TurnLeft()" title="turn board

left"></td>
        <td width=30% align=center><input

type=button value="&nbsp;NEW&nbsp;"

style="width:60; background-color:#eeeecc"

onClick="javascript:Init()"></td>
        <td width=30% align=center><input

type=button value="&nbsp;HELP&nbsp;"

style="width:60; background-color:#eeeecc"

onClick="javascript:Help()"

name="HelpButton"></td>
        <td width=20% align=center><input

type=button value="&nbsp;-&gt;&nbsp;"

style="width:40; background-color:#eeeecc"

onClick="javascript:TurnRight()" title="turn board

right"></td>
        </tr></table>

      </td></tr>
      <tr><td>&nbsp;</td></tr>
      <tr><td>
        <table border=0 cellpadding=0

cellspacing=0 width=100%><tr>
        <td width=20% align=center><input

type=button value="&nbsp;&lt;&lt;&nbsp;"

style="width:35; background-color:#eeeecc"

onClick="javascript:Back();Back()" title="two moves

back"></td>
        <td width=20% align=center><input

type=button value="&nbsp;&lt;&nbsp;"

style="width:35; background-color:#eeeecc"

onClick="javascript:Back()" title="one move

back"></td>
        <td width=20% align=center><input

type=button

value="&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"

style="width:35; background-color:#ffffff;

font-weight:bold" disabled name="Moves"></td>
        <td width=20% align=center><input

type=button value="&nbsp;&gt;&nbsp;"

style="width:35; background-color:#eeeecc"

onClick="javascript:Replay()" title="one move

forward"></td>
        <td width=20% align=center><input

type=button value="&nbsp;&gt;&gt;&nbsp;"

style="width:35; background-color:#eeeecc"

onClick="javascript:Replay();Replay()" title="two

moves forward"></td>

        </tr></table>
      </td></tr>
      </table>
  </td>
</tr>
</table>
</DIV>
</form>
<script language="JavaScript">
Init();
setInterval("Timer()",400);
</script>
</BODY>
</HTML>

အဆင္ေျပပါေစေနာ္။ အားရင္ ဆက္တင္ေပးပါဦးမယ္။ Pyae Phyo ဘာညာကြိကြ