CodeGym /جاوا بلاگ /Random-SD /CodeGym تي رانديون سيڪشن: راند انجڻ
John Squirrels
سطح
San Francisco

CodeGym تي رانديون سيڪشن: راند انجڻ

گروپ ۾ شايع ٿيل
CodeGym کان ”گيمس“ هڪ نئون سيڪشن آهي جنهن ۾ وڏن ڪمن سان گڏ مشهور ڪمپيوٽر گيمز لکڻ شامل آهن. اهي ٺاهڻ ۾ آسان آهن انهي کان وڌيڪ لڳي ٿو: هر منصوبي کي ويهن ذيلي ڪمن ۾ ورهايو ويو آهي. قدم قدم تي ڪم مڪمل ڪندي، توهان پنهنجي راند لکندا، ۽ پوءِ توهان منفرد خاصيتون شامل ڪري سگهو ٿا ۽ ان کي دوستن سان شيئر ڪري سگهو ٿا. ڪوڊ گيم تي "گيمس" سيڪشن: گيم انجڻ - 1رانديون استعمال ڪن ٿيون سادي ڪوڊ گيم گيم انجڻ . هن آرٽيڪل ۾، اسان ان جي اهم خصوصيتن کي بيان ڪنداسين ۽ راند لکڻ جي عمل وانگر نظر ايندي.

1. تعارف

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

  2. راند جو عمل. ھن اسٽيج ۾ شامل آھن ھلندڙ گيم جون شيون، پليئر ايڪشن، سکور رکڻ، ۽ ٻيا عمل جيڪي ھڪ خاص تعدد تي ٿيڻ گهرجن يا جڏھن بٽڻ دٻايا وڃن.

  3. راند جي مڪمل ٿيڻ. ھن اسٽيج ۾ شامل آھي انيميشن کي روڪڻ، جيت يا نقصان جي رپورٽ ڪرڻ، ۽ ٻيون ڪارناما جيڪي لازمي طور تي راند جي آخر ۾ انجام ڏنا وڃن.

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

راند جي شروعات صرف ٻن مرحلن تي مشتمل آهي: قدم 1: راند جو مکيه ڪلاس ٺاهيو. ڪوڊ گيم گيم انجڻ استعمال ڪندي پنهنجي راند کي ترقي ڪرڻ لاءِ، توهان کي ڪلاس ٺاهڻ جي ضرورت آهي جيڪا ورثي ۾ ملي ٿي ڪلاس Game(com.codegym.engine.cell.Game). هي توهان جي ڪلاس کي گيم انجڻ جي طريقن کي ڪال ڪرڻ جي صلاحيت ڏئي ٿو، ۽ انجڻ کي توهان جي طريقن کي ڪال ڪرڻ جي صلاحيت ڏئي ٿو. مثال طور:
import com.codegym.engine.cell.Game;

public class MySuperGame extends Game {
    ...
}
مرحلا 2: اوور رائڊ ڪريو شروعاتي طريقو (). راند کي شروع ڪرڻ لاءِ گهربل سڀ عمل هن طريقي سان ٿيندا: راند جو ميدان ٺاهڻ، راند جون شيون ٺاهڻ وغيره. توهان کي صرف هن طريقي کي ڪلاس ۾ بيان ڪرڻ جي ضرورت آهي جيڪا ڪلاس کي ورثي ۾ ملي ٿي Game. مثال طور:
import com.codegym.engine.cell.Game;

public class MySuperGame extends Game {

    @Override
    public void initialize() {
        // Here we perform all actions to initialize the game and its objects
    }
}
اهو initialize()طريقو طريقو جي مطابق آهي main(): اهو راند لاءِ لکيل سڀني ڪوڊ لاءِ شروعاتي نقطو آهي.

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

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

public class MySuperGame extends Game {

    @Override
    public void initialize() {
       // Set the field size to 7 cells x 9 cells
       setScreenSize(7, 9);
        ...
    }
}
جڏهن هڪ راند لکڻ، توهان کي راند جي ميدان جي موجوده چوٽي ۽ اوچائي حاصل ڪرڻ جي ضرورت پوندي. هن کي ڪرڻ لاء، طريقا int getScreenWidth()۽ int getScreenHeight()طريقا هٿ ۾ ايندا. قدم 2: گرڊ کي بند ڪريو يا بند ڪريو (اختياري). جيڪڏھن توھان پسند نٿا ڪريو ڪارو گرڊ راند جي ميدان تي سيلز کي ڌار ڪري، توھان ان کي بند ڪري سگھو ٿا. طريقو void showGrid(boolean isShow)گرڊ کي آن ۽ آف ڪري ٿو. ڊفالٽ طور، گرڊ ڏيکاريل آهي. ان کي بند ڪرڻ لاء، هن طريقي کي ڪال ڪريو غلط سان دليل طور:
showGrid(false);
نتيجو: "راندين" سيڪشن تي ڪوڊ گيم: گيم انجڻ - 3گرڊ کي واپس ڪرڻ لاءِ، ڪال ڪريو:
showGrid(true);

4. هڪ ابتدائي پروگرام

هتي هڪ پروگرام جو هڪ مثال آهي:
public class MySuperGame extends Game {

    @Override
    public void initialize() {

        // Create a playing field that is 3 cells x 3 cells
        setScreenSize(3, 3);
        // Turn off the grid
        showGrid(false);
        // Change the background of the center cell to blue, and display an "X" in it.
        setCellValueEx(1, 1, Color.BLUE, "X", Color.ORANGE, 50);
    }
}
هن مثال ۾، راند جو ميدان 3x3 تي سيٽ ڪيو ويو آهي، گرڊ بند ڪيو ويو آهي، ۽ هڪ نارنگي "X" اڌ سيل جي سائيز سينٽر سيل ۾ نيري پس منظر تي سيٽ ڪيو ويو آهي. اها پهرين شيءِ هوندي جيڪا پليئر ڏسندي جڏهن راند شروع ٿيندي.

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

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

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

  2. Color getCellColor(int x, int y)- coordinates سان سيل جو رنگ موٽائي ٿو (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. String 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% of the cell height

  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, Color color)- سيل جي مواد (ٽيڪسٽ) جو رنگ مقرر ڪري ٿو همراهن سان (x، y):

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

  10. Color getCellTextColor(int x, int y)- سيل جي مواد (ٽيڪسٽ) جي رنگ کي همراهڪن (x، y) سان موٽائي ٿو:

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

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

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

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

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

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

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

Color enumراند انجڻ ۾ رنگن لاء ذميوار آهي . اهو 148 رنگن لاء منفرد قدر آهي. اهو پڻ هڪ خاص قدر آهي (NONE) جيڪو ڪنهن به رنگ جي نمائندگي نٿو ڪري. هتي رنگ سان ڪم ڪرڻ جو هڪ مثال آهي:
Color myColor = Color.WHITE;  // The myColor variable is set to white.
Color redColor = Color.RED;  // The redColor variable is set to red.
Color blueColor = Color.BLUE;  // The blueColor variable is set to light blue.
ڪڏهن ڪڏهن توهان کي تمام موجوده رنگن جي هڪ صف حاصل ڪرڻ جي ضرورت پوندي. هن کي ڪرڻ لاء، values()طريقو استعمال ڪريو. مثال طور:
Color[] colors = Color.values();  // The colors variable is assigned an array containing all available colors.
پيٽ ۾ رنگ جي انڊيڪس حاصل ڪرڻ تمام آسان آهي:
Color color = Color.RED;
int redIndex = color.ordinal();  // Index of red

int blueIndex = Color.BLUE.ordinal();  // Index of blue
توھان پڻ حاصل ڪري سگھو ٿا رنگ ان جي انڊيڪس ذريعي:
Color color = Color.values()[10];  // The color variable is assigned the color with index 10 in the Color enum.

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

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

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

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

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

اهو سڀ ڪجهه هاڻي لاء آهي! جيڪڏهن توهان "راندين" سيڪشن بابت وڌيڪ سکڻ چاهيو ٿا، هتي ڪجهه مفيد دستاويز آهن جيڪي مدد ڪري سگهن ٿيون:
تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION