Export topic as markdown

Mal sehen. Ich füge hier einen Codeblock mit einer ganzen Menge Code ein und sehe, wie er gedruckt aussieht:

import java.util.Scanner;

/**
 * Spiel von AceyDucey
 * 
 * Basiert auf dem einfachen Spiel AceyDucey hier
 * https://github.com/coding-horror/basic-computer-games/blob/main/01%20Acey%20Ducey/aceyducey.bas
 * Hinweis: Die Idee war, eine Version des Basic-Spiels aus den 1970er Jahren in Java zu erstellen, ohne neue Funktionen einzuführen - es wurden keine zusätzlichen Texte, Fehlerprüfungen usw. hinzugefügt.
 */
public class AceyDucey {

    // Aktueller Geldbetrag des Spielers
    private int playerAmount;

    // Erste gezogene Dealer-Karte
    private Card firstCard;

    // Zweite gezogene Dealer-Karte
    private Card secondCard;

    // Vom Spieler gezogene Karte
    private Card playersCard;

    // Benutzer zur Anzeige der Spieleinführung/Anweisungen
    private boolean firstTimePlaying = true;

    // Spielstatus zur Bestimmung, ob das Spiel vorbei ist
    private boolean gameOver = false;

    // Wird für Tastatureingaben verwendet
    private final Scanner kbScanner;

    // Konstante für Karten aus einem Deck - 2 niedrigste, 14 (Ass) höchste
    public static final int LOW_CARD_RANGE = 2;
    public static final int HIGH_CARD_RANGE = 14;

    public AceyDucey() {
        // Spieler-Geld initialisieren
        playerAmount = 100;

        // kb-Scanner initialisieren
        kbScanner = new Scanner(System.in);
    }

    // Erneut spielen-Methode - öffentliche Methode, die von der aufrufenden Klasse aufgerufen wird
    // Wenn der Spieler JA eingibt, kann das Spiel erneut gespielt werden (true zurückgegeben)
    // andernfalls nicht (false)
    public boolean playAgain() {
        System.out.println();
        System.out.println("ES TUT MIR LEID, FREUND, ABER DU HAST DEIN GELD VERSP कर. ");
        System.out.println();
        System.out.println();
        System.out.print("VERSUCH ES NOCHMAL (JA ODER NEIN) ");
        String playAgain = kbScanner.next().toUpperCase();
        System.out.println();
        System.out.println();
        if (playAgain.equals("JA")) {
            return true;
        } else {
            System.out.println("OK, ICH HOFFE, DU HATTEST SPASS!");
            return false;
        }
    }

    // Spielschleifen-Methode

    public void play() {

        // Hände weiterspielen, bis der Spieler kein Geld mehr hat
        do {
            if (firstTimePlaying) {
                intro();
                firstTimePlaying = false;
            }
            displayBalance();
            drawCards();
            displayCards();
            int betAmount = getBet();
            playersCard = randomCard();
            displayPlayerCard();
            if (playerWon()) {
                System.out.println("DU GEWINNST!!");
                playerAmount += betAmount;
            } else {
                System.out.println("ES TUT MIR LEID, DU VERLIERST");
                playerAmount -= betAmount;
                // Hat der Spieler kein Geld mehr?
                if (playerAmount <= 0) {
                    gameOver = true;
                }
            }

        } while (!gameOver); // Weiterspielen, bis der Spieler kein Geld mehr hat
    }

    // Methode zur Bestimmung, ob der Spieler gewonnen hat (true zurückgegeben) oder verloren hat (false zurückgegeben)
    // Um zu gewinnen, muss eine Spielerkarte im Bereich der ersten und zweiten gezogenen Dealer-Karten liegen,
    // einschließlich der ersten und zweiten Karten.
    private boolean playerWon() {
        // Gewinner
        return (playersCard.getValue() >= firstCard.getValue())
                && playersCard.getValue() <= secondCard.getValue();

    }

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

    // Holt die Wette des Spielers und gibt den Betrag zurück
    // 0 gilt als gültige Wette, aber mehr als der Spieler zur Verfügung hat, ist nicht gültig
    // Die Methode wird so lange wiederholt, bis eine gültige Wette eingegeben wird.
    private int getBet() {
        boolean validBet = false;
        int amount;
        do {
            System.out.print("WAS IST DEINE WETTE ");
            amount = kbScanner.nextInt();
            if (amount == 0) {
                System.out.println("FEIGLING!!");
                validBet = true;
            } else if (amount > playerAmount) {
                System.out.println("ES TUT MIR LEID, MEIN FREUND, ABER DU WETTST ZU VIEL.");
                System.out.println("DU HAST NUR " + playerAmount + " DOLLAR ZUM WETTEN.");
            } else {
                validBet = true;
            }
        } while (!validBet);

        return amount;
    }

    private void displayBalance() {
        System.out.println("DU HAST JETZT " + playerAmount + " DOLLAR.");
    }

    private void displayCards() {
        System.out.println("HIER SIND DEINE NÄCHSTEN ZWEI KARTEN: ");
        System.out.println(firstCard.getName());
        System.out.println(secondCard.getName());
    }

    // Zieht zwei Dealer-Karten und speichert sie für die spätere Verwendung.
    // Stelle sicher, dass die erste Karte einen kleineren Wert hat als die zweite.
    private void drawCards() {

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

    // Erstellt eine zufällige Karte
    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 KARTENSPIEL");
        System.out.println("CREATIVE COMPUTING  MORRISTOWN, NEW JERSEY");
        System.out.println();
        System.out.println();
        System.out.println("ACEY-DUCEY WIRD FOLGENDERMASSEN GESPIELT");
        System.out.println("DER DEALER (COMPUTER) GIBT ZWEI KARTEN AUF DECK");
        System.out.println("DU HAST DIE OPTION ZU WETTEN ODER NICHT ZU WETTEN, JE NACHDEM");
        System.out.println("OB DU DENKST, DASS DIE KARTE EINEN");
        System.out.println("WERT ZWISCHEN DEN ERSTEN BEIDEN HAT.");
        System.out.println("WENN DU NICHT WETTEN MÖCHTEST, GIB EIN: 0");
    }
}

Beachten Sie, dass wir eine ziemlich vollständige Barrierefreiheitsunterstützung haben. Ich wäre daran interessiert zu erfahren, was für Ihren blinden Benutzer @thresholdpeople speziell nicht funktioniert.

Auch der obige Codeblock sieht für mich in der gedruckten Version in Ordnung aus. Ich habe gerade in Chrome auf “Drucken” und dann auf “Als PDF speichern” geklickt, um eine PDF-Version dieses Themas zu erstellen:

Thema als Markdown exportieren - Feature - Discourse Meta.pdf (249,9 KB)

Ich sehe kein Problem. Bitte weisen Sie auf bestimmte Bereiche in der PDF-Datei hin, die nicht korrekt sind, wenn Sie ein Problem sehen. Danke!