সুচিপত্র:

প্রোগ্রাম আপনার নিজের 2048 গেম W/জাভা!: 8 টি ধাপ
প্রোগ্রাম আপনার নিজের 2048 গেম W/জাভা!: 8 টি ধাপ

ভিডিও: প্রোগ্রাম আপনার নিজের 2048 গেম W/জাভা!: 8 টি ধাপ

ভিডিও: প্রোগ্রাম আপনার নিজের 2048 গেম W/জাভা!: 8 টি ধাপ
ভিডিও: গেম খেলে টাকা ইনকাম 🔥| merge balloon 2048 app | অনলাইনে আয় করার সহজ উপায় | টাকা ইনকাম করার app 2023 2024, নভেম্বর
Anonim

দ্বারা PranP1My (অসম্পূর্ণ) সাইট লেখক আরো অনুসরণ করুন:

উদ্ধারকৃত পিসি যন্ত্রাংশ থেকে Arduino CNC মেশিন
উদ্ধারকৃত পিসি যন্ত্রাংশ থেকে Arduino CNC মেশিন
উদ্ধারকৃত পিসি যন্ত্রাংশ থেকে Arduino CNC মেশিন
উদ্ধারকৃত পিসি যন্ত্রাংশ থেকে Arduino CNC মেশিন
DIY আধুনিক কাঠের বেঞ্চ
DIY আধুনিক কাঠের বেঞ্চ
DIY আধুনিক কাঠের বেঞ্চ
DIY আধুনিক কাঠের বেঞ্চ
কন্টাক্টলেস ডোর ওপেনার (vSTEM)
কন্টাক্টলেস ডোর ওপেনার (vSTEM)
কন্টাক্টলেস ডোর ওপেনার (vSTEM)
কন্টাক্টলেস ডোর ওপেনার (vSTEM)

আমি 2048 গেমটি পছন্দ করি। এবং তাই আমি আমার নিজস্ব সংস্করণ প্রোগ্রাম করার সিদ্ধান্ত নিয়েছি।

এটি আসল গেমের সাথে খুব মিল, কিন্তু এটি নিজে প্রোগ্রামিং করলে আমি যখন যা ইচ্ছা পরিবর্তন করতে পারি। যদি আমি সাধারণ 4x4 এর পরিবর্তে 5x5 গেম চাই, 'বোর্ড' কনস্ট্রাক্টর ব্যবহার করে একটি সাধারণ পরিবর্তন আমাকে তা করার অনুমতি দেবে। বলুন আমি গেমটিকে আরো কঠিন করতে চাই, এমন অবস্থানে টুকরো যোগ করা যা খেলোয়াড়ের জন্য এলোমেলো না করে এটিকে আরও জটিল করে তুলবে। একটি সহজ অ্যালগরিদম ব্যবহার করে, আমি ঠিক তাই করতে পারি। যদিও আমি এই নির্দেশাবলীতে এই সমস্ত পরিবর্তনগুলি কভার করব না, আমি যেতে যেতে আরও যোগ করার পরিকল্পনা করি।

আপাতত, যাইহোক, আমরা 2048 এর আপনার সাধারণ খেলা প্রোগ্রাম করব।

চল শুরু করি!

(একটি পার্শ্ব নোট: এই নির্দেশযোগ্য প্রোগ্রামিং এর মাঝারি জ্ঞান প্রয়োজন - বিশেষ করে জাভা সহ)

ধাপ 1: উপকরণ

উপকরণ
উপকরণ

এই প্রকল্পের জন্য আপনার খুব বেশি প্রয়োজন হবে না কারণ এটি একটি প্রোগ্রামিং ওয়াকথ্রু।

উপকরণ:

  • ল্যাপটপ
  • Eclipse (অথবা আপনার পছন্দের কোন IDE)

হা. এটাই.

পদক্ষেপ 2: প্রোগ্রামটি জানুন - বোর্ড

আমি আমার সমস্ত কোড গিটহাব -এ আপলোড করেছি - এটি এখানে দেখুন:

আমি গেমটিকে 3 টি শ্রেণীতে বিভক্ত করেছি: বোর্ড, টাইল এবং গেম।

