JavaRush /جاوا بلاگ /Random-SD /جاوا رش تي سيڪشن "گيمز": گيم انجڻ

جاوا رش تي سيڪشن "گيمز": گيم انجڻ

گروپ ۾ شايع ٿيل
JavaRush مان ”گيمس“ هڪ نئون سيڪشن آهي جنهن ۾ مشهور ڪمپيوٽر گيمز لکڻ لاءِ وڏا ٽاسڪ پروجيڪٽ شامل آهن. انهن کي ٺاهڻ آسان آهي ان کان وڌيڪ لڳي ٿو: هر پروجيڪٽ ٻن درجن ذيلي ڪمن ۾ ورهايل آهي. قدم قدم تي ڪم مڪمل ڪرڻ سان، توھان پنھنجي راند لکندا، ۽ پوءِ توھان ان ۾ منفرد ”فيچرز“ شامل ڪري سگھوٿا ۽ ان کي دوستن سان شيئر ڪري سگھو ٿا. بابرانديون استعمال ڪن ٿيون سادي JavaRush گيم انجڻ . هن مقالي ۾ اسان ان جي اهم خصوصيتن جي باري ۾ ڳالهائينداسين ۽ راند لکڻ جو عمل ڪهڙو نظر ايندو.
  1. تعارف
  2. راند جي شروعات
  3. راند جو ميدان ٺاهڻ
  4. پرائمري پروگرام
  5. راند جي ميدان جي سيلن سان ڪم ڪرڻ
  6. رنگ سان ڪم ڪرڻ
  7. ڊائلاگ باڪس
  8. افاديت جا طريقا
  9. راند انجڻ جون حدون

1. تعارف

ڊولپر جي حصي تي ڪمپيوٽر جي راند جي عمل ۾ ٽي مرحلا آهن:
  1. راند جي شروعات آهي تياري واري عمل: راند جي ميدان جي سائيز ۽ ڊرائنگ کي ترتيب ڏيڻ، شروعاتي پوزيشن ۾ راند جي شين کي ٺاهڻ ۽ انسٽال ڪرڻ، انهي سان گڏ ٻيا عمل جيڪي راند جي شروعات ۾ ٿيڻ گهرجن.

  2. راند جو عمل. ھن ۾ شامل آھي راند جي شين جي حرڪت، پليئر ڪارناما، حاصل ڪيل پوائنٽن جي حساب سان، گڏوگڏ ٻيا عمل جيڪي ڪجھ وقفن تي يا بٽڻ کي دٻائڻ سان انجام ڏنا وڃن.

  3. راند کي ختم ڪرڻ. ھن ۾ شامل آھن اينيميشن کي روڪڻ، فتح يا شڪست جو اعلان ڪرڻ، ۽ ٻيون ڪارناما جيڪي راند جي آخر ۾ ٿيڻ گهرجن.

2. راند جي شروعات

راند کي شروع ڪرڻ صرف ٻن مرحلن تي مشتمل آهي:

قدم 1: مکيه راند ڪلاس ٺاهيو.

JavaRush گيم انجڻ جي بنياد تي پنهنجي راند کي ترقي ڪرڻ لاءِ، توهان کي هڪ ڪلاس ٺاهڻو پوندو ۽ ان کي گيم ڪلاس (com.javarush.engine.cell.Game) مان ورثي ۾ آڻڻو پوندو. اهو توهان جي ڪلاس کي گيم انجڻ تي طريقن کي ڪال ڪرڻ جي صلاحيت ڏيندو، ۽ انجڻ کي توهان جي طريقن کي ڪال ڪرڻ جي صلاحيت ڏيندو. مثال:
import com.javarush.engine.cell.Game;

public class MySuperGame extends Game {
    ...
}

مرحلا 2: اوور رائڊ ڪريو شروعاتي () طريقو.

هن طريقي ۾، راند کي شروع ڪرڻ لاء سڀ عمل ضروري آهن: راند جو ميدان ٺاهڻ، راند جي شين ٺاهڻ، وغيره. توھان کي صرف ھن طريقي کي ھڪڙي طبقي ۾ بيان ڪرڻ جي ضرورت آھي جيڪا راند ڪلاس مان ورثي ۾ ملي ٿي . مثال:
import com.javarush.engine.cell.Game;

public class MySuperGame extends Game {

    @Override
    public void initialize() {
        //  Тут выполняем все действия по инициализации игры и ее an objectов
    }
}
شروعاتي () طريقو مکيه () طريقي جو ھڪڙو اينالاگ آھي : اھو اھو آھي جتي راند لاءِ لکيل سڀ ڪوڊ تي عمل ٿيڻ شروع ٿئي ٿو.

3. راند جو ميدان ٺاهڻ

راند جي ميدان ٺاهڻ ۾ پڻ صرف ٻن مرحلن تي مشتمل آهي.

قدم 1: راند جي ميدان کي سيلن ۾ ورهايو.

سڄي راند جو ميدان راند انجڻ جي سيلز ۾ ورهايل آهي. گھٽ ۾ گھٽ ماپ 3x3 آھي، وڌ ۾ وڌ آھي 100x100. راند جي اسڪرين کي مسلسل سائيز آهي. اهو سيلن جي مختلف تعداد ۾ ورهائي سگهجي ٿو. مثال طور، ويڪر 7 ۽ اوچائي 9:
باب
مهرباني ڪري نوٽ ڪريو ته سيل نمبرنگ مٿي کاٻي ڪنڊ کان شروع ٿئي ٿو. راند جي ميدان جي سائيز کي سيٽ ڪرڻ لاء، استعمال ڪريو void setScreenSize(int width, int height) طريقو . اهو راند جي ميدان جي سائيز کي مقرر ڪري ٿو. اهو پيراميٽر طور وٺندو آهي سيلن جو تعداد افقي طور تي (چوڪر) ۽ عمودي (اوچائي). اهو عام طور تي سڏيو ويندو آهي هڪ ڀيرو جڏهن راند شروع ٿئي ٿي. مثال:
import com.javarush.engine.cell.Game;

public class MySuperGame extends Game {

    @Override
    public void initialize() {
       //  задали размер поля 7x9 клеток
       setScreenSize(7, 9);
        ...
    }
}
جڏهن هڪ راند لکندي، توهان کي راند جي ميدان جي موجوده چوٽي ۽ اوچائي حاصل ڪرڻ جي ضرورت پوندي. int getScreenWidth() ۽ int getScreenHeight() طريقا ھن لاءِ ڪارآمد آھن .

قدم 2: گرڊ کي بند ڪريو يا بند ڪريو (اختياري).

جيڪڏھن توھان پسند نٿا ڪريو ڪارو گرڊ جيڪو سيلز کي راند جي ميدان تي الڳ ڪري ٿو، توھان ان کي بند ڪري سگھو ٿا. void showGrid (بولين isShow) طريقو گرڊ کي الڳ ڪندڙ سيلز کي آن ۽ آف ڪري ٿو. ڊفالٽ طور، گرڊ ڏيکاريل آهي. ان کي بند ڪرڻ لاء، هن طريقي کي غلط پيٽرولر سان سڏين ٿا:
showGrid(false);
نتيجو:
باب
گرڊ کي واپس ڪرڻ لاء، ڪال ڪريو:
showGrid(true);

4. پرائمري پروگرام

مثال پروگرام:
public class MySuperGame extends Game {

    @Override
    public void initialize() {

        //  Создаем игровое поле 3x3 клетки
        setScreenSize(3, 3);
        //  Выключаем отображение сетки
        showGrid(false);
        //  Меняем фон центральной клетки на синий, и отображаем в ней “Х”
        setCellValueEx(1, 1, Color.BLUE, "X", Color.ORANGE, 50);
    }
}
هن مثال ۾، راند جي ميدان جي سائيز 3x3 تي مقرر ڪئي وئي آهي، گرڊ ڊسپلي بند ڪيو ويو آهي، ۽ هڪ نارنگي اڌ سيل جي سائيز "X" علامت هڪ نيري پس منظر تي مرڪز ۾ مقرر ڪئي وئي آهي. اها پهرين شيءِ هوندي جيڪا پليئر ڏسندي جڏهن راند شروع ڪندي.

5. راند جي ميدان جي سيلن سان ڪم ڪرڻ

حقيقت اها آهي ته اسان راند جي ميدان کي سيلن ۾ ورهائي سگهون ٿا، پر اسان پاڻ کي سيلز سان ڇا ڪري سگهون ٿا؟ راند جي ميدان جي هر سيل کي سيٽ ڪري سگهجي ٿو:
  • سيل رنگ (سيل پس منظر رنگ)؛
  • متن (ٽيڪسٽ يا نمبر)؛
  • متن جو رنگ؛
  • ٽيڪسٽ سائيز سيل جي سائيز جي نسبت في سيڪڙو جي طور تي.
اچو ته راندين جي ميدان جي سيلن سان ڪم ڪرڻ جي طريقن تي غور ڪريو :
  1. void setCellColor (int x، int y، رنگ جو رنگ) - سيل جو رنگ مقرر ڪري ٿو همراهن سان (x، y):

    setCellColor(0, 0, Color.RED);
    setCellColor(3, 6, Color.BLACK);
    setCellColor(6, 8, Color.NONE);

  2. رنگ getCellColor(int x، int y) - سيل جو رنگ واپسي ٿو همراهن سان (x، y):

    Color myColor = getCellColor(2, 0);

  3. void setCellValue(int x, int y, String value) - رکي ٿو ٽيڪسٽ ويليو سيل ۾ همراهن سان (x، y):

    setCellValue(3, 3, "text");
    setCellValue(0, 8, "W");
    setCellValue(4, 1, "2222");
    setCellValue(6, 6, "");

  4. اسٽرنگ getCellValue(int x, int y) - سيل ۾ موجود متن کي همراهن (x, y) سان واپس ڏئي ٿو:

    String s = getCellValue(3, 3);
    System.out.println(getCellValue(4, 1));

  5. void setCellTextSize(int x، int y، int size) - سيل ۾ مواد جي سائيز کي ڪوآرڊينيٽس سان سيٽ ڪري ٿو (x، y). سائيز - ٽيڪسٽ جي اوچائي سيل جي اوچائي جو سيڪڙو:

    setCellTextSize(2 , 0, 70); //  70% высоты клетки

  6. int getCellTextSize(int x، int y) - سيل ۾ مواد جي سائيز کي همراهڪن سان موٽائي ٿو (x، y):

    int size = getCellTextSize(2 , 0);

  7. void setCellNumber (int x, int y, int value) - نمبر جي قيمت سيل ۾ رکي ٿو همراهن سان (x, y):

    setCellNumber(3, 3, 40);
    setCellNumber(0, 8, -8);
    setCellNumber(4, 1, 2222);
    setCellNumber(6, 6, 0);

  8. int getCellNumber (int x, int y) - سيل ۾ موجود نمبر کي ڪوآرڊينيٽ (x، y) سان موٽائي ٿو. جيڪڏهن سيل نمبر تي مشتمل نه آهي، واپسي 0:

    int i = getCellNumber(3, 3);
    System.out.println(getCellNumber(4, 1));

  9. void setCellTextColor (int x، int y، رنگ جو رنگ) - مواد جو رنگ مقرر ڪري ٿو (ٽيڪسٽ) سيل ۾ همراهن سان (x، y):

    setCellTextColor(2, 1, Color.GREEN);
    setCellTextColor(0, 1, Color.NONE);

  10. رنگ getCellTextColor(int x, int y) - مواد جو رنگ واپس ڏئي ٿو (ٽيڪسٽ) سيل ۾ ڪوآرڊينيٽس سان (x، y):

    Color textColor = getCellTextColor(1, 3);
سهولت لاءِ، اتي ڪيترائي setCellValueEx() طريقا آھن مختلف سيٽن جي پيٽرولن سان:
  1. void setCellValueEx(int ​​x, int y, Color cell Color, String Value) - سيل کي سيٽ ڪري ٿو ڪوآرڊينيٽس سان (x, y) پس منظر رنگ سيل رنگ ۽ مواد جي قيمت:

    setCellValueEx(0, 2, Color.BLUE, "56");

  2. void setCellValueEx(int ​​x, int y, Color cellColor, String value, Color textColor) - سيل کي سيٽ ڪري ٿو ڪوآرڊينيٽس سان (x, y) پس منظر جو رنگ سيل رنگ، مواد جي قيمت ۽ مواد جو رنگ textColor:

    setCellValueEx(0, 2, Color.BLACK, "56", Color.GREEN);

  3. void setCellValueEx (int x, int y, Color cell Color, String value, Color textColor, int textSize)؛ - سيل کي ڪوآرڊينيٽس سان سيٽ ڪري ٿو (x، y) پس منظر جو رنگ سيل رنگ، مواد جي قيمت، مواد جو رنگ textColor ۽ مواد جي سائيز textSize:

    setCellValueEx(0, 2, Color.BLACK, "56", Color.GREEN, 70);

6. رنگ سان ڪم ڪرڻ

راند جي انجڻ ۾ رنگن کي ڪنٽرول ڪيو ويندو آهي رنگ اينيم ، جنهن ۾ 148 رنگن لاءِ منفرد قدر شامل آهن. ۽ پڻ خاص قدر NONE - رنگ جي غير موجودگي. رنگ سان ڪم ڪرڻ جو مثال:
Color myColor = Color.WHITE;  //  переменной myColor присваивается белый цвет.
Color redColor = Color.RED; //  переменной redColor присваивается красный цвет.
Color blueColor = Color.BLUE; //  переменной blueColor присваивается синий цвет.
ڪڏهن ڪڏهن توهان سڀني موجوده رنگن جي هڪ صف حاصل ڪرڻ چاهيو ٿا. ائين ڪرڻ لاء، قدر () طريقو استعمال ڪريو . مثال طور:
//  переменной colors присваивается массив, содержащий все доступные цвета.
Color[] colors = Color.values();
پيٽ ۾ رنگ نمبر حاصل ڪرڻ بلڪل سادو آهي:
Color color = Color.RED;
int redIndex = color.ordinal(); //  Номер красного цвета

int blueIndex = Color.BLUE.ordinal(); //  Номер синего цвета
توھان پڻ حاصل ڪري سگھو ٿا رنگ ان جي نمبر ذريعي:
//  переменной color присваивается цвет с индексом 10 из enum Color.
Color color = Color.values()[10];

7. ڊائلاگ باڪس

راند جي آخر ۾، پليئر کي فتح يا شڪست جي خبر ڏني وڃي. هن لاءِ هڪ خاص طريقو آهي جيڪو ڏيکاري ٿو هڪ ڊائلاگ باڪس گيم اسڪرين تي:
void showMessageDialog(Color cellColor, String message, Color textColor, int textSize)
هتي:
  • سيل رنگ - ڊائلاگ باڪس جو پس منظر رنگ؛
  • پيغام - پيغام جو متن؛
  • متن جو رنگ - پيغام جي متن جو رنگ؛
  • ٽيڪسٽ سائيز - پيغام جي ٽيڪسٽ سائيز.
جيڪڏهن صارف اسپيس بار کي دٻائي ٿو ته ڊائلاگ پاڻ کي بند ڪري ٿو.

8. افاديت جا طريقا

بي ترتيب نمبر اڪثر استعمال ٿيندا آهن جڏهن رانديون لکڻ. بي ترتيب نمبرن کي حاصل ڪرڻ آسان بڻائڻ لاءِ، توھان استعمال ڪري سگھوٿا اسڪريپ انجڻ جا طريقا:
  1. int getRandomNumber(int max) - 0 کان (max-1) سميت بي ترتيب انٽيجر موٽائي ٿو.

  2. int getRandomNumber(int min، int max) - ھڪ بي ترتيب انٽيجر موٽائي ٿو منٽ کان (max-1) تائين.

9. راند انجڻ جون حدون

سائيٽ تي راندين کي هلائڻ لاء، اهي سرور تي JavaScript ۾ ترجمو ڪيا ويا آهن. ان سلسلي ۾، ڪجهه پابنديون آهن. خاص طور تي، جڏهن JavaRush انجڻ استعمال ڪندي رانديون لکي، توهان فائلن سان ڪم نٿا ڪري سگهو، ۽ نه ئي سسٽم ڪلاس جا سڀ طريقا استعمال ڪري سگهو ٿا ، سواءِ currentTimeMillis() , setOut() , setErr() , arrayscopy() . توھان پڻ استعمال ڪري سگھو ٿا err ۽ out fields . انهن پابندين جي ڀڃڪڙي ڪندي، راند، يقينا، مرتب ۽ هلائي سگهجي ٿو، پر اهو شايع ڪرڻ ممڪن نه ٿيندو. توهان لامحدود لوپس سان راند شايع ڪرڻ جي قابل نه هوندا. اهو ئي سڀ ڪجهه آهي! جيڪڏهن توهان راندين جي سيڪشن بابت وڌيڪ سکڻ چاهيو ٿا، هتي ڪجهه مفيد دستاويز آهن جيڪي مدد ڪري سگهن ٿيون:
تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION