..စမ္းသပ္ၿခင္းၿဖစ္ေနလို႕ ကိုယ္ပိုင္းပိုစ္႕တဗုဒ္မွမပါဘူးခင္ဗ်ာ တဆင္႕ၿပန္ရွယ္တာမို႕ သီးခံအၾကံေပးက်ပါခင္ဗ်ာ ခ်မ္းေျမ့ပါေစ


လာေရာက္လည္ပတ္သူအားလံုးကိုေဗဒါအိုင္တီနည္းပညာစမ္းသပ္ ၿခင္းမွထူးေက်းဇူးတင္ရိွပါတယ္ခင္ ဗ်ာ



glitter-graphics.com
glitter-graphics.com

Friday, May 31, 2013

Code သံုးၿပီး animation လုပ္ရေအာင္ 3



ဒီတစ္ခါမွာေတာ့.. animation box ေလးေတြလုပ္ၾကရေအာင္...။ ပံုဆြဲစရာမလုိပါဘူး..။ code နဲ႔ပဲေရးသြားမွာပါ..။ ပထမဆံုးေအာက္က.. code ေတြကို.. copy ကူးလိုက္ပါ..။

<html>
<head>
<style>
body {margin:0px ; padding: 0px}
canvas{display:block}


</style>
</head>
<body>
<canvas id="c"></canvas>
<script>
window.onload = function()
{
    // lets get the HTML canvas element so we draw on it
    var canvas = document.getElementById("c");
    var ctx = canvas.getContext("2d")
   
    var W = window.innerWidth,    // get the width of our window
            H = window.innerHeight;// get the height
           
            // set our canvas to our size of Width and height
            canvas.width = W;
            canvas.height = H;
           
            /*=========== Box class ===========*/
            function Box(_x,_y)
            {
                // the X/Y position
                this.x = _x;
                this.y = _y;
               
                // lets give it velocity X and Y
                this.xVel = 10 + Math.random()*20;
                this.yVel = 1;
               
                // the box width and height
                this.width = 20
                this.height = 20;
               
                // random colors for our box
                this.r = Math.round(Math.random()*255);
                this.g = Math.round(Math.random()*255);
                this.b = Math.round(Math.random()*255);
               
                this.rgba = "rgba("+this.r+","+this.g+","+this.b+",1)";
               
                // lets make draw method for our box
                this.draw = function()
                {
                    ctx.strokeStyle = this.rgba;
                    ctx.strokeRect(this.x,this.y,this.width,this.height);
                   
                    this.update();
                }
               
                // function that handle our logics for our box
                this.update = function()
                {
                    // lets check if the ball get out of our screen and when
                    // it does that, make it bounce
                    // check the left window border
                    if(this.x < 0) {
                        this.x = 0;            // set its position to 0
                        this.xVel *= -1; // make it bounce
                    }
                   
                    // check the right border
                    if(this.x > W - this.width)
                    {
                            this.x = W - this.width;            // set its position to 0
                            this.xVel *= -1; // make it bounce
                    }
                   
                    // check the top border
                    if(this.y < 0) {
                        this.y = 0;            // this is what happen when u copy/paste
                        this.yVel *= -1; // make it bounce
                    }
                   
                    // the reason why we did this if function so the boxes dont
                    // try to add y by its velocity when its reach bottom
                    // cause it will cause it to spazz
                    // now we add gravity
                    if(this.y < H - this.height)
                        this.yVel += .25;
                   
                    // check the bottom border
                    if(this.y > H - this.height)
                    {
                            // when it bounce off the bottom decrease the ball speed
                            this.xVel *= .5
                            this.yVel *= .5
                           
                            this.y = H - this.height;            // set its position to 0
                            this.yVel *= -1; // make it bounce
                    }

                    // move add speed to our x/y
                    this.x += this.xVel;
                    this.y += this.yVel;
                }
            }
           
            // lets make array of boxes
            var boxes = [];
           
            // Function to draw stuff on our screen :)
            function draw()
            {
                // Background
                ctx.globalCompositeOperation = "source-over";
                ctx.fillStyle = "rgba(0,0,0,0.5)"
                ctx.fillRect(0,0,W,H);
               
                ctx.globalCompositeOperation = "lighter"
               
                // loop through the boxes and draw them
                for(i=0; i < boxes.length; i++)
                    boxes[i].draw();
               
                update();
            }
           
            // Function for our logic
            function update()
            {
                // loop through the boxes and draw them
                for(i=0; i < boxes.length; i++)
                    boxes[i].update();
            }
           
            // add box every minute we specify
            setInterval(function(){
                boxes.push( new Box(0,0))
            },1000);
           
            // set interval so we can draw then update our drawing
            // every 30 milisecond
            setInterval(draw,30);
}
</script>
</body>
</html>

notepad ထဲမွာ.. code ေတြကုိ.ထည့္လိုက္ပါမယ္..။File > save ဆုိၿပီး.. box.html လို႔နာမည္ေပးၿပီး.. desktop မွာ သိမ္းလိုက္ပါ..။ desktop ေပၚက.. box.html ကုိ double click ႏွိပ္ၿပီးဖြင့္ၾကည့္လိုက္ပါ..။
box ေလးေတြ..က်လာတာကုိ..ေတြ႔ရပါလိမ့္မယ္...။ ဘာ ပံုမွမပါပါဘူး.. code နဲ႔ပဲေရးသြားတာပါ.. 

Simple Game Creation 2



Game ေသးေသးေလးတစ္ခုေရးရေအာင္ေနာ္..။ အဓိကကေတာ့.. movement ကုိ..ဘယ္လိုလုပ္လဲ...သိေစ ခ်င္တာပါ..။ ဒီတစ္ခါေတာ့..ရွင္းၿပပါ့မယ္..။ နည္းနည္းနားလည္လာလုိ႔ပါ.. :) ပထမဆံုး.. Folder တစ္ ခုေဆာက္ ပ့ါမယ္..။ ၾကိဳက္တဲ့ေနရာမွာ ေဆာက္လုိက္ပါ..။
Folder ကုိ.. Game လုိ႔ေပးလိုက္ပါ..။
Game Folder ထဲမွာ.. images ဆုိတဲ့ folder တစ္ခုထပ္ေဆာက္ပါ.။ ၿပီးရင္.. Game Folder ေအာက္မွာပဲ. js ဆိုတဲ့ folder တစ္ခုထပ္ေဆာက္လုိက္ပါမယ္..။ ေအာက္က coding ေလးကုိ. copy ကူးလိုက္ပါ..။


<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>Simple Canvas Game</title>
    </head>
    <body>
        <script src="js/game.js"></script>
    </body>
</html>

notepad မွာ..ထည့္ၿပီး..Game Folder ေအာက္မွာ.. index.html နဲ႔ Save လုိက္ပါ..။




1. Create the canvas

// Create the canvas
var canvas = document.createElement("canvas");
var ctx = canvas.getContext("2d");
canvas.width = 512;
canvas.height = 480;
document.body.appendChild(canvas);

Canvas ဆိုတာ.. Game ကုိ..ဘယ္ေလာက္ size နဲ႔ ေပၚေစခ်င္တာလညး္ဆိုၿပီး.. ေနရာေလး..သတ္မွတ္လိုက္တာပါ..။
2d နဲ႔ပဲေရးမွာမုိ႔လို႔.. canvas.getContext("2d"); ဆိုၿပီးထည့္ထားတာပါ..။
width နဲ႔ height ကုိသတ္မွတ္ေပးပါမယ္..။

2. Include images

// Background image
var bgReady = false;
var bgImage = new Image();
bgImage.onload = function () {
    bgReady = true;
};
bgImage.src = "images/background.png";

အခု.. ေနာက္ခံ background ထည့္ပါမယ္..။
https://github.com/lostdecade/simple_canvas_game/blob/master/images/background.png မွာ. background ေတြ႔ပါလိမ့္မယ္..။
background ေပၚမွာ.. right click ႏွိပ္ၿပီး.. Save Image As ကုိ.ႏွိပ္လိုက္ပါ..။
ပံုကုိ.. Game Folder ေအာက္က images folder ထဲမွာ.backgroundဆုိတဲ့နာမည္နဲ႔...ထည့္လုိက္ပါ..။ bgImage.src = "images/background.png"; က.. background image ကုိ..ထည့္တဲ့ပံုစံပါ..။

3. Game objects

// Game objects
var hero = {
    speed: 256, // movement in pixels per second
    x: 0,
    y: 0
};
var monster = {
    x: 0,
    y: 0
};
var monstersCaught = 0;

Game ထဲမွာပါတဲ့..အေကာင္ေတြရဲ႔ေနရာကုိ.သတ္မွတ္တာပါ..။
https://github.com/lostdecade/simple_canvas_game/blob/master/images/hero.png မွာ..  Hero ပံုကို.. Save လုပ္လိုက္ပါ..။
Game Folder ေအာက္က...images Folder ထဲမွာ. Save ပါမယ္..။
https://github.com/lostdecade/simple_canvas_game/blob/master/images/monster.png မွာ. monster ပံုကုိ.. Save လုပ္လိုက္ပါ။
Game Folder ေအာက္က...images Folder ထဲမွာ. Save ပါမယ္..။
speed: 256 က..အၿမန္ႏွဳန္းကုိ..သတ္မွတ္တာပါ..။ hero မွာပဲပါပါတယ္.။ game play လိုက္ရင္.. monster က.မေရႊ႔ဘူးေလ..။
hero ပဲ..ေရႊ႔ရမွာပါ..။ ဒါေၾကာင့္.. monster ကုိ.အၿမန္ႏွဳန္းမသတ္ေပးထားပါဘူး..။
x: 0,y: 0 ဆိုတာ. postion သတ္မွတ္တာပါ..။ အေကာင္ေလးေတြရဲ႔ position က.. တစ္ခါနဲ႔တစ္ခါ..မတူလို႔.. 0 ေပးထားတာပါ..။
var monstersCaught = 0; က.. monster ကုိ..ထိမိတဲ့အၾကိမ္အေရအတြက္ပါ..။ စစၿခင္းဆိုေတာ့. 0 ေပးထားတာပါ..။

 4. Keyboard Controls

// Handle keyboard controls
var keysDown = {};

addEventListener("keydown", function (e) {
    keysDown[e.keyCode] = true;
}, false);

addEventListener("keyup", function (e) {
    delete keysDown[e.keyCode];
}, false);

ကစားတဲ့သူက..ေရြ႔လိုက္တဲ့ arrow key ေတြကုိ.. AddEventListener နဲ႔ဖမ္းပါတယ္..။
တကယ္လို႔.. down arrow key ကုိ..ႏွိပ္လိုက္မယ္ဆိုရင္.. keysDown ကုိ.. true ေပးလိုက္ပါတယ္..။
down arrow key ကုိ.. ႏွိပ္ေနရင္းနဲ႔.. up arrow key ကုိ..ေၿပာင္းႏွိပ္ခဲ့မယ္ဆိုရင္..Down ကုိ.. delete လုပ္တဲ့အေနနဲ႔.. delete keysDown[e.keyCode]; ဆိုၿပီး..ဖ်က္လိုက္ပါတယ္..။

5. Reset the game

// Reset the game when the player catches a monster
var reset = function () {
    hero.x = canvas.width / 2;
    hero.y = canvas.height / 2;

    // Throw the monster somewhere on the screen randomly
    monster.x = 32 + (Math.random() * (canvas.width - 64));
    monster.y = 32 + (Math.random() * (canvas.height - 64));
};

game ကို...အစကေန..ၿပန္ကစားတာပါ..။
အစကေန..ၿပန္ကစားမယ္ဆိုရင္.. hero နဲ႔.. monster ကုိ..ေနရာၿပန္သတ္မွတ္ေပးမွာပါ..။
hero ကုိ..ေနရာသတ္မွတ္ဖို႔... canvas ရဲ႔.. width ကုိ..တည္ 2နဲ႔စား..။ canvas ရဲ႔.. height ကုိ..တည္ 2နဲ႔စား..။ ရတဲ့.အေၿဖအရ.. x ၀င္ရိုးနဲ႔.. y ၀င္ရိုးသတ္မွတ္ပါတယ္..။
monster ကုိေတာ့.. canvas ရဲ႔.. width ထဲက. 64 ႏွဳတ္.. random ေခါက္ၿပီး.. 32 ေပါင္းပါတယ္...။ height လည္း..တူတူပါပဲ..။
coding အားလံုး..ကူးၿပီးလို႔.. game ကစားၿပီး.. refresh လုပ္ၾကည့္ပါ...။
hero ရဲ႔ေနရာက..မေၿပာင္းပါဘူး..။
monster ကေတာ့... refresh တစ္ခါလုပ္တုိင္း..တစ္ခါေၿပာင္းသြားပါတယ္.. ။

6. Update Game Objects

// Update game objects
var update = function (modifier) {
    if (38 in keysDown) { // Player holding up
        hero.y -= hero.speed * modifier;
    }
    if (40 in keysDown) { // Player holding down
        hero.y += hero.speed * modifier;
    }
    if (37 in keysDown) { // Player holding left
        hero.x -= hero.speed * modifier;
    }
    if (39 in keysDown) { // Player holding right
        hero.x += hero.speed * modifier;
    }
ကစားတ့ဲသူက.. hero နဲ႔.. monster ကုိ.. ေပးထားတဲ့.. position ကေန..စိတ္ၾကိဳက္ေရြ႔လိုက္တဲ့.တန္ဖိုးကုိ..တြက္ခ်က္ေပးတာပါ..။

7. Touching

// Are they touching?
    if (
        hero.x <= (monster.x + 32)
        && monster.x <= (hero.x + 32)
        && hero.y <= (monster.y + 32)
        && monster.y <= (hero.y + 32)
    ) {
        ++monstersCaught;
        reset();
    }
};

hero နဲ႔.. monster နဲ႔... ထိမိသြားတယ္..ဆိုရင္.. monsterCaunght ကုိ..  1 တိုးပါမယ္...။
game ကုိ..အစကေနၿပန္စပါတယ္..။
အဲ့ဒါေၾကာင့္.. အေပၚက reset the game function ကုိ..လွမ္းေခၚလိုက္ပါတယ္...။

8. Rendering

// Draw everything
var render = function () {
    if (bgReady) {
        ctx.drawImage(bgImage, 0, 0);
    }

    if (heroReady) {
        ctx.drawImage(heroImage, hero.x, hero.y);
    }

    if (monsterReady) {
        ctx.drawImage(monsterImage, monster.x, monster.y);
    }

    // Score
    ctx.fillStyle = "rgb(250, 250, 250)";
    ctx.font = "24px Helvetica";
    ctx.textAlign = "left";
    ctx.textBaseline = "top";
    ctx.fillText("Goblins caught: " + monstersCaught, 32, 32);
};

rendering က.. အေပၚဆံုးက.. canvas နဲ႔. background image နဲ႔..သက္ဆုိင္ပါတယ္..။
Image ေတြကို..ဒီတိုင္းထည့္လုိ႔မရပါဘူး... ctx.drawImage(bgImage, 0, 0); ဆိုၿပီး.ထည့္ရပါတယ္..။
hero နဲ႔.. monster လည္း..ဒီအတိုင္းပါပဲ..။ သူတို႔လည္း..ပံုေတြပဲေလ..။
position က x ၀င္ရိုးနဲ႔... y ၀င္ရိုးအတိုင္းသြားမွာမုိ႔လို႔.. hero.x , hero.y , monster.x , monster.y ဆိုၿပီး..သတ္မွတ္ထားတာပါ..။
ctx.fillStyle = "rgb(250, 250, 250)"; ဆိုေတာ့... Goblins caught:  စာသားက.. အၿဖဴေရာင္နဲ႔.ေပၚေနတာပါ..။
font ကုိ. " Helvetica " သံုးထားပါတယ္..။
align က. left ထားၿပီး. basealign ကုိ. top ထားထားလို႔.. Goblins caught:  က ..အေပၚ..ဘယ္ဘက္မွာ..ေပၚေနတာပါ..။
ctx.fillText("Goblins caught: " + monstersCaught, 32, 32); ကေတာ့.. monster နဲ႔..ထိမိတဲ့..အၾကိမ္အေရအတြက္ကုိ..ၿပန္ၿပေပးထာတာပါ..။
Are they touching က. monsterCaught ကုိ..ၿပန္ေခၚၿပီး...သံုးထားတာပါ.။

9. Game Looping

// The main game loop
var main = function () {
    var now = Date.now();
    var delta = now - then;

    update(delta / 1000);
    render();

    then = now;
};
game ကုိ..အၾကိမ္အေရ..ဘယ္ေလာက္နဲ႔..ေဆာ့မယ္ဆိုတာ..အတိအက်မရွိလို႔.. Looping ပတ္ၿပီးသံုးတာပါ..။
update(delta / 1000); render(); က..ဘယ္ game မဆို..ပံုေသပါပဲ..။ Formula လာေပါ့.. :)

10. Start Game

// Let's play this game!
reset();
var then = Date.now();
setInterval(main, 1); // Execute as fast as possible

Game ကုိ..အစကေနကစားေတာ့မယ္ဆိုရင္...အရင္.ေဆာ့ၿပီးသား..အေဟာင္းေတြ..က်န္ခဲ့မွာစိုးလို႔.. reset(); ဆိုတဲ့.. function ကုိ..အရင္လွမ္းေခၚလိုက္တာပါ..။
ၿပီးရင္.. game ကုိ.. looping ပတ္ၿပီးေတာ့.. အေပၚက..အဆင့္ေတြကုိ..တစ္ဆင့္ခ်င္းလွမ္းေခၚၿပီး..အလုပ္လုပ္ပါတယ္..။

Notepad ထဲမွာ..ေရးထည့္ရမယ့္..ပံုစံက..ဒီလိုမ်ိဳးေလးပါ..။

// Create the canvas
var canvas = document.createElement("canvas");
var ctx = canvas.getContext("2d");
canvas.width = 512;
canvas.height = 480;
document.body.appendChild(canvas);

// Background image
var bgReady = false;
var bgImage = new Image();
bgImage.onload = function ()
 {
    bgReady = true;
};
bgImage.src = "images/background.png";

// Game objects
var hero = {
    speed: 256, // movement in pixels per second
    x: 0,
    y: 0
};
var monster = {
    x: 0,
    y: 0
};
var monstersCaught = 0;

// Handle keyboard controls
var keysDown = {};

addEventListener("keydown", function (e) {
    keysDown[e.keyCode] = true;
}, false);

addEventListener("keyup", function (e) {
    delete keysDown[e.keyCode];
}, false);

// Reset the game when the player catches a monster
var reset = function () {
    hero.x = canvas.width / 2;
    hero.y = canvas.height / 2;

    // Throw the monster somewhere on the screen randomly
    monster.x = 32 + (Math.random() * (canvas.width - 64));
    monster.y = 32 + (Math.random() * (canvas.height - 64));
};

// Update game objects
var update = function (modifier) {
    if (38 in keysDown) { // Player holding up
        hero.y -= hero.speed * modifier;
    }
    if (40 in keysDown) { // Player holding down
        hero.y += hero.speed * modifier;
    }
    if (37 in keysDown) { // Player holding left
        hero.x -= hero.speed * modifier;
    }
    if (39 in keysDown) { // Player holding right
        hero.x += hero.speed * modifier;
    }

    // Are they touching?
    if (
        hero.x <= (monster.x + 32)
        && monster.x <= (hero.x + 32)
        && hero.y <= (monster.y + 32)
        && monster.y <= (hero.y + 32)
    ) {
        ++monstersCaught;
        reset();
    }
};

// Draw everything
var render = function () {
    if (bgReady) {
        ctx.drawImage(bgImage, 0, 0);
    }

    if (heroReady) {
        ctx.drawImage(heroImage, hero.x, hero.y);
    }

    if (monsterReady) {
        ctx.drawImage(monsterImage, monster.x, monster.y);
    }

    // Score
    ctx.fillStyle = "rgb(250, 250, 250)";
    ctx.font = "24px Helvetica";
    ctx.textAlign = "left";
    ctx.textBaseline = "top";
    ctx.fillText("Goblins caught: " + monstersCaught, 32, 32);
};

// The main game loop
var main = function () {
    var now = Date.now();
    var delta = now - then;

    update(delta / 1000);
    render();

    then = now;
};

// Let's play this game!
reset();
var then = Date.now();
setInterval(main, 1); // Execute as fast as possible

အဲ့ဒါေတြအားလံုးကုိ.. copy ကူးၿပီး.. Game Folder ေအာက္က.. js Folder ထဲမွာ.. game.js ဆိုၿပီး.. Save လုပ္ပါမယ္.။

အားလံုးၿပီးသြားရင္.. Game Folder ထဲက.. index.html ကုိ.. double click ဖြင့္ၿပီး.. ကစားႏိုင္ပါၿပီ

ဒီေလာက္ဆိုရင္ေတာ့... game တစ္ခုရဲ႔..အေၿခံသေဘာတရားကို...နားလည္မယ္လို႔..ထင္ပါတယ္..။ online မွာလည္း..ရွာၾကည့္ၾကပါ..။ html ကိုသံုးၿပီး..ေရးထားတဲ့.. game ေတြအမ်ားၾကီးပါပဲ..။ super mario လုိမ်ိဳး.. game ကုိ..ကုိယ္တိုင္ထြင္ၾကည့္ၾကေတာ့ေပ့ါေနာ္.. ^_^

ပါဖိုင္ေတြ ခြဲနည္း ၊င္းနည္း




အရင္ဆံုး .part1.rar, .part2.rar စတဲ့ အပိုင္းခြဲနည္းကိုေဆြးေႏြးပါမယ္..
step{ 1 } desktop ေပၚမွာ folder တစ္ခုထုတ္လိုက္ပါ.
step{ 2 } အဲဒီ folder ကိုဖြင့္ျပီး  မိမိခြဲမည့္ name.exe program ကိုထည့္လိုက္ပါ။
step{ 3 } name.exe program ေပၚ မွာ Right Click \ Add to Archive... ကို click လိုက္ပါ။


step{ 4 } Archive name and parameters box ေပၚလာရင္ေအာက္ကက်ေနာ္ဝိုင္းေပးထားတဲ့ေနရာမွာ မိမိ ခြဲခ်င္တဲ့ .exe ရဲ ့ဆိုဒ္အလိုက္ တန္ဖိုးထည့္ေပးရပါမယ္. ( ဥပမာ...အခု က်ေနာ္က Firefox Setup 9.0.1.exe ကို ခြဲျပမွာဆိုေတာ့ သူ ့ဆိုဒ္က 14.5 MB ရွိတဲ့အတြက္  5 MB ဆိုျပီး တန္ဖိုးေရးေပးပါမယ္.) ေအာက္ပံု -
 

step{ 5 } အခုဆိုရင္ မိမိခြဲခ်င္တဲ့ Firefox Setup 9.0.1.exe ကို  .part1.rar, .part2.rar ,.part3.rar, .part4.rar ဆိုျပီး  .rar ဖိုင္ အျဖစ္ခြဲထားလိုက္ျပီးျဖစ္ပါတယ္. ေအာက္ပံု -


အခုထပ္ျပီးေဆြးေႏြးမွာက အထက္မွာက်ေနာ္ခြဲေပးခဲ့ျပီးျဖစ္တဲ့ .part1.rar, .part2.rar စတဲ့ ဖိုင္ေတြကို မည္သည့္ေနရာကဘဲ ရသည္ျဖစ္ေစ မူလ Setup.exe software file ကိုရရွိေအာင္ျပဳလုပ္တဲ့ နည္းျဖစ္ပါတယ္. ( ဥပမာ. အေပၚက က်ေနာ္ ခြဲထားခဲ့တဲ့ .rar ဖိုင္ ေတြကို မူလ Firefox Setup 9.0.1.exe အတိုင္း ျပန္ရေအာင္ ေပါင္းေပးပါမယ္ ).

step{ 1 } မိမိတို ့မွာရွိေနတဲ့ အပိုင္းအပိုင္းျဖစ္ေနတဲ့ .rar ဖိုင္ေတြကို folder တစ္ခုထဲမွာထားလိုက္ပါ.ျပီး ရင္ ေအာက္ကပံုေလးအတိုင္း name.part1.rar ေပၚမွာ Right Click \ Extract here ကို Click လိုက္ပါ။

step{ 2 } အခုဆိုရင္ မိမိတို ့ရဲ ့အပိုင္းပိုင္းျဖစ္ေနတဲ့ .part1.rar, .part2.rar စတဲ့ ဖိုင္ေတြကို ျပန္လည္ေပါင္းစည္းခဲ့ျပီးျဖစ္ပါတယ္. ေအာက္ပံု -

 
ေက်းဇူးတင္ပါတယ္..

Calculator လုပ္မယ္



ေအာက္ တြင္ေဖၚျပေပးထားတဲ့ .bat code ေလးေတြကို Notepad ထဲ ကူးယူပီးေတာ့ .bat နဲ့ Save လိုက္ပါ...
code:>>>



@ECHO OFF
color f4
title CALCULATOR
ECHO Calculator Version 1
ECHO CREATED BY CHIT TEE
ECHO ------------------------------
-----------------
ECHO * = MULTIPLY
ECHO + = ADD
ECHO - = SUBTRACT
ECHO ------------------------------
-----------------
pause

:loop

echo.
echo ------------------------------
-----------------
SET /p UDefine=
SET /a UDefine=%UDefine%
ECHO =
ECHO %UDefine%
ECHO.
goto loop


ၿပီးရင္ေတာ့ သူ႕ကို ဖြင့္ၿပီးေတာ့ တြက္ခ်က္ၾကေတာ့ ဟီးးး

Thursday, May 30, 2013

ေနာက္ဆံုးေပၚ ရုပ္ရွင္ဇတ္ကားေတြၾကည့္ခ်င္တဲ့သူငယ္ခ်င္းေတြအတြက္



ေနာက္ဆံုးေပၚ ရုပ္ရွင္ဇတ္ကားေတြၾကည့္ခ်င္တဲ့သူငယ္ခ်င္းေတြအတြက္
ရုပ္ရွင္ၾကည့္မယ္ဆိုရင္ http://www.solarmovie.eu/ ထဲမွာ ကုိယ္နွစ္သက္တဲ့ ဇတ္လမ္းကုိၾကည့္ရႈခံစားလို႔ရပါတယ္ ျမန္မာနုိင္ငံအတြက္မပါ :)
ကြန္နက္ရွင္ေတာ္ေတာ္ေကာင္းမွ ၾကည့္ရတာအဆင္ေျပပါတယ္
 နမႈနာပံုပါ  ေအာက္က လင့္ေတြကုိ ကလစ္ျပီးေတာ့ ၾကည့္ရမွာပါ
အဓိက လိုင္းေကာင္းဖို႔ဘဲလိုတယ္

Tuesday, May 28, 2013


(သက္(၃၀)မတုိင္ခင္ လူတုိင္းဖတ္သင့္တဲ့ ႏုိင္ငံတကာ စာအုပ္မ်ားစာရင္း မွာပါတဲ့ The Art Of War by Sum Tzu ရဲ႕ဘာသာျပန္စာအုပ္ေလးပါ။
ဆြန္ဇူး၏ စစ္ပညာက်မ္း (Art of War) ကို စစ္ေရးစစ္ရာမ်ား တက္ သိ ကၽြမ္းက်င္ဖို႔ထက္ စီးပြားေရးေလာကမွာ ေအာင္ျမင္ဖို႔ အဖတ္အ႐ႈမ်ားသလို၊ အစိုးရ (အုပ္ခ်ဳပ္ေရး) အေၾကာင္း ေရး ထားသည့္ မက္ခီးယားဗဲလီး၏ မင္းသား ( The Prince ) ကိုလည္း စီးပြားေရးလုပ္ငန္းတစ္ခု အတြက္ လမ္းညႊန္အျဖစ္ အသံုးျပဳေနၾကတာမ်ားပါသည္။
ထို႔အတူ ဤစာအုပ္ ကိုလည္း စီးပြားေရး လုပ္ငန္းတစ္ခု အတြက္ ထိေရာက္ေအာင္ျမင္ေသာ ဖန္တီးေရး လုပ္ငန္းစဥ္မ်ား ေဖာ္ေဆာင္ရန္ အသံုးျပဳႏိုင္၏..
ထို႕ေၾကာင့္ က်ေနာ္သူငယ္ခ်င္းမ်ား အဆင္ေျပလြယ္ကူစြာ ဖက္ရႈႏိုင္ရန္က်ေနာ္မွာ ဆြန္ဇု ၏ စစ္ပညာက်မ္း ဘာသာျပန္စာအုပ္မွ အခန္းလိုက္ ကူယူေဖာ္ျပေပးသြားပါမည္။
ဆြန္ဇု အတၳဳပၸတၱိ (ေကာက္ႏုတ္ေရးသားခ်က္)
စြတ္မာခ်န္ဒ
(တရုတ္ျပည္သမိုင္းေမာ္ကြန္းတင္ပညာရွင္)
ဆြန္ဇု၏ အမည္ရင္းကာ ဆြန္ဝူျဖစ္၏။ခ်ီႏိုင္ငံ ဇာတိတည္း။ဆြန္ဇုသည္ စစ္ပညာက်မ္းျဖင့္ ဝူဘုရင္ဟိုဠဴထံ ဆက္သ အခစားဝင္၏။ဝူဘုရင္ဟိုဠဴက အေဆြေတာ္၏ စစ္ပညာက်မ္းပါ ၁၃ခန္းကို ငါကိုယ္ေတာ္တိုင္ ဖက္ရႈၿပီး ျဖစ္၏။စစ္သည္နည္းနည္းျဖင့္ အစမ္း သရုပ္ျပ၍ ရႏိုင္ပါ၏ေလာ ဟုေမးေတာ္မူ၏။
ရႏိုင္းေၾကာင္းပါ ဟု ဆြန္ဇုက ေလွ်ာက္၏။မင္းႀကီးက 'မိန္းမသားမ်ားႏွင့္ေကာ စမ္းျပႏိုင္ပါ၏ေလာ" ဟုေမးလာျပန္၏။
"အရွင္မင္းႀကီး ရႏိုင္ပါ၏" ဟုဆြန္ဇုက ျပန္ေျဖ၏။
သို႕ႏွင့္ အမိန္႕ေတာ္အရ စီစဥ္ေလ၏။ နန္းတြင္းမွာ ေမာင္မ အပ်ဳိေတာ္ရံ တစ္ရာ့ရွစ္ဆယ္ေယာက္ကို စုမိ၏။ဆြန္ဇုက ႏွစ္စုခြဲလိုက္၏။တပ္တစ္စုစီကို ဘုရင့္အခ်စ္ေတာ္ မိဖုရာငယ္တစ္ပါးစီ အသီးသီး ဦးစီးေစၿပီး အားလံုးးကို ကိုယ္စီကိုယ္ငွလွံမ်ား ကိုင္ေဆာင္ေစ၏။ဆြန္ဇုက "အသင္တို႕သည္ အသင္တို႕၏ ရင္ဝေရွ႕တည့္တည့္၊ဘယ္လက္၊ ညာလက္ႏွင့္ ေနာက္ေက်ာတို႕ကို သိၾကပါ၏ေလာ"ဟု ေမး၏။
"သိပါ၏" ဟုအပ်ဳိေတာ္ရံ ေမာင္းမ်ားက ေျဖ၏။
"ေရွ႕ၾကည့္ဆိုလွ်င္ ရင္ဝ ေရွ႕တည့္တည့္ကို ၾကည့္ပါ။ ဘယ္ၾကည့္ဆို ဘယ္လက္ဘက္ကို ၾကည့္၊ ညာၾကည့္ဆို ညာလက္ဘက္ကိုၾကည့္၊ေနာက္ၾကည့္ဆို ေနာက္ေက်ာဘက္ လွည့္ၾကည့္ " ဟု ဆြန္ဇုက မိန္႕မွာ၏။
"သိပါၿပီး" ဟုအပ်ဳိေတာ္ရံ ေမာင္းမမ်ား ကေျဖ၏။ဤေနာက္ စည္းကမ္းခ်မွတ္ ျပဌာန္းၿပီးသည္ႏွင့္ ဓားကိုင္လက္မရြံ႕သားမ်ား ခန္႕ထား၏။ အမိန္႕စည္းကမ္းမ်ားကို အထပ္ထပ္ အခါခါ ျပန္လည္ခ်ျပ
ရွင္းလင္းျပန္ေလ၏။
သို႕ႏွင့္ညာဘက္ၾကည့္ရန္ စည္တီး အမိန္႕ေပး၏။အပ်ဳိေတာ္ရံေမာင္းမမ်ား ဟားတိုတ္ ရယ္ၾကကုန္၏။
"စည္းကမ္း ျပ႒ာန္းျခင္း မျပက္သား၊ ရွင္းျပခ်က္ မပီျပင္ မမွတ္မိျခင္းသည္ တပ္မွဴး၏ အျပစ္ ျဖစ္၏" ဟုဆြန္ဇုက မိန္႕ဆို၏။
တဖန္း စည္းကမ္းျပ႒ာန္းခ်က္မ်ား အထပ္ထပ္ အခါခါ ခ်ျပရွင္းလင္းၿပီးေနာက္ ဘယ္ဘက္ၾကည့္ရန္ စည္တီး အမိန္႕ေပးျပန္၏။အပ်ဳိေတာ္ရံ ေမာင္းမမ်ားလည္း တစ္ဖန္ ဟားတိုတ္ရယ္ၾကျပန္၏။
"စည္းကမ္း ျပ႒ာန္းျခင္း မျပက္သား၊ ရွင္းျပခ်က္ မပီျပင္ မမွတ္မိျခင္းသည္ တပ္မွဴး၏ အျပစ္၊ ျပ႒ာန္းခ်က္ မ်ား ျပက္သား ရွင္းလင္းၿပီးေနာက္ စည္းကမ္း မလိုက္နာျခင္းသည္ တပ္စုမွဴးတို႕၏ အျပစ္သာ ျဖစ္ေတာ့ သည္"
သို႕ႏွင့္ တပ္စုမွဴးႏွစ္ေယာက္စလံုးကို ကြပ္မ်က္ရန္ စီစဥ္ေလေတာ့သည္။
ဝူဘုရင္ဟိုဠဴသည္ စင္ျမင့္မွ ရႈစားေနေလရာ၊ မိမိျမတ္ႏိုးေသာ မိဖုရားငယ္ႏွစ္ပါးစလံုး အသတ္ခံရမည္ ကို ျမင္ေလေသာ္ အထိတ္တလန္႕ျဖစ္ရၿပီး ခ်က္ခ်င္ အပါးေတာ္ဆက္သား အား တားမိန္႕ျပန္ေစ၏။
"ငါ ကိုယ္ေတာ္ျမတ္ကိုယ္တိုင္ အေဆြေတာ္ စစ္သူႀကီး၏ စစ္ေရး ကၽြမ္းက်င္ေၾကာင္းကို သိရၿပီ ျဖစ္၏။ မိဖုရားငယ္မ်ား မရွိက ငါကိုယ္ေတာ္ျမတ္ စားမဝင္၊ အိပ္မေပ်ာ္ ျဖစ္ရေခ်ေတာ့မည္၊ ငါကိုယ္ေတာ္ျမတ္ႏိုးေသာ မိဖုရားငယ္ ႏွစ္ပါးစလံုးအား မသက္ရန္ မိန္႕မွာေတာ္မူလိုက္သည္" ဟူ၏။
"အကၽြႏ္ုပါသည္ အမိန္႕ေတာ္အရ စစ္သူႀကီးအျဖစ္ ခန္႕အပ္ျခင္း ခံခဲ့ရၿပီး ျဖစ္၏။ စစ္သူႀကီးတို႕ မည္သည္ တပ္တြင္း၌ရွိမူ ရွင့္ဘုရင့္ အမိန္႕ေတာ္မ်ားကို မနာခံရာသည္လည္း ရွိ၏ " ဟု ဆြန္ဇုက ျပန္ေလွ်ာက္၏။ သို႕ျဖင့္ တပ္စုမွဴးမ်ားျဖစ္ၾကေသာ မိဖုရားငယ္ ႏွစ္ပါးစလံုးကို ကြက္မ်က္လိုက္၏။
တစ္ဖန္ ေနာက္လူလဲၿပီး တပ္စုမွဴးအျဖစ္ ခန္႕ထား၏။ စည္တီး အမိန္႕ေပးျပန္ေသာ္၊ အပ်ဳိေတာ္ရံ ေမာင္းမ မ်ားသည္ ဘယ္ညာ ေရွ႕ေနာက္၊ဒူးတုတ္ေျခေကြး အႀကိမ္ႀကိမ္ အလီလီ အားလံုး စည္းကမ္းတက်ရွိၿပီး အသံဗလံ မထြက္ရဲ ရွိၾကေလသတည္း။
ထို႕ေနာက္ ဆြန္ဇုက မင္းႀကီးထံ ဆက္သားေစလႊတ္ ေလွ်ာက္ထားေစ၏။ "တပ္မ်ား ညီညာစည္းကမ္းက် ရွိၿပီျဖစ္ေၾကာင္း အရွင္မင္းႀကီး ကိုယ္ေတာ္တိုင္ ႂကြေရာက္ ရႈစားႏိုင္ေတာ္မူပါေၾကာင္း အရွင္မင္းႀကီး စိတ္တိုင္းက် အသံုးေတာ္ ခ်ႏိုင္မည္ ျဖစ္ပါေၾကာင္း၊ မီးထဲ ေရထဲ ဆင္းခိုင္းလွ်င္လည္ဒ အမိန္႕ေတာ္အတိုင္း နာခံၾကလိမ့္မည္ ျဖစ္ပါေၾကာင္း" ေလွ်ာက္ ထားေစသတည္း၊။
"အသင္ စစ္သူႀကီး၊ အေဆာင္ေတာ္သို႕ ျပန္နားေနႏိုင္ပါၿပီ၊ ငါကိုယ္ေတာ္ျမတ္ ကိုယ္တိုင္ႂကြေရာက္ ရႈစားေတာ္မူရန္ ဆႏၵ မရွိေတာ့" ဟု ဝူဘုရင္ႀကီးက မိန္႕မွာ၏။
"အရွင္မင္းႀကီးသည္ အေျပာသာႏွစ္သက္ သေဘာက်တတ္သူတည္း၊ စစ္ပညာသေဘာကို လက္ေတြ႕ အသံုးမခ်တတ္ပါေပ" ဟု ဆြန္ဇုက ေကာက္ခ်က္ခ်၏။
ဝူဘုရင္ဟိုဠဴသည္လည္း ဆြန္ဇုမွာ စစ္ပညာ ကၽြမ္းက်င္သူတစ္ေယာက္ျဖစ္ေၾကာင္း ေကာင္းေကာင္း သိရၿပီးေလေသာ္ စစ္သူႀကီး အျဖစ္ခန္႕အပ္လိုက္ေလသည္။
ဝူႏိုင္ငံသည္ ၎၏အေနာက္ဘက္ပိုင္းရွိ အင္အားႀကီးမားေသာ ဆူႏိုင္ငံကို ေအာင္ႏိုင္ခဲ့ၿပီး ၎ၿမိဳ႕ေတာ္ ယင္းၿမိဳ႕ကိုလည္း တစ္ခ်ိန္တြင္ လက္ရ သိမ္းပိုက္ထားႏိုင္ခဲ့ေလးသည္။ ေျမာက္ပိုင္းရွိ ခ်ီႏိုင္ငံႏွင့္ က်င့္ႏိုင္ငံ တို႕အေပၚလည္ ၾသဇာအရွိန္အဝါ ႀကီးစြာ လႊမ္းမိုးႏိုင္ခဲ့ေလသည္။
ဝူဘုရင္ ဟိုဠဴသည္ ၿမိဳ႕ျပႏိုင္ငံမ်ား အၾကား ဂုဏ္သတင္း ၾသဇာတိကၠမ ႀကီးမားခဲ့ေလသည္။ဤသည္တို႕တြင္ ဆြန္ဇု၏ ႀကိိဳးပမ္း စြမ္းေဆာင္မႈမ်ား ပါဝင္ေနေၾကာင္း ထင္ရွားလွေပသတည္း။
************** ************** ************** **************
(စစ္ေရးသည္ တိုင္းျပည္အတြက္ အေရးအေၾကာင္းကိစၥရပ္ႀကီး ျဖစ္သည္။ေသေရး ရွင္ေရးအေပၚ အေျခတည္ၿပီး တည္တံ့ခိုင္ၿမဲေရးႏွင့္ ပ်က္သုဥ္းေရးအေၾကာင္းတရားျဖစ္ေပသည္)
အခန္း(၁)
စစ္ေရးပဏာမ သံုးသပ္ျခင္း
ဆြန္ဇုက ဤသို႕ မိန္႕ဆို၏-
စစ္ေရးသည္ တိုင္းျပည္အတြက္ အေရးအေၾကာင္း ကိစၥရပ္ႀကီးျဖစ္သည္။ ေသေရးရွင္ေရးအေပၚ အေျခ တည္ၿပီး တည္တံခိုင္ၿမဲေရးႏွင့္ ပ်က္သုဥ္ေရး အေၾကာင္းတရားျဖစ္ေပသည္။ ထို႕ေၾကာင္ မျဖစ္မေန ဆင္ျခင္ ဆန္းစစ္ ေလ့လာ ဂရုျပဳရမည္။
စစ္ေရးအေျခအေနကို ေကာင္းစြာ သိျမင္ရန္အလို႕ငွာ ရန္သူႏွင့္ မိမိတို႕ဘက္ရွိ အေၾကာင္းရပ္ႀကီး ငါးခ်က္အေပၚ အေျခတည္ၿပီး စီမံႀကံစည္ လႈပ္ရွားမႈမ်ားကို
ႏႈိင္းယွဥ္ သံုးသပ္တတ္ရမည္။ ယင္းတို႕ကား-
၁။ က်င့္ဝတ္တရား
၂။ ဥတု အာကာ သဘာဝ
၃။ ပထဝီ ေျမအေနအထား
၄။ ေခါင္းေဆာင္တပ္မွဴး
၅။ စည္းကမ္းဥပေဒတို႕ ျဖစ္ၾက၏။
က်င့္ဝတ္တရား ဆိုသည္ကား အုပ္စိုးသူ တို႕အေနႏွင့္ ေကာင္းျမတ္ေသာ က်င့္ဝတ္တရား မ်ားႏွင့္ ျပည့္စံု ညီညြတ္ၿပီး ျပည္သူျပည္သားမ်ားအား အထက္ႏွင့္အတူစိတ္ရင္း သေဘာရင္း တစ္သားတည္း က်ေရာက္ေနေစျခင္း ကို ဆိုလို၏။ ဤသို႕အားျဖင့္ ျပည္သူတို႕ကိုအုပ္စိုးသူ တို႕က ေစလိုရာ ေစစားႏိုင္ ၿပီး ေသအတူ ရွင္မကြာအခက္အခဲအႏၱရာယ္မ်ား မမႈပဲ စြန္႕လႊတ္စြန္႕စား ရဲရဲ ရင္ဆိုင္လာၾက လိမ့္မည္ ျဖစ္သည္။
ဥတု အာကာ သဘာဝဆိုသည္မွာ ေန႕ႏွင့္ည အပါအဝင္ တရုတ္လိုအေခၚ ယင္းဓာတ္(မဓာတ္/သီတ)ႏွင့္ ယန္းဓာတ္(ဖိုဓာတ္/ဥဏွ)၊ အပူအေအး၊ ဥတုရာသီႏွင့္ အခ်ိန္အခါ ကာလတို႕ကို ၿခံဳ၍ ဆိုလိုျခင္း ျဖစ္သည္။
ပထဝီ ေျမအေနအထား ဆိုသည္မွာ အနီးအေဝး၊ အႏၱရာယ္ က်ေရာက္ႏုိင္ေသာ အေရးပါသည့္ေနရာႏွင့္ လံုၿခံဳ လြယ္ကူ ေခ်ာမြတ္သည့္ေနရာ ေျမျပင္ အက်ဥ္းအက်ယ္၊ ေသေရးရွင္းေရးကိန္းဆိုက္ရာ
ေျမအေနအထားတို႕ကို ဆိုလို၏။
ေခါင္းေဆာင္တပ္မွဴး(ေခၚ)စစ္သူႀကီးတို႕ မည္သည္ကား ဉာဏ္ပညာႀကီးမႈ၊ကတိသစၥာရွိမႈ၊ ေမတၱာအၾကင္နာ ရွိမႈ၊ ရဲစြမ္းသတၱိ ရွိမႈ၊ တည္ၾကည္ျပက္သား စည္းကမ္းႀကီးမႈ စသည့္အရည္အခ်င္းမ်ားႏွင့္ ျပည့္စံုရမည္ဟု ဆိုလို၏။စည္ကမ္းဥေပဒဆိုသည္မွာ တပ္မ်ားစနစ္တက် ဖြဲ႕စည္းအုပ္ခ်ဳပ္တည္ေဆာက္မႈ၊ အရာရွိ အရာထမ္းမ်ား ခန္႕အပ္စီမံမႈ၊ စစ္ပစၥညး္ ရိကၡာ ထိန္းသိမ္းခြဲေဝသံုးစြဲမႈ တို႕ကိုဆိုလို၏။
အထက္ပါ အခ်က္ႀကီး ငါးရပ္တို႕ကို စစ္သူႀကီး(ေခၚ) ေခါင္းေဆာင္တပ္မွဴးတိုင္းမျဖစ္မေန နားလည္ သိထား အပ္ေပသည္။၎အေၾကာင္းအခ်က္တို႕ကို ေကာင္းစြာ အျပည့္အဝ နားလည္သိရွိပါက စစ္ပြဲကို ေအာင္ႏုိင္ ရာ၏။မသိ နားမလည္သူတို႕ကားစစ္ပြဲမေအာင္ႏိုင္ရာ။
ထို႕ေၾကာင့္ အထက္ပါ အခ်က္ႀကီး ငါးရပ္ႏွင့္အညီ နည္းဗ်ဴဟာမ်ားကို ရွာႀကံ ခ်မွတ္ရာမွ ေအာက္ပါ အေျခ အေန အရပ္ရပ္တို႕ကို ႏႈိင္းယွဥ္ေလ့လာသံုးသပ္ ဆင္ျခင္တတ္ရေပမည္။ ယင္တို႕သည္ကား -မည္သည့္ ဘက္က အုပ္စိုးသူတို႕တြင္ က်င့္ဝတ္တရား ျပည့္ဝမွန္ကန္ က်င့္ႀကံအားထုတ္ သနည္း။မည္သည့္ ဘက္က စစ္သူႀကီးတို႕တြင္ လက္ရံုးရည္၊ႏွလံုးရည္ျပည့္စံုထက္ျမတ္သနည္း။ ဥတု အာကာသဘာဝ အေျခအေနႏွင့္ ပထဝီ ေျမအေနအထားမ်ားႏွင့္ ပက္သက္၍ မည္သည့္ဘက္က အခြင့္အလမ္းသာသနည္း။
အမိန္႕ စည္းကမ္းဥပေဒမ်ားကို မည္သူဘက္က တင္းက်ပ္စြာ ျပ႒ာန္းလိုက္နာ က်င့္သံုးသနည္း။ မည္သည့္ ဘက္က တပ္အင္အား ပိုမိုမ်ားျပား ႀကံခိုင္အားသာသနည္း။စစ္သည္မ်ားကို မည္သည့္ဘက္ က ေကာင္းစြာ စစ္ေရးေလ့က်င့္ထားသနည္း။ဆုေပး၊ ဒဏ္ေပးစနစ္ကို မည္သူ႕ဘက္က မွန္ကန္ေတာ္ေလ်ာ္စြာ က်င့္သံုး သနည္း။အထက္ပါ ႏႈိင္းယွဥ္ေလ့လာခ်က္မ်ားအရသံုးသပ္စိတ္ျဖာလို္က္လွ်င္ မည္သူ႕ဘက္က ႏုိင္မည္၊ ရႈံးမည္ကို ကၽြႏ္ုပ္တို႕ ႀကိဳတင္ခန္႕မွန္း သိရွိႏိုင္ေလာက္ေပၿပီး။
ကၽြႏ္ုပ္၏ အႀကံဉာဏ္ကို အရွင္းမင္းႀကီး လက္ခံအသံုးျပဳပါက စစ္ပြဲ ေသခ်ာေအာင္ ႏိုင္မည္ျဖစ္၍ ကၽြႏ္ုပ္ လည္း ဆက္လက္ေနထိုင္ ခစားသြားႏိုင္မည္။ ကၽြႏ္ုပ္၏ အႀကံဉာဏ္ကို လက္မခံပဲ စစ္တိုတ္ပါက
က်ိန္းေသ ရႈံးနိမ့္လိမ့္မည္ သိသည္အေလ်ာက္ ကၽြႏု္ပ္လည္း မေနလိုဘဲ ထြက္ခြာသြားမည္သာျဖစ္သည္။
(တစ္နည္း အဓိပၸာယ္ဖြင့္ ျပန္ဆိုျခင္း တပ္မွဴးမ်ားသည္ ကၽြႏု္ပါ၏ အႀကံညာဏ္ အတိုင္း လိုက္နာက်င့္သံုး ပါက ေအာင္ပြဲမ်ား ရယူႏုိင္မည္ ျဖစ္သည့္ အေလ်ာက္ ဆက္လက္တာဝန္ထမ္းေဆာင္ပါေစေလ။ကၽြႏ္ုပ္၏
အႀကံဉာဏ္မ်ားကို လိုက္နာက်င့္သံုးျခင္း မရွိေသာ တပ္မွဴမ်ားကို အသံုးခ်ပါက မုခ်ရႈံးပြဲႏွင့္ ရင္ဆိုင္ ရေပေတာ့မည္ ျဖစ္၍တာဝန္ ေပးခန္႕အပ္ျခင္း မျပဳပါႏွင့္ေတာ့)
အက်ဳိးရွိေသာ အႀကံဉာဏ္ေကာင္းမ်ားကို လက္ခံက်င့္သံုးႏုိင္ျခင္းအားျဖင့္ အေနအထားေကာင္း တစ္မ်ဳိး တစ္ဖံုးကို ဖန္တီးေပးရာေရာက္ေလရာ၊ စစ္ေရးလႈပ္ရွားမႈကို တစ္ဘက္တစ္လမ္းကေနလည္ အေထာက္ အကူျပဳရာေရာက္ေပသည္။ဤမည္ေသာ အေနအထားဆိုသည္ကား မိမိအတြက္ အက်ဳိးရွိေသာအေျခေပၚ တည္မွီ၍ စစ္၏လက္ဦးမႈကို အေျခအေနႏွင့္ လိုက္ေလ်ာညီေထြ လိမၼာပါးနပ္စြာ အမိအရ ကိုယ္တြယ္ စီးမံႏိုင္ရာ၏ဟု ဆိုလိုေပသည္။
စစ္ေရးစစ္ရာဟူသည္ကာ ပရိယာယ္လွည့္စားမႈအေပၚ အေျခတည္၏။ထို႕ေၾကာင့္ တိုတ္ႏုိင္သည္ကိုလည္း မတိုတ္ႏိုင္ဟန္ေဆာင္ပါ။စစ္ကစား လႈပ္ရွားေနသည္ကိုလည္ မလႈပ္မရွားေလဟန္ လွည့္စားပါ။
နီးရာ ကိုႀကံၿပီး ေဝးရာကို မွန္းသေယာက္လႈပ္ရွားပါ။ လွမ္းရာကို ႀကံၿပီး နီးရာကို မွန္းသေယာင္ လွည့္စားပါ။ ရန္သူ႕အႀကိဳက္ မက္လံုးေပး ျမွဴဆြယ္ပါ။ ရန္သူ႕တပ္ ဗရမ္းဗတာျဖစ္လွ်င္ ဝင္စီးပါ။
ရန္သူ အးႀကီး လွ်င္ လံုးၿခံဳေအာင္အသင့္ ျပင္ထားပါ။ရန္သူ အင္အားေတာင့္တင္းလွ်င္ ရင္ဆိုင္ တိုတ္ရန္ ေရွာင္းရွားပါ။ ရန္သူ စိတ္ဆက္တိုလြယ္လွ်င္ ေဒါသပုန္ထ စိတ္ရႈပ္ေအာင္ ဆြေပးပါ။ ရန္သူ႕စိတ္ သိမ္ငယ္
ေနလွ်င္ အထင္ႀကီး စိတ္ႀကီးဝင္ေအာင္ လုပ္ပါ။ ရန္သူတို႕ သက္သာၿငိမ္ဆိတ္ေနပံုရွိလွ်င္ စိတ္ပန္း လူပန္းျဖစ္ေအာင္ လုပ္ပါ။ ရန္သူ႕တပ္တြင္း စည္းစည္းလံုးလံုး ရွိလွ်င္ ေသြးခြဲ သက္လွ်ိဳပါ။
ရန္သူ႕ ဘက္က အသင့္ျပင္ဆင္ထားျခင္း မရွိေသာေနရာကို ေရြးတိုတ္ပါ။ ရန္သူတို႕ ေမွ်ာ္လင့္မထားေသာ အခ်ိန္ခါ ေနရာကေန အလစ္ထြက္တိုတ္ပါ။ ဤသည္တို႕ကား စစ္ေရးစစ္ရာ ေအာင္ႏိုင္ေရးအတြက္ နည္းပရိယာယ္မ်ားတည္း။ စီရင္လွည့္စားမႈကို ႀကိဳတင္ ပံုေသကားက် ေျပာျပထား၍ မရႏိုင္ေခ်။
စစ္မတိုက္မီကပင္ ေအာင္ပြဲရႏိုင္ေၾကာင္းႀကိဳတင္ ခန္႕မွန္း သိရွိႏိုင္ျခင္း အေၾကာင္းကားႀကိဳတင္ တြက္ ခ်က္ျပင္ဆင္မႈ ေစ့စပ္ေသခ်ာၿပီး ေအာင္ပြဲရ အေျခအေနမ်ား အျပည့္အဝဖန္တီးထားႏိုင္ေသာေ ၾကာင့္ ျဖစ္ရာ၏။
စစ္မတိုင္မီကပင္ မေအာင္ႏိုင္ေၾကာင္းႀကိဳတင္ ခန္႕မွန္းသိရွိႏိုင္ျခင္းမွာ ႀကိဳတင္တြက္ခ်က္ျပင္ဆင္မႈ အားနည္းၿပီး ေအာင္ပြဲရ အေျခအေန ဖန္တီးမႈ မလံုးမေလာက္ေသာေၾကာင့္ျဖစ္ရာ၏။ႀကိဳတင္ တြက္ ခ်က္ျပင္ဆင္မႈ မ်ားမ်ားျပည့္စံုေလ၊ေအာင္ပြဲရႏိုင္ေလ ျဖစ္သည္။ႀကိဳတင္ မတြက္မခ်က္ မျပင္ဆင္ေသာ္ အဘယ္သို႕ေသာ္ ေအာင္ပြဲကိုမွ် ဧကန္မရႏိုင္။အထက္ပါတို႕ကို ေထာက္ရႈ႕ေလ့လာျခင္းအားျဖင့္ အရံႈးအႏိုင္ အေျခအေနကို ေပၚလြင္ထင္ရွားစြာ ကၽြႏု္ပ္တို႕ သိရွိႏိုင္မည္ ျဖစ္သတည္း။
အပိုင္း -၂ ကို ဆက္လက္ဖက္ရႈရန္

Steven Spielberg's JURASSIC PARK is coming in 3D and opens in Malaysia on 30 May!

It's time to see the action blockbuster like how it was meant to be seen.
Related Posts Plugin for WordPress, Blogger...