Export topic as markdown

Vediamo. Includerò un blocco di codice qui con un bel po’ di codice e vedrò come appare stampato:

import java.util.Scanner;

/**
 * Gioco di AceyDucey
 * 
 * Basato sul gioco base di AceyDucey qui
 * https://github.com/coding-horror/basic-computer-games/blob/main/01%20Acey%20Ducey/aceyducey.bas
 * Nota: L'idea era di creare una versione del gioco Basic degli anni '70 in Java, senza introdurre
 * nuove funzionalità - non sono stati aggiunti testi aggiuntivi, controlli degli errori, ecc.
 */
public class AceyDucey {

    // Importo attuale in contanti del giocatore
    private int playerAmount;

    // Prima carta del mazziere pescata
    private Card firstCard;

    // Seconda carta del mazziere pescata
    private Card secondCard;

    // Carta pescata dal giocatore
    private Card playersCard;

    // Utente per visualizzare l'introduzione/istruzioni del gioco
    private boolean firstTimePlaying = true;

    // Stato del gioco per determinare se il gioco è finito
    private boolean gameOver = false;

    // Usato per l'input da tastiera
    private final Scanner kbScanner;

    // Valore costante per le carte da un mazzo - 2 il più basso, 14 (Asso) il più alto
    public static final int LOW_CARD_RANGE = 2;
    public static final int HIGH_CARD_RANGE = 14;

    public AceyDucey() {
        // Inizializza i contanti del giocatore
        playerAmount = 100;

        // Inizializza lo scanner da tastiera
        kbScanner = new Scanner(System.in);
    }

    // Metodo per giocare di nuovo - metodo pubblico chiamato dalla classe che invoca il gioco
    // Se il giocatore inserisce SÌ, il gioco può essere giocato di nuovo (restituisce true)
    // altrimenti no (false)
    public boolean playAgain() {
        System.out.println();
        System.out.println("MI DISPIACE, AMICO, MA HAI FINITO I TUOI SOLDI.");
        System.out.println();
        System.out.println();
        System.out.print("RIPROVI (SÌ O NO) ");
        String playAgain = kbScanner.next().toUpperCase();
        System.out.println();
        System.out.println();
        if (playAgain.equals("SÌ")) {
            return true;
        } else {
            System.out.println("OK, SPERO CHE TI SIA DIVERTITO!");
            return false;
        }
    }

    // Metodo del ciclo di gioco

    public void play() {

        // Continua a giocare mani finché il giocatore non finisce i contanti
        do {
            if (firstTimePlaying) {
                intro();
                firstTimePlaying = false;
            }
            displayBalance();
            drawCards();
            displayCards();
            int betAmount = getBet();
            playersCard = randomCard();
            displayPlayerCard();
            if (playerWon()) {
                System.out.println("HAI VINTO!!");
                playerAmount += betAmount;
            } else {
                System.out.println("MI DISPIACE, HAI PERSO");
                playerAmount -= betAmount;
                // Il giocatore ha finito i soldi?
                if (playerAmount <= 0) {
                    gameOver = true;
                }
            }

        } while (!gameOver); // Continua a giocare finché il giocatore non finisce i contanti
    }

    // Metodo per determinare se il giocatore ha vinto (restituisce true) o perso (restituisce false)
    // per vincere una carta del giocatore deve essere nell'intervallo della prima e della seconda carta del mazziere
    // pescate comprese le prime e le seconde carte.
    private boolean playerWon() {
        // vincitore
        return (playersCard.getValue() >= firstCard.getValue())
                && playersCard.getValue() <= secondCard.getValue();

    }

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

    // Ottiene la puntata del giocatore e restituisce l'importo
    // 0 è considerato una puntata valida, ma meglio più di quanto il giocatore abbia a disposizione non lo è
    // il metodo si ripeterà finché non verrà inserita una puntata valida.
    private int getBet() {
        boolean validBet = false;
        int amount;
        do {
            System.out.print("QUAL È LA TUA PUNTATA ");
            amount = kbScanner.nextInt();
            if (amount == 0) {
                System.out.println("POLLICINO!!");
                validBet = true;
            } else if (amount > playerAmount) {
                System.out.println("MI DISPIACE, AMICO MIO, MA HAI PUNTATO TROPPO.");
                System.out.println("HAI SOLO " + playerAmount + " DOLLARI DA PUNTALE.");
            } else {
                validBet = true;
            }
        } while (!validBet);

        return amount;
    }

    private void displayBalance() {
        System.out.println("ORA HAI " + playerAmount + " DOLLARI.");
    }

    private void displayCards() {
        System.out.println("ECCO LE TUE PROSSIME DUE CARTE: ");
        System.out.println(firstCard.getName());
        System.out.println(secondCard.getName());
    }

    // Pesca due carte del mazziere e le salva per un uso successivo.
    // assicurati che la prima carta abbia un valore inferiore alla seconda
    private void drawCards() {

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

    // Crea una carta casuale
    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("GIOCO DI CARTE ACEY DUCEY");
        System.out.println("CREATIVE COMPUTING  MORRISTOWN, NEW JERSEY");
        System.out.println();
        System.out.println();
        System.out.println("ACEY-DUCEY SI GIOCA NEL SEGUENTE MODO");
        System.out.println("IL MAZZIERE (COMPUTER) DISTRIBUISCE DUE CARTE A FACCIA IN SU");
        System.out.println("HAI LA POSSIBILITÀ DI PUNTALE O NON PUNTALE A SECONDA");
        System.out.println("CHE TU PENSI CHE LA CARTA AVRÀ");
        System.out.println("UN VALORE COMPRESO TRA LE PRIME DUE.");
        System.out.println("SE NON VUOI PUNTALE, INSERISCI: 0");
    }
}

Nota che abbiamo un supporto di accessibilità abbastanza completo, quindi sarei interessato a sapere specificamente cosa non funziona per il tuo utente non vedente @thresholdpeople .

Inoltre, il blocco di codice sopra mi sembra a posto nella versione stampata. Ho appena premuto “stampa” in Chrome, quindi “salva come PDF” per generare una versione PDF di questo argomento:

Esporta argomento come markdown - funzionalità - Discourse Meta.pdf (249,9 KB)

Non vedo un problema. Per favore, indica le aree specifiche nel PDF che non sono corrette se vedi un problema. Grazie!