বোর্ড:

বিবরণ: বোর্ড ক্লাস গেমবোর্ডের সাথে কাজ করে, 'টাইল' উপাদানগুলির একটি অ্যারে স্থাপন করে, বর্তমান স্কোর এবং সর্বোচ্চ টাইল পেয়ে এবং অ্যারেটিকে একটি স্ট্রিংয়ে রাখে (পরে 'গেম' এ ব্যবহার করা হবে)। বেশিরভাগ যুক্তি এখানেও রয়েছে, ক্লাসটি এলোমেলো অবস্থানে 2 এবং 4 এর জন্ম দেওয়ার পদ্ধতিগুলি সরবরাহ করে, উপরে, নীচে, বাম এবং ডানদিকে চলে যায় এবং খেলোয়াড়দের খেলা শেষ হওয়ার সময় জানিয়ে দেয়।

নির্মাতা:

/ * বোর্ডের জন্য ডিফল্ট কনস্ট্রাক্টর - একটি 4x4 ম্যাট্রিক্স সেট আপ */

পাবলিক বোর্ড () {…}

/ * বোর্ডের জন্য কনস্ট্রাক্টর - নির্দিষ্ট গ্রিড সাইজ সহ একটি ম্যাট্রিক্স সেট আপ করুন */

পাবলিক বোর্ড (ইন্ট গ্রিড) {…}

পদ্ধতি:

/ * গেটার পদ্ধতি যা বোর্ডকে ফেরত দেয় */

পাবলিক টাইল getBoard () {…}

/ * গেটার পদ্ধতি যা স্কোর প্রদান করে */

সর্বজনীন int getScore () {…}

/ * বোর্ডে সর্বোচ্চ টাইল খুঁজে বের করে ফেরত দেয় */

public int getHighTile () {…}

/ * কনসোলে বোর্ড প্রিন্ট করে - পরীক্ষার উদ্দেশ্যে */

সর্বজনীন অকার্যকর মুদ্রণ () {…}

/ * একটি স্ট্রিং হিসাবে বোর্ডটি ফেরত দেয় - GUI তে ব্যবহৃত হয় */

পাবলিক স্ট্রিং টু স্ট্রিং () {…}

/ * একটি ফাঁকা স্থানে একটি 2 (বা 4) spawns খুব যখন একটি পদক্ষেপ করা হয় */

পাবলিক অকার্যকর স্পন () {…}

/ * বোর্ড পুরোপুরি ব্ল্যাক হয়ে গেছে কিনা তা পরীক্ষা করে এবং যদি এটি হয় তবে এটি খেলোয়াড়দের পুনরায় চালু করার জন্য নজড় দেবে */

পাবলিক বুলিয়ান ব্ল্যাকআউট () {…}

/ * খেলা শেষ হয়েছে কিনা তা পরীক্ষা করে দেখুন - যখন বোর্ডটি ব্ল্যাক আউট হয়ে যায় এবং কোন টাইলস একত্রিত করতে পারে না */

পাবলিক বুলিয়ান গেমওভার () {…}

/ * যখন 'w' বা উপরের তীরটি চাপানো হয় - 'আপ' প্যারামিটার সহ বোর্ডের প্রতিটি টাইলগুলির জন্য 'ভার্টিকাল মুভ' কল করুন */

সর্বজনীন শূন্যতা () {…}

/ * যখন 's' বা নিচে তীর চাপানো হয় - 'ডাউন' */পাবলিক ভয়েড ডাউন () {…}

/ * যখন 'ডি' বা ডান তীর চাপানো হয় - 'ডান' প্যারামিটার সহ বোর্ডের প্রতিটি টাইলগুলির জন্য 'অনুভূমিক মুভ' কল করুন */পাবলিক ভয়েড রাইট () {…}

/ * যখন 'a' বা বাম তীরটি চাপানো হয় - 'বাম' প্যারামিটার সহ বোর্ডের প্রতিটি টাইলগুলির জন্য 'অনুভূমিক মুভ' কল করুন */

জনশূন্য বাম () {…}

/* দুটি টাইল এর মান একসাথে তুলনা করে এবং যদি তারা একই হয় বা যদি 0 এর সমান হয় (প্লেইন টাইল) - তাদের মান যোগ করা হয় (যদি আমরা যে টাইলগুলি তুলনা করছি তা দুটি ভিন্ন টাইল এবং তারা যথাযথ দিকের দিকে এগিয়ে যাচ্ছে) - পুনরাবৃত্তিমূলক সারির মধ্য দিয়ে চলে যায় */

সর্বজনীন শূন্য অনুভূমিক সরান (int সারি, int col, স্ট্রিং দিক) {…}

/* দুটি টাইল এর মান একসাথে তুলনা করে এবং যদি তারা একই হয় বা যদি 0 এর সমান হয় (প্লেইন টাইল) - তাদের মান যোগ করা হয় (যদি আমরা যে টাইলগুলি তুলনা করছি তা দুটি ভিন্ন টাইল এবং তারা যথাযথ দিকের দিকে এগিয়ে যাচ্ছে) - পুনরাবৃত্তি কলামের মধ্য দিয়ে চলে যায় */

পাবলিক অকার্যকর উল্লম্ব সরান (int সারি, int col, স্ট্রিং দিক) {…}

হ্যাঁ, এটি অনেক পদ্ধতি - কিন্তু চিন্তা করবেন না, অধিকাংশই বোঝা অত্যন্ত সহজ। তার উপরে, 'বোর্ড' ক্লাসটি সবচেয়ে জটিল, তাই এর পরে সবকিছু অপেক্ষাকৃত সহজ হবে।

ধাপ 3: প্রোগ্রামটি জানুন - টালি

টাইল:

বর্ণনা: টাইল শ্রেণী পৃথক টাইলস নিয়ে কাজ করে এবং এটি সমস্ত শ্রেণীর মধ্যে সবচেয়ে ছোট। প্রতিটি টাইল একটি পূর্ণসংখ্যা মান এবং একটি রঙ আছে। এটিতে দুটি কনস্ট্রাক্টর রয়েছে যা মান 0 (ডিফল্ট) বা মান #এর টাইলস তৈরি করে। পদ্ধতিগুলি বেশিরভাগ স্ব -ব্যাখ্যামূলক, 'গেটার' এবং 'সেটার' পদ্ধতিগুলি মোটের একটি বড় অংশ তৈরি করে।

নির্মাতা:

/ * 0 */এর মান সহ একটি মৌলিক টাইল তৈরি করে

পাবলিক টাইল () {…}

/ * সংখ্যার মান সহ একটি টাইল তৈরি করে */

পাবলিক টাইল (int সংখ্যা) {…}

পদ্ধতি:

/ * টাইল এর মান পায় */

public int getValue () {…}

/ * টাইল এর মান সেট করে - দুটি টাইল একসাথে যোগ করার সময় ব্যবহৃত হয় */

পাবলিক ভয়েড সেটভ্যালু (int মান) {…}

/ * টাইলকে স্ট্রিং হিসেবে উপস্থাপন করে - GUI- এ ব্যবহৃত

পাবলিক স্ট্রিং টু স্ট্রিং () {…}

/ * টাইল এর রঙ তার মানের উপর ভিত্তি করে সেট করে */

পাবলিক ভয়েড setColor () {…}

/ * টাইল এর রং পায় */

জনশূন্য getColor () {…}

ধাপ 4: প্রোগ্রামটি জানুন - গেম

খেলা

বিবরণ: গেম ক্লাসে প্রধান পদ্ধতি, বেশিরভাগ GUI পদ্ধতি এবং মূল মিথস্ক্রিয়া রয়েছে। এটি টাইল এবং বোর্ড উভয় ক্লাস নেয় এবং তাদের একসাথে কাজ করতে সক্ষম করে।

নির্মাতা:

কোনটিই নয়

পদ্ধতি:

/ * উপযুক্ত মাপের GUI সেট আপ করে এবং একটি মূল শ্রোতা যোগ করে */

পাবলিক স্ট্যাটিক অকার্যকর setUpGUI () {…}

/ * ধোয়া বা তীর কীগুলি টিপে আছে কিনা তা পরীক্ষা করে এবং যথাযথ কর্ম সম্পাদন করে - প্রতিটি পদক্ষেপের সাথে JFrame আপডেট করে */

পাবলিক ভয়েড কী প্রেস (KeyEvent e) {…}

/ * স্ট্রিং, বোর্ড, টাইলস এর একটি সিরিজ দিয়ে GUI এঁকে দেয় এবং নিশ্চিত করে যে খেলা শেষ হলে তারা পুনরায় রং করা হবে */

পাবলিক অকার্যকর পেইন্ট (গ্রাফিক্স g) {…}

/ * একটি পৃথক টাইল আঁকেন - পেইন্ট পদ্ধতি থেকে বলা হয় */

পাবলিক ভয়েড ড্র টাইলস (গ্রাফিক্স g, টাইল টাইল, int x, int y) {…}

/ * প্রধান পদ্ধতি - GUI সেট আপ করে এবং খেলা শুরু করে */

পাবলিক স্ট্যাটিক অকার্যকর প্রধান (স্ট্রিং আর্গ) {…}

পদক্ষেপ 5: গুরুত্বপূর্ণ পদ্ধতি - আন্দোলন

আন্দোলনের পদ্ধতিগুলি বোঝার জন্য সবচেয়ে গুরুত্বপূর্ণ, তবে সুসংবাদ হল একবার আপনি উল্লম্ব আন্দোলনগুলি বুঝতে পারলে, আপনি সেই অনুভূতিটি অনুভূমিক আন্দোলনে প্রয়োগ করতে পারেন। প্রকৃতপক্ষে, তিনটি উল্লম্ব চলাচলের পদ্ধতিগুলি তিনটি অনুভূমিক পদ্ধতির আন্দোলনের মতোই একই, এক সারি জুড়ে এবং অন্যটি কলাম জুড়ে। যে কারণে, আসুন শুধু উল্লম্ব আন্দোলন পদ্ধতিতে ফোকাস করি।

ব্যক্তিগত অকার্যকর উল্লম্ব সরান (int সারি, int col, স্ট্রিং দিক)

{টাইল প্রাথমিক = বোর্ড [সীমানা] [কল]; টাইল তুলনা = বোর্ড [সারি] [কল]; if (initial.getValue () == 0 || initial.getValue () == compare.getValue ()) {if (row> border || (direction.equals ("down") && (row <border))) {int addScore = initial.getValue () + compare.getValue (); যদি (initial.getValue ()! = 0) {score += addScore; } initial.setValue (addScore); compare.setValue (0); }} অন্য {if (direction.equals ("down")) {border--; } অন্য {বর্ডার ++; } উল্লম্ব সরান (সারি, কল, দিক); }}

উপরের পদ্ধতি, ভার্টিক্যাল মুভ, 'আপ' এবং 'ডাউন' পদ্ধতি দ্বারা বলা হয়। আসুন 'আপ' পদ্ধতিটি দেখুন।

সর্বজনীন শূন্যতা ()

{জন্য (int i = 0; i <grids; i ++) {border = 0; জন্য (int j = 0; j <grids; j ++) {if (board [j] .getValue ()! = 0) {if (border <= j) {verticalMove (j, i, "up"); }}}}}

এই পদ্ধতিটি পুরো বোর্ডের মধ্যে দিয়ে যায় এবং "আপ" প্যারামিটার সহ প্রতিটি টাইলগুলির জন্য ভার্টিক্যাল মুভ কল করে। verticalMove তারপর 'j' এবং 'i' অবস্থানে টাইলকে 'বর্ডার' এবং 'i' পজিশনে টাইলের সাথে তুলনা করে। যদি দুটি সমান হয় তবে সেগুলি একত্রিত হয়। যদি তারা না হয়, সীমানা টালি 1 দ্বারা বৃদ্ধি করা হয় (যেহেতু প্যারামিটারটি 'আপ'), এবং উল্লম্ব মুভ আবার বলা হয়।

প্রস্তাবিত: