Hot Potato

ကၽြန္ေတာ္တို႔အခု Hot Potato game ေလး တစ္ခု ဖန္တီးၾကည့္ရေအာင္။ Hot Potato game ဆိုတာက အားလူး ကို အႀကိမ္ အေရအတြက္ တစ္ခု အထိ သြားၿပီး လက္ထဲမွာ အားလူး ရွိတဲ့ သူက ထြက္ရပါတယ္။ ေနာက္ဆံုး တစ္ေယာက္တည္း က်န္တဲ့ အထိပါ။

ကၽြန္ေတာ္တို႔ အခု အဲဒီ အတြက္ program ေလးကို Queue ကို အသံုးျပဳၿပီး ေရးပါမယ္။ မေရးခင္ စဥ္းစားၾကည့္ရေအာင္။

Aung Aung, Mg Mg , Thiha , Thin Thin , Ko Ko , Hla Hla ဆိုၿပီး ရွိတယ္။ အာလူး ၈ ႀကိမ္ေျမာက္ လူက ထြက္ ရမယ္ ဆိုရင္ Thiha က အရင္ ထြက္ရပါမယ္။ ေနာက္တစ္ႀကိမ္ဆိုရင္ Aung Aung ထြက္ရမယ္။ ၿပီးရင္ Mg Mg။ ၿပီးေတာ့ Hla Hla။ ၿပီးေတာ့ Thin Thin။ ေနာက္ဆံုး Ko Ko သာက်န္ခဲ့ပါမယ္။

အဲဒီ Program ေလးကို စဥ္းစားရင္ အာလူးဟာ တစ္ေယာက္ၿပီး တစ္ေယာက္ ေျပာင္းသြားတယ္။ ေနာက္ဆံုး Hla Hla ဆီ ေရာက္သြားရင္ Aung Aung ကေန ျပန္စတယ္။

တနည္းေျပာရင္ ပထမဆံုး က လူကို ေနာက္ကေန ျပန္ၿပီး တန္းစီ ခိုင္းတာနဲ႔ အတူတူပါပဲ။ အာလူးကို ေနာက္တစ္ေယာက္ကို ေပးၿပီးၿပီ ဆိုရင္ ေနာက္ကို ျပန္သြားၿပီး တန္းစီ ပံုစံပါပဲ။

Aung Aung, Mg Mg , Thiha , Thin Thin , Ko Ko , Hla Hla

ဆိုပါဆို႔။ Aung Ang ကေန Mg Mg ကို အာလူး ေပးၿပီးရင္ Queue က

Mg Mg , Thiha , Thin Thin , Ko Ko , Hla Hla, Aung Aung

ျဖစ္သြားမယ္။ ၿပီးရင္

Thiha , Thin Thin , Ko Ko , Hla Hla, Aung Aung, Mg Mg

ျဖစ္မယ္။

ဒါကို သေဘာေပါက္ၿပီဆိုရင္ ကၽြန္ေတာ္တို႔ code ေရးလို႔ရပါၿပီ။

from pyqueue import Queue def hotPotato(namelist, num): simqueue = Queue() for name in namelist: simqueue.enqueue(name) while simqueue.size() > 1: for i in range(num): simqueue.enqueue(simqueue.dequeue()) simqueue.dequeue() return simqueue.dequeue() print(hotPotato(["Aung Aung", "Mg Mg" , "Thiha" , "Thin Thin" , "Ko Ko" , "Hla Hla"],8))

Code ေလးက ရွင္းပါတယ္။ ေထြေထြ ထူးထူး မရွင္းျပေတာ့ပါဘူး။

simqueue.enqueue(simqueue.dequeue())

အဲဒီ code ေလးက dequeue လုပ္ၿပီးတာနဲ႔ ခ်က္ျခင္း enqueue ျပန္လုပ္ဆိုတဲ့ သေဘာပါ။

အခုဆိုရင္ေတာ့ Queue အေၾကာင္း အနည္းငယ္သေဘာေပါက္ေလာက္ၿပီ ထင္ပါတယ္။

results matching ""

    No results matching ""