Export topic as markdown

دعنا نرى. سأدرج كتلة تعليمات برمجية هنا مع قدر كبير من التعليمات البرمجية وأرى كيف ستبدو عند الطباعة:

import java.util.Scanner;

/**
 * لعبة AceyDucey
 * <p>
 * بناءً على لعبة AceyDucey الأساسية هنا
 * https://github.com/coding-horror/basic-computer-games/blob/main/01%20Acey%20Ducey/aceyducey.bas
 * ملاحظة: كانت الفكرة هي إنشاء نسخة من لعبة Basic في السبعينيات بلغة Java، دون تقديم
 * ميزات جديدة - لم تتم إضافة أي نصوص إضافية أو التحقق من الأخطاء، إلخ.
 */
public class AceyDucey {

    // المبلغ الحالي لنقود اللاعب
    private int playerAmount;

    // أول بطاقة موزع تم سحبها
    private Card firstCard;

    // ثاني بطاقة موزع تم سحبها
    private Card secondCard;

    // بطاقة اللاعب المسحوبة
    private Card playersCard;

    // المستخدم لعرض مقدمة اللعبة/التعليمات
    private boolean firstTimePlaying = true;

    // حالة اللعبة لتحديد ما إذا كانت اللعبة قد انتهت
    private boolean gameOver = false;

    // يستخدم لإدخال لوحة المفاتيح
    private final Scanner kbScanner;

    // قيمة ثابتة للبطاقات من مجموعة أوراق اللعب - 2 الأدنى، 14 (الآس) الأعلى
    public static final int LOW_CARD_RANGE = 2;
    public static final int HIGH_CARD_RANGE = 14;

    public AceyDucey() {
        // تهيئة نقود اللاعب
        playerAmount = 100;

        // تهيئة ماسح لوحة المفاتيح
        kbScanner = new Scanner(System.in);
    }

    // طريقة إعادة اللعب - طريقة عامة يتم استدعاؤها من الفئة التي تستدعي اللعبة
    // إذا أدخل اللاعب "نعم" فيمكن إعادة تشغيل اللعبة (يتم إرجاع true)
    // بخلاف ذلك لا (يتم إرجاع false)
    public boolean playAgain() {
        System.out.println();
        System.out.println("آسف يا صديقي، لكنك أتلفت كل أموالك.");
        System.out.println();
        System.out.println();
        System.out.print("هل تريد المحاولة مرة أخرى (نعم أم لا)؟ ");
        String playAgain = kbScanner.next().toUpperCase();
        System.out.println();
        System.out.println();
        if (playAgain.equals("YES")) {
            return true;
        } else {
            System.out.println("حسناً، أتمنى أن تكون قد استمتعت!");
            return false;
        }
    }

    // طريقة حلقة اللعبة

    public void play() {

        // استمر في لعب الجولات حتى ينفد مال اللاعب
        do {
            if (firstTimePlaying) {
                intro();
                firstTimePlaying = false;
            }
            displayBalance();
            drawCards();
            displayCards();
            int betAmount = getBet();
            playersCard = randomCard();
            displayPlayerCard();
            if (playerWon()) {
                System.out.println("لقد فزت!!");
                playerAmount += betAmount;
            } else {
                System.out.println("آسف، لقد خسرت");
                playerAmount -= betAmount;
                // هل نفد مال اللاعب؟
                if (playerAmount <= 0) {
                    gameOver = true;
                }
            }

        } while (!gameOver); // استمر في اللعب حتى ينفد مال اللاعب
    }

    // طريقة لتحديد ما إذا كان اللاعب قد فاز (يتم إرجاع true) أو خسر (يتم إرجاع false)
    // للفوز، يجب أن تكون بطاقة اللاعب ضمن نطاق بطاقتي الموزع الأولى والثانية
    // بما في ذلك البطاقتين الأولى والثانية.
    private boolean playerWon() {
        // الفائز
        return (playersCard.getValue() >= firstCard.getValue())
                && playersCard.getValue() <= secondCard.getValue();

    }

    private void displayPlayerCard() {
        System.out.println(playersCard.getName());
    }

    // احصل على رهان اللاعب، وأرجع المبلغ
    // 0 يعتبر رهانًا صالحًا، ولكن أكثر من المبلغ المتاح للاعب ليس كذلك
    // ستتكرر الطريقة حتى يتم إدخال رهان صالح.
    private int getBet() {
        boolean validBet = false;
        int amount;
        do {
            System.out.print("ما هو رهانك؟ ");
            amount = kbScanner.nextInt();
            if (amount == 0) {
                System.out.println("جبان!!");
                validBet = true;
            } else if (amount > playerAmount) {
                System.out.println("آسف يا صديقي، لكنك راهنت بالكثير.");
                System.out.println("لديك فقط " + playerAmount + " دولار للمراهنة.");
            } else {
                validBet = true;
            }
        } while (!validBet);

        return amount;
    }

    private void displayBalance() {
        System.out.println("لديك الآن " + playerAmount + " دولار.");
    }

    private void displayCards() {
        System.out.println("هذه هي بطاقتاك التاليتان: ");
        System.out.println(firstCard.getName());
        System.out.println(secondCard.getName());
    }

    // اسحب بطاقتي موزع، واحفظهما للاستخدام لاحقًا.
    // تأكد من أن البطاقة الأولى هي بطاقة ذات قيمة أقل من الثانية
    private void drawCards() {

        do {
            firstCard = randomCard();
            secondCard = randomCard();
        } while (firstCard.getValue() >= secondCard.getValue());
    }

    // ينشئ بطاقة عشوائية
    private Card randomCard() {
        return new Card((int) (Math.random()
                * (HIGH_CARD_RANGE - LOW_CARD_RANGE + 1) + LOW_CARD_RANGE));
    }

    public void intro() {
        System.out.println("لعبة بطاقات ACEY DUCEY");
        System.out.println("CREATIVE COMPUTING  MORRISTOWN, NEW JERSEY");
        System.out.println();
        System.out.println();
        System.out.println("تُلعب ACEY-DUCEY بالطريقة التالية");
        System.out.println("يقوم الموزع (الكمبيوتر) بتوزيع بطاقتين مكشوفتين");
        System.out.println("لديك خيار المراهنة أو عدم المراهنة اعتمادًا");
        System.out.println("على ما إذا كنت تعتقد أن البطاقة ستكون لها");
        System.out.println("قيمة بين البطاقتين الأوليين.");
        System.out.println("إذا كنت لا ترغب في المراهنة، أدخل: 0");
    }
}

لاحظ أن لدينا دعمًا كاملاً تقريبًا لإمكانية الوصول، لذا سأكون مهتمًا بمعرفة ما لا يعمل تحديدًا لمستخدمك الأعمى @thresholdpeople.

أيضًا، تبدو كتلة التعليمات البرمجية أعلاه جيدة في النسخة المطبوعة بالنسبة لي. لقد ضغطت للتو على “طباعة” في Chrome ثم “حفظ باسم PDF” لإنشاء نسخة PDF من هذا الموضوع نفسه:

Export topic as markdown - feature - Discourse Meta.pdf (249.9 KB)

أنا لا أرى مشكلة. يرجى الإشارة إلى مناطق محددة في ملف PDF غير صحيحة إذا كنت ترى مشكلة. شكرًا!