এই কোটলিন কোডল্যাবে আপনি আরেকটি ডাইস গেম তৈরি করবেন, লাকি ডাইস রোল, একটি ভাগ্যবান নম্বর রোল করার চেষ্টা করছেন। আপনার প্রোগ্রাম একটি ভাগ্যবান নম্বর সেট এবং পাশা রোল হবে. তারপরে আপনি ভাগ্যবান নম্বরের বিপরীতে রোলটি পরীক্ষা করুন এবং আউটপুটে একটি উপযুক্ত বার্তা প্রিন্ট করুন। এটি সম্পন্ন করার জন্য, আপনি আপনার Kotlin প্রোগ্রামে মান তুলনা করতে এবং বিভিন্ন সিদ্ধান্ত নিতে শিখবেন।
অ্যাপের ইউজার ইন্টারফেস নিয়ে চিন্তা না করেই আপনাকে প্রোগ্রামিং ধারণাগুলিতে ফোকাস করতে সাহায্য করার জন্য, আপনি ব্রাউজার-ভিত্তিক কোটলিন প্রোগ্রামিং টুল ব্যবহার করবেন এবং আপনার ফলাফলগুলি কনসোলে আউটপুট করবেন।
পূর্বশর্ত
- https://try.kotlinlang.org/ এ কীভাবে কোড খুলবেন, সম্পাদনা করবেন এবং চালাবেন
- একটি Kotlin প্রোগ্রাম তৈরি এবং চালানোর ক্ষমতা যা ভেরিয়েবল ব্যবহার করে, আর্গুমেন্ট সহ ফাংশন, পদ্ধতি সহ ক্লাস এবং কনসোলে ফলাফল প্রিন্ট করে।
আপনি কি শিখবেন
- কিভাবে
ifএবংelseস্টেটমেন্ট ব্যবহার করবেন - কিভাবে অপারেটর ব্যবহার করে মান তুলনা করা যায় যেমন (
>), (<) এর চেয়ে কম এবং (==) এর সমান। - প্রদত্ত মানের উপর ভিত্তি করে বিবৃতিগুলি একটি বিকল্প চয়ন করার
whenকীভাবে ব্যবহার করবেন। -
Booleanডেটা টাইপ কী এবং সিদ্ধান্ত নেওয়ার জন্য কীভাবে এরtrueএবংfalseমানগুলি ব্যবহার করা যায়।
আপনি কি নির্মাণ করবেন
- একটি কোটলিন-ভিত্তিক ডাইস গেম, লাকি ডাইস রোল, যা আপনাকে একটি ভাগ্যবান নম্বর নির্দিষ্ট করতে দেয়। একজন খেলোয়াড় জিতবে যদি তারা ভাগ্যবান নম্বরটি রোল করে।
আপনার যা প্রয়োজন
- একটি ইন্টারনেট সংযোগ সহ একটি কম্পিউটার।
আপনার লাকি ডাইস রোলার প্রোগ্রামটি নির্ধারণ করতে হবে যে ব্যবহারকারী একটি ভাগ্যবান নম্বর রোল করেছেন এবং অভিনন্দন পেয়েছেন, বা পরিবর্তে, আবার চেষ্টা করার জন্য একটি বার্তা পেয়েছেন।
একজন অ্যাপ ডেভেলপার হিসেবে, অ্যাপটি কীভাবে আচরণ করবে এবং আপনার ব্যবহারকারীদের জন্য বিভিন্ন ফলাফল তৈরি করবে সে সম্পর্কে আপনাকে সিদ্ধান্ত নিতে হবে।
আপনি যদি একটি শপিং অ্যাপ তৈরি করেন, তাহলে আপনি ব্যবহারকারীর বেছে নেওয়া ডেলিভারির বিকল্পগুলির উপর ভিত্তি করে বিভিন্ন স্ক্রীন দেখাতে পারেন। একটি কুইজ গেমের জন্য, আপনি খেলোয়াড়ের উত্তর সঠিক কিনা তার উপর ভিত্তি করে বিভিন্ন স্ক্রীন দেখাবেন। অ্যাপের উপর নির্ভর করে, অনেক সম্ভাব্য ফলাফল হতে পারে, যা আপনি আপনার কোডে অ্যাকাউন্ট করতে চাইবেন।
আপনার লাকি ডাইস রোলার প্রোগ্রামে, অ্যাপটিকে বিভিন্ন ক্ষেত্রে পরিচালনা করা উচিত যেমন:
- যদি ডাইস রোল ভাগ্যবান নম্বর হয়, তাহলে একটি অভিনন্দন বার্তা প্রদর্শন করুন!
- অন্যথায় যদি ডাইস রোল ভাগ্যবান নম্বর না হয়, তাহলে আবার চেষ্টা করার জন্য একটি বার্তা প্রদর্শন করুন।
আপনার কোডে এই যুক্তি যোগ করতে, বিশেষ Kotlin কীওয়ার্ড যেমন if এবং else এবং when ব্যবহার করুন।
আসুন কিছু উদাহরণ দেখি।
পূরণ করা শর্ত সেট আপ করতে একটি if স্টেটমেন্ট ব্যবহার করুন
- নীচের কোড পরিদর্শন করুন. আপনি কি আউটপুট হতে যাচ্ছে অনুমান করতে পারেন?
fun main() {
val num = 5
if (num > 4) {
println("The variable is greater than 4")
}
}- কোটলিন প্রোগ্রাম সম্পাদকে কোডটি অনুলিপি করুন এবং পেস্ট করুন এবং আউটপুট পর্যবেক্ষণ করতে প্রোগ্রামটি চালান।
The variable is greater than 4
এই প্রোগ্রামের জন্য সিদ্ধান্ত নেওয়ার প্রক্রিয়া হল:
- একটি পরিবর্তনশীল
numতৈরি করুন এবং এটি5. - যদি এটি সত্য হয় যে
num4 এর চেয়ে বড় (>),"The variable is greater than 4"প্রিন্ট করুন। - অন্য সব পরিস্থিতিতে, কিছুই করবেন না।
উপরের উদাহরণে, num 5 এ সেট করা হয়েছে। if স্টেটমেন্টটি তুলনা করে যদি ভেরিয়েবলটি 4-এর বেশি হয়। যেহেতু এটি সত্য, সিস্টেমটি পরবর্তীতে কোঁকড়া বন্ধনীতে নির্দেশাবলী কার্যকর করে এবং বার্তাটি প্রিন্ট করে।
if স্টেটমেন্টের সাধারণ বিন্যাসটি লক্ষ্য করুন:
-
ifকীওয়ার্ড দিয়ে শুরু করুন। - দুটি বন্ধনী
()দিয়ে অনুসরণ করুন। বন্ধনী ভিতরে শর্ত যায়. শর্ত হল যে কোন কিছুtrueবাfalseহতে পারে। উদাহরণস্বরূপ, একটি সংখ্যা অন্য সংখ্যার চেয়ে বড় কিনা। - দুটি কোঁকড়া ধনুর্বন্ধনী দিয়ে অনুসরণ করুন
{}। কোঁকড়া ধনুর্বন্ধনীর ভিতরে আপনি কোডটি কার্যকর করার জন্য রাখুন যদি শর্তটিtrueহয়।
if (condition-is-true) {
execute-this-code
} পূরণ না হওয়া শর্ত সেট আপ করতে if স্টেটমেন্ট ব্যবহার করুন
-
numমান 3 এ পরিবর্তন করুন, যেমনটি নীচে দেখানো হয়েছে। আপনি এই কোড চালালে আপনি কি ঘটতে আশা করেন?
fun main() {
val num = 3
if (num > 4) {
println("The variable is greater than 4")
}
}- কোটলিন প্রোগ্রাম সম্পাদকে কোডটি অনুলিপি করুন এবং পেস্ট করুন এবং আউটপুট পর্যবেক্ষণ করতে প্রোগ্রামটি চালান।
num 3-এ সেট করলে কিছুই প্রিন্ট করা হয় না, কারণ num এর মান 4-এর কম। তাই num যে 4-এর থেকে বেশি হবে সেটা হল false , এবং কোঁকড়া বন্ধনীগুলির মধ্যে কোডটি কার্যকর হয় না এবং কিছুই প্রিন্ট করা হয় না।
ব্যর্থ অবস্থার জন্য একটি বিকল্প তৈরি করতে else ব্যবহার করুন
কিছু না করার পরিবর্তে, শর্ত পূরণ না হলে আপনি আপনার ব্যবহারকারীদের একটি বিকল্প অফার করতে পারেন। ঠিক নিয়মিত ভাষার মতো, আপনি else একটি বিবৃতি দিয়ে এটি করতে পারেন।
- যখন
num4-এর বেশি না হয় তখন একটি বার্তা প্রিন্ট করতেelseএকটি বিবৃতি যোগ করুন, যেমনটি নীচে দেখানো হয়েছে। আপনি এই কোড চালালে আপনি কি ঘটতে আশা করেন?
fun main() {
val num = 3
if (num > 4) {
println("The variable is greater than 4")
} else {
println("The variable is less than 4")
}
}- কোটলিন প্রোগ্রাম সম্পাদকে কোডটি অনুলিপি করুন এবং পেস্ট করুন এবং আউটপুট পর্যবেক্ষণ করতে প্রোগ্রামটি চালান।
The variable is less than 4
- লক্ষ্য করুন যে যখন
numএর মান 3 থাকে, তখন প্রোগ্রামটিelseস্টেটমেন্টের সাথে যুক্ত"The variable is less than 4"বার্তাটি প্রিন্ট করে কারণnum4-এর বেশি নয়। - 5
numপরিবর্তন করুন এবং প্রোগ্রামটি আবার চালান। এখন এটা সত্য যেnum4 এর চেয়ে বড় এবং প্রোগ্রামটি প্রিন্ট করে "The variable is greater than 4"। - 4
numপরিবর্তন করুন এবং আপনার প্রোগ্রাম চালান. এখন 4 4 এর বেশি নয়, এবং প্রোগ্রামটি প্রিন্ট করে "The variable is less than 4"।
যদিও " The variable is less than 4 " হল আপনার কোডে সেট করা শর্তগুলির জন্য সঠিক আউটপুট, সেই মুদ্রিত বিবৃতিটি সঠিক নয়, যেহেতু 4 4 এর কম নয়। আপনি যা করতে পারেন তা হল আরেকটি শর্ত যোগ করুন যা তৃতীয় সম্ভাবনার জন্য পরীক্ষা করে, num ঠিক 4 কিনা, এবং সেই শর্তটি সত্য হলে একটি সঠিক বিবৃতি প্রিন্ট করে।
বিকল্প শর্ত যোগ করতে একটি else + if সমন্বয় ব্যবহার করুন
আপনার একাধিক শর্ত থাকতে পারে। আপনার উদাহরণের জন্য, এইভাবে আপনি num জন্য সমস্ত সম্ভাবনাগুলি কভার করতে পারেন:
- যদি
num4-এর বেশি হয়, তাহলে "The variable is greater than 4" প্রিন্ট করুন। - অন্যথায় যদি
num4 এর সমান হয়,"The variable is equal to 4"প্রিন্ট করুন। - অন্যথায় ,
"The variable is less than 4"প্রিন্ট করুন।
এগুলোকে if-else বিবৃতিতে বিভিন্ন ক্ষেত্রে উল্লেখ করা হয়েছে। তালিকাভুক্ত ৩টি মামলা রয়েছে।
আপডেট করা কোডটি নিম্নরূপ দেখায়:
fun main() {
val num = 4
if (num > 4) {
println("The variable is greater than 4")
} else if (num == 4) {
println("The variable is equal to 4")
} else {
println("The variable is less than 4")
}
}নিম্নলিখিত পরিবর্তনগুলি লক্ষ্য করুন:
-
numমান এখন 4 এ সেট করা হয়েছে যাতে আপনি নতুন শর্তটি পরীক্ষা করতে পারেন। - আসল
ifএবংelseস্টেটমেন্টের মধ্যে একটি নতুনelse ifস্টেটমেন্ট যখনnumঠিক 4 হয়।
- কোটলিন প্রোগ্রাম সম্পাদকে উপরের কোডটি অনুলিপি করুন এবং পেস্ট করুন এবং আউটপুট পর্যবেক্ষণ করতে প্রোগ্রামটি চালান।
The variable is equal to 4-
numএর মান পরিবর্তন করে পরীক্ষা করুন এবং দেখুন কিভাবে এটি আউটপুটকে প্রভাবিত করে।num2 এবং 6 এ পরিবর্তন করুন, যাতে আপনি প্রতিটি শর্তtrueহতে দেখতে পারেন।
নিয়ন্ত্রণ প্রবাহ
আপনি যখন উপরের if-else বিবৃতিগুলি দেখেন, তখন শর্ত দ্বারা নিয়ন্ত্রিত কোডটি কার্যকর হবে বা প্রবাহিত হবে। সুতরাং আপনি যেভাবে এই শর্তসাপেক্ষে সঞ্চালন পরিচালনা করবেন তাকে প্রোগ্রামের "নিয়ন্ত্রণ প্রবাহ" বলা হয়।
- ধরা যাক আপনার ডাইস রোল
num3। প্রোগ্রামটি প্রথম শর্তটি পরীক্ষা করে (সংখ্যা > 4)। এটি মিথ্যা, তাই প্রোগ্রামটি পরবর্তী শর্ত (সংখ্যা == 4) পরীক্ষা করে যা মিথ্যা। তারপর প্রোগ্রামটি অন্য স্টেটমেন্টের কোডটি কার্যকর করে, যা চূড়ান্ত বিকল্প। - আপনার ডাইস রোল নম্বর 6 হলে, প্রথম শর্ত (সংখ্যা > 4) সত্য। প্রোগ্রামটি
"The variable is greater than 4"বার্তাটি প্রিন্ট করে। যেহেতু এই শর্তটি সত্য, এটিকে বাকিগুলি পরীক্ষা করতে হবে না, এবং if-else বিবৃতি দিয়ে করা হয়। - বিকল্প শর্ত যোগ করতে একটি else + if সমন্বয় ব্যবহার করুন।
এই বিভাগে, আপনি আগের টাস্কে যা শিখেছেন তা ব্যবহার করে, আপনি একটি প্রিসেট লাকি নম্বর রোল করেছেন কিনা তা পরীক্ষা করতে আপনি ডাইস রোলার প্রোগ্রাম আপডেট করবেন। যদি আপনার থাকে, আপনি জিতেছেন!
আপনার স্টার্টার কোড সেট আপ করুন
আপনি আগের কোটলিন ডাইস রোলার প্রোগ্রামের সমাধান কোডের মতো কোড দিয়ে লাকি ডাইস রোলার শুরু করছেন। আপনি মেলে আপনার পূর্ববর্তী কোডের main() ফাংশন সম্পাদনা করতে পারেন, অথবা আপনি শুরু করতে নীচের কোডটি কপি এবং পেস্ট করতে পারেন।
fun main() {
val myFirstDice = Dice(6)
val diceRoll = myFirstDice.roll()
println("Your ${myFirstDice.numSides} sided dice rolled ${diceRoll}!")
}
class Dice (val numSides: Int) {
fun roll(): Int {
return (1..numSides).random()
}
}ভাগ্যবান নম্বরটি রোল করা হয়েছে কিনা তা পরীক্ষা করুন
প্রথমে একটি ভাগ্যবান সংখ্যা তৈরি করুন এবং তারপর সেই সংখ্যার সাথে ডাইস রোল তুলনা করুন।
.
-
main()এ,println()স্টেটমেন্ট মুছে দিন। -
main()এ,luckyNumberনামক একটিvalযোগ করুন এবং এটি 4 এ সেট করুন। আপনার কোডটি দেখতে এইরকম হওয়া উচিত।
fun main() {
val myFirstDice = Dice(6)
val rollResult = myFirstDice.roll()
val luckyNumber = 4
}- নীচে, বন্ধনীর ভিতরে একটি শর্ত সহ একটি
ifবিবৃতি যোগ করুন()যা পরীক্ষা করে যেrollResultসমান (==)luckyNumberএর সাথে। কোঁকড়া ধনুর্বন্ধনীর মধ্যে কিছু জায়গা ছেড়ে দিন{}যাতে আপনি আরও কোড যোগ করতে পারেন।
fun main() {
val myFirstDice = Dice(6)
val rollResult = myFirstDice.roll()
val luckyNumber = 4
if (rollResult == luckyNumber) {
}
}- কোঁকড়া ধনুর্বন্ধনীর ভিতরে
{}, প্রিন্ট করতে একটিprintlnস্টেটমেন্ট যোগ করুন"You win!"
fun main() {
val myFirstDice = Dice(6)
val rollResult = myFirstDice.roll()
val luckyNumber = 4
if (rollResult == luckyNumber) {
println("You win!")
}
}
- আপনার প্রোগ্রাম চালান. আপনি ভাগ্যবান হওয়ার আগে এবং আউটপুটে বিজয়ী বার্তাটি দেখার আগে আপনাকে এটিকে কয়েকবার চালানোর প্রয়োজন হতে পারে!
You win!
যখন ভাগ্যবান নম্বরটি রোল করা হয়নি তখন উত্তর দিন
ব্যবহারকারী জিততে না পারলে প্রোগ্রাম থেকে কোনো প্রতিক্রিয়া না পাওয়া তাদের ভাবতে পারে যে প্রোগ্রামটি ভেঙে গেছে কিনা। ব্যবহারকারী যখন কিছু করে তখন সর্বদা একটি প্রতিক্রিয়া প্রদান করা একটি ভাল অভ্যাস। লাকি ডাইস রোলার প্রোগ্রামের জন্য, আপনি else একটি বিবৃতি ব্যবহার করে তাদের জানাতে পারেন যে তারা জিতেনি।
- প্রিন্ট করতে
elseএকটি বিবৃতি যোগ করুন"You didn't win, try again!".
fun main() {
val myFirstDice = Dice(6)
val rollResult = myFirstDice.roll()
val luckyNumber = 4
if (rollResult == luckyNumber) {
println("You win!")
} else {
println("You didn't win, try again!")
}
}- প্রোগ্রাম চালান, এবং ফলাফল যাই হোক না কেন, আপনার ব্যবহারকারীদের সর্বদা অবহিত করা হয়।
এই মুহুর্তে, ব্যবহারকারীরা জানে যে তারা জিতেছে কিনা, কিন্তু কেন নয়। সর্বদা ব্যবহারকারীদের তথ্য দিন যাতে তারা তাদের কর্মের ফলাফল বুঝতে পারে! আপনার প্রোগ্রাম একটি ঋণ আবেদন কল্পনা করুন. "আপনি অনুমোদন পাননি কারণ আপনার ক্রেডিট রেটিং খারাপ," এর চেয়ে অনেক বেশি তথ্যপূর্ণ, "দুঃখিত, আপনার জন্য কোনো ঋণ নেই, আবার চেষ্টা করুন!" লাকি ডাইস রোলারের জন্য, ব্যবহারকারীরা হারিয়ে গেলে আপনি প্রতিটি রোলের জন্য একটি ভিন্ন তথ্যপূর্ণ বার্তা দিতে পারেন। এটি সম্পন্ন করার জন্য বিবৃতি else if একাধিক ব্যবহার করুন।
- প্রতিটি রোলের জন্য আলাদা বার্তা প্রিন্ট করার জন্য বিবৃতি
else ifযোগ করুন। প্রয়োজনে আপনি আগের টাস্কে যে বিন্যাসটি শিখেছেন তা পড়ুন।
fun main() {
val myFirstDice = Dice(6)
val rollResult = myFirstDice.roll()
val luckyNumber = 4
if (rollResult == luckyNumber) {
println("You win!")
} else if (rollResult == 1) {
println("So sorry! You rolled a 1. Try again!")
} else if (rollResult == 2) {
println("Sadly, you rolled a 2. Try again!")
} else if (rollResult == 3) {
println("Unfortunately, you rolled a 3. Try again!")
} else if (rollResult == 4) {
println("No luck! You rolled a 4. Try again!")
} else if (rollResult == 5) {
println("Don't cry! You rolled a 5. Try again!")
} else {
println("Apologies! you rolled a 6. Try again!")
}
}
উপরের কোডে, আপনি
-
rollResultluckyNumberকিনা তা পরীক্ষা করুন। - যদি
rollResultluckyNumberহয়, বিজয়ী বার্তাটি প্রিন্ট করুন। - অন্যথায়,
rollResult1 কিনা তা পরীক্ষা করুন এবং যদি তাই হয়, আবার চেষ্টা করার বার্তা প্রিন্ট করুন। - অন্যথায়,
rollResult2 কিনা তা পরীক্ষা করুন, এবং যদি তাই হয়, তাহলে একটি ভিন্ন বার্তা প্রিন্ট করুন আবার চেষ্টা করুন। - অন্যথায়, 5 নম্বরের মাধ্যমে চেক করতে থাকুন।
- যদি সংখ্যাটি 1 - 5 এর মধ্যে না থাকে তবে একমাত্র বিকল্পটি 6টি অবশিষ্ট থাকে, তাই
else ifদিয়ে অন্য পরীক্ষার প্রয়োজন নেই এবং আপনি চূড়ান্তelseস্টেটমেন্টের সাথে সেই শেষ বিকল্পটি ধরতে পারেন।
কারণ একাধিক else if থাকলে কেস খুব সাধারণ, কোটলিনের কাছে সেগুলি লেখার সহজ উপায় রয়েছে।
অনেকগুলি ভিন্ন ফলাফলের জন্য পরীক্ষা করা, বা ক্ষেত্রে, প্রোগ্রামিংয়ে খুব সাধারণ। কখনও কখনও, সম্ভাব্য ফলাফলের তালিকা খুব দীর্ঘ হতে পারে। উদাহরণস্বরূপ, যদি আপনি একটি 12-পার্শ্বযুক্ত পাশা ঘূর্ণায়মান করেন, তাহলে সাফল্য এবং চূড়ান্ত else মধ্যে বিবৃতি else if আপনার কাছে 11 টি থাকবে। এই ধরনের বিবৃতি লিখতে এবং পড়তে সহজ করতে, যা ত্রুটি এড়াতে সাহায্য করে, Kotlin একটি when বিবৃতি উপলব্ধ করে।
আপনি একটি when বিবৃতি ব্যবহার করার জন্য আপনার প্রোগ্রাম পরিবর্তন করতে যাচ্ছেন। A when স্টেটমেন্টগুলি when কীওয়ার্ড দিয়ে শুরু হয়, তারপরে বন্ধনী () । বন্ধনী ভিতরে পরীক্ষার মান যায়. বিভিন্ন অবস্থার জন্য কোড চালানোর জন্য এটি কোঁকড়া ধনুর্বন্ধনী {} দ্বারা অনুসরণ করা হয়।
- আপনার প্রোগ্রামে,
main()তে, প্রথমifস্টেটমেন্ট থেকে কোঁকড়া বন্ধনীতে কোডটি নির্বাচন করুন}যা শেষelseস্টেটমেন্টটি বন্ধ করে এবং এটি মুছে দিন।
fun main() {
val myFirstDice = Dice(6)
val rollResult = myFirstDice.roll()
val luckyNumber = 4
}-
main()-এ,luckyNumberএর ঘোষণার নিচে,whenস্টেটমেন্ট তৈরি করুন। কারণwhenআপনার ঘূর্ণিত ফলাফলের বিরুদ্ধে পরীক্ষা করতে হবে, তখন বন্ধনীর মধ্যেrollResultরাখুন()। নীচে দেখানো হিসাবে, কিছু অতিরিক্ত ব্যবধান সহ কোঁকড়া ধনুর্বন্ধনী যোগ করুন{}
fun main() {
val myFirstDice = Dice(6)
val rollResult = myFirstDice.roll()
val luckyNumber = 4
when (rollResult) {
}
}আগের মতই, প্রথমে পরীক্ষা করে দেখুন rollResult আর luckyNumber মতোই কিনা।
-
whenস্টেটমেন্টের কোঁকড়া বন্ধনী{}ভিতরে, একটি বিবৃতি যোগ করুন যাluckyNumberবিপরীতেrollResultপরীক্ষা করে এবং যদি সেগুলি একই হয়, বিজয়ী বার্তাটি প্রিন্ট করুন৷ বিবৃতি এই মত দেখায়:
luckyNumber -> println("You win!")এর অর্থ:
- আপনি প্রথমে যে মানটিকে আপনি
rollResultএর সাথে তুলনা করছেন সেটি রাখুন। এটাluckyNumber। - একটি তীর দিয়ে এটি অনুসরণ করুন (
->)। - তারপরে একটি ম্যাচ থাকলে সঞ্চালনের জন্য অ্যাকশন যোগ করুন।
এইভাবে পড়ুন, "যদি rollResult হয় luckyNumber , তাহলে "You win!" বার্তাটি প্রিন্ট করুন৷
এবং আপনার main() কোড এই মত দেখায়.
fun main() {
val myFirstDice = Dice(6)
val rollResult = myFirstDice.roll()
val luckyNumber = 4
when (rollResult) {
luckyNumber -> println("You win!")
}
}- নীচে দেখানো হিসাবে সম্ভাব্য রোল 1 - 6 এর জন্য লাইন এবং বার্তা যোগ করতে একই প্যাটার্ন ব্যবহার করুন। আপনার সমাপ্ত
main()ফাংশন এই মত হওয়া উচিত.
fun main() {
val myFirstDice = Dice(6)
val rollResult = myFirstDice.roll()
val luckyNumber = 4
when (rollResult) {
luckyNumber -> println("You won!")
1 -> println("So sorry! You rolled a 1. Try again!")
2 -> println("Sadly, you rolled a 2. Try again!")
3 -> println("Unfortunately, you rolled a 3. Try again!")
4 -> println("No luck! You rolled a 4. Try again!")
5 -> println("Don't cry! You rolled a 5. Try again!")
6 -> println("Apologies! you rolled a 6. Try again!")
}
}- আপনার প্রোগ্রাম চালান. আউটপুটে কোন পার্থক্য নেই, তবে আপনার কোডটি অনেক বেশি কম্প্যাক্ট এবং পড়া সহজ।
অভিনন্দন! আপনি একটি শর্তের উপর নির্ভর করে বার্তা প্রিন্ট করার দুটি উপায় শিখেছেন। এটি আকর্ষণীয় প্রোগ্রাম লেখার জন্য একটি শক্তিশালী হাতিয়ার!
fun main() {
val myFirstDice = Dice(6)
val rollResult = myFirstDice.roll()
val luckyNumber = 4
when (rollResult) {
luckyNumber -> println("You won!")
1 -> println("So sorry! You rolled a 1. Try again!")
2 -> println("Sadly, you rolled a 2. Try again!")
3 -> println("Unfortunately, you rolled a 3. Try again!")
4 -> println("No luck! You rolled a 4. Try again!")
5 -> println("Don't cry! You rolled a 5. Try again!")
6 -> println("Apologies! you rolled a 6. Try again!")
}
}
class Dice(val numSides: Int) {
fun roll(): Int {
return (1..numSides).random()
}
}- কিছু নির্দেশ কার্যকর করার জন্য একটি শর্ত সেট করতে একটি
ifস্টেটমেন্ট ব্যবহার করুন। উদাহরণস্বরূপ, যদি ব্যবহারকারী ভাগ্যবান নম্বরটি রোল করে, একটি বিজয়ী বার্তা প্রিন্ট করুন। -
Booleanডেটা টাইপেরtrueএবংfalseমান রয়েছে এবং সিদ্ধান্ত নেওয়ার জন্য ব্যবহার করা যেতে পারে। - অপারেটর ব্যবহার করে মান তুলনা করুন যেমন (
>), (<) এর চেয়ে কম এবং (==) এর সমান। - বিবৃতি একাধিক শর্ত সেট করতে
else ifএর একটি চেইন ব্যবহার করুন। উদাহরণস্বরূপ, প্রতিটি সম্ভাব্য ডাইস রোলের জন্য একটি ভিন্ন বার্তা প্রিন্ট করুন। - স্পষ্টভাবে কভার করা যাবে না এমন কোনো কেস ধরার জন্য শর্তের একটি চেইন শেষে একটি
elseস্টেটমেন্ট ব্যবহার করুন। আপনি যদি 6-পার্শ্বযুক্ত পাশার জন্য কেসগুলি কভার করেন,elseএকটি বিবৃতি 8-পার্শ্বযুক্ত পাশা দিয়ে ঘূর্ণিত 7 এবং 8 নম্বরগুলি ধরবে। - একটি মান তুলনা করার উপর ভিত্তি করে এক্সিকিউটিং কোডের একটি কম্প্যাক্ট ফর্ম হিসাবে একটি
whenস্টেটমেন্ট ব্যবহার করুন।
নিম্নলিখিতগুলি করুন:
-
myFirstDiceপরিবর্তন করুন 8টি দিক থাকতে এবং আপনার কোড চালান। কি হয়?
ইঙ্গিত: আপনি যখন বাহুর সংখ্যা বাড়ান, তখন আপনার when বিবৃতিটি আর সমস্ত কেস কভার করে না, তাই অনাবৃত কেসগুলির জন্য, কিছুই মুদ্রিত হয় না।
- সব 8 পক্ষের জন্য অ্যাকাউন্ট করার জন্য
whenবিবৃতি ঠিক করুন। আপনি অতিরিক্ত সংখ্যার জন্য কেস যোগ করে এটি করতে পারেন। চ্যালেঞ্জ: প্রতিটি নম্বরের জন্য একটি নতুন কেস যোগ করার পরিবর্তে, স্পষ্টভাবে কভার করা হয়নি এমন সমস্ত কেস ধরতে একটিelseস্টেটমেন্ট ব্যবহার করুন।
ইঙ্গিত: আপনি আরও দিক কভার করতে আরও কেস যোগ করতে পারেন। এটি করার একটি ভাল উপায়, আপনি যদি রোল করা যেতে পারে এমন প্রতিটি নম্বরের জন্য একটি আলাদা বার্তা চান। অথবা, আপনি একটি else বিবৃতি ব্যবহার করতে পারেন এবং বর্তমান কোড দ্বারা আচ্ছাদিত 6-এর চেয়ে বড় সমস্ত পক্ষের জন্য একই বার্তা প্রিন্ট করতে পারেন।
-
myFirstDiceপরিবর্তন করুন মাত্র 4টি দিক থাকতে। কি হয়?
ইঙ্গিত: when বিবৃতি দ্বারা আচ্ছাদিত করা হয় তার চেয়ে কম পাশার পাশের সংখ্যা পরিবর্তন করা কোন লক্ষণীয় প্রভাব নেই, যেহেতু ঘটতে পারে এমন সমস্ত ক্ষেত্রে কভার করা হয়েছে।