Voyons voir. Je vais inclure un bloc de code ici avec pas mal de code et voir à quoi il ressemble à l’impression :
import java.util.Scanner;
/**
* Jeu d'AceyDucey
*
* Basé sur le jeu de base d'AceyDucey ici
* https://github.com/coding-horror/basic-computer-games/blob/main/01%20Acey%20Ducey/aceyducey.bas
* Remarque : L'idée était de créer une version du jeu Basic des années 1970 en Java, sans introduire
* de nouvelles fonctionnalités - aucun texte supplémentaire, aucune vérification d'erreurs, etc. n'a été ajouté.
*/
public class AceyDucey {
// Montant actuel de l'argent du joueur
private int playerAmount;
// Première carte tirée par le croupier
private Card firstCard;
// Deuxième carte tirée par le croupier
private Card secondCard;
// Carte tirée par le joueur
private Card playersCard;
// Utilisé pour afficher l'introduction/les instructions du jeu
private boolean firstTimePlaying = true;
// État du jeu pour déterminer si le jeu est terminé
private boolean gameOver = false;
// Utilisé pour l'entrée au clavier
private final Scanner kbScanner;
// Valeur constante pour les cartes d'un jeu - 2 le plus bas, 14 (As) le plus haut
public static final int LOW_CARD_RANGE = 2;
public static final int HIGH_CARD_RANGE = 14;
public AceyDucey() {
// Initialiser l'argent du joueur
playerAmount = 100;
// Initialiser le scanner du clavier
kbScanner = new Scanner(System.in);
}
// Méthode pour rejouer - méthode publique appelée par la classe qui lance le jeu
// Si le joueur entre OUI, le jeu peut être rejoué (retourne vrai)
// sinon non (retourne faux)
public boolean playAgain() {
System.out.println();
System.out.println("DÉSOLÉ, AMI, MAIS VOUS AVEZ ÉTÉ DÉPOUILLÉ.");
System.out.println();
System.out.println();
System.out.print("ESSAYEZ ENCORE (OUI OU NON) ");
String playAgain = kbScanner.next().toUpperCase();
System.out.println();
System.out.println();
if (playAgain.equals("OUI")) {
return true;
} else {
System.out.println("OK, J'ESPÈRE QUE VOUS VOUS ÊTES AMUSÉ !");
return false;
}
}
// Méthode de boucle de jeu
public void play() {
// Continuer à jouer des mains jusqu'à ce que le joueur n'ait plus d'argent
do {
if (firstTimePlaying) {
intro();
firstTimePlaying = false;
}
displayBalance();
drawCards();
displayCards();
int betAmount = getBet();
playersCard = randomCard();
displayPlayerCard();
if (playerWon()) {
System.out.println("VOUS GAGNEZ !!");
playerAmount += betAmount;
} else {
System.out.println("DÉSOLÉ, VOUS PERDEZ");
playerAmount -= betAmount;
// Le joueur a-t-il manqué d'argent ?
if (playerAmount <= 0) {
gameOver = true;
}
}
} while (!gameOver); // Continuer à jouer jusqu'à ce que le joueur manque d'argent
}
// Méthode pour déterminer si le joueur a gagné (retourne vrai) ou perdu (retourne faux)
// pour gagner, la carte du joueur doit être dans la plage de la première et de la deuxième carte du croupier
// tirées, y compris les première et deuxième cartes.
private boolean playerWon() {
// gagnant
return (playersCard.getValue() >= firstCard.getValue())
&& playersCard.getValue() <= secondCard.getValue();
}
private void displayPlayerCard() {
System.out.println(playersCard.getName());
}
// Obtenir la mise du joueur et retourner le montant
// 0 est considéré comme une mise valide, mais mieux vaut plus que ce que le joueur a disponible n'est pas
// la méthode bouclera jusqu'à ce qu'une mise valide soit saisie.
private int getBet() {
boolean validBet = false;
int amount;
do {
System.out.print("QUELLE EST VOTRE MISE ");
amount = kbScanner.nextInt();
if (amount == 0) {
System.out.println("POULE !");
validBet = true;
} else if (amount > playerAmount) {
System.out.println("DÉSOLÉ, MON AMI, MAIS VOUS AVEZ MISÉ TROP.");
System.out.println("VOUS N'AVEZ QUE " + playerAmount + " DOLLARS À MISER.");
} else {
validBet = true;
}
} while (!validBet);
return amount;
}
private void displayBalance() {
System.out.println("VOUS AVEZ MAINTENANT " + playerAmount + " DOLLARS.");
}
private void displayCards() {
System.out.println("VOICI VOS DEUX PROCHAINES CARTES : ");
System.out.println(firstCard.getName());
System.out.println(secondCard.getName());
}
// Tirer deux cartes de croupier et les sauvegarder pour une utilisation ultérieure.
// s'assurer que la première carte a une valeur inférieure à la seconde
private void drawCards() {
do {
firstCard = randomCard();
secondCard = randomCard();
} while (firstCard.getValue() >= secondCard.getValue());
}
// Crée une carte aléatoire
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("JEU DE CARTES ACEY DUCEY");
System.out.println("CREATIVE COMPUTING MORRISTOWN, NEW JERSEY");
System.out.println();
System.out.println();
System.out.println("ACEY-DUCEY SE JOUE DE LA MANIÈRE SUIVANTE");
System.out.println("LE CROUPIER (ORDINATEUR) DISTRIBUE DEUX CARTES FACE VERS LE HAUT");
System.out.println("VOUS AVEZ LA POSSIBILITÉ DE MISER OU DE NE PAS MISER SELON");
System.out.println("QUE VOUS ESTIMIEZ OU NON QUE LA CARTE AURA");
System.out.println("UNE VALEUR ENTRE LES DEUX PREMIÈRES.");
System.out.println("SI VOUS NE VOULEZ PAS MISER, ENTREZ : 0");
}
}
Notez que nous avons une prise en charge assez complète de l’accessibilité, je serais donc intéressé d’entendre spécifiquement ce qui ne fonctionne pas pour votre utilisateur aveugle @thresholdpeople .
De plus, le bloc de code ci-dessus me semble correct dans la version imprimée. J’ai simplement appuyé sur « imprimer » dans Chrome, puis sur « enregistrer sous PDF » pour générer une version PDF de ce sujet :
Exporter le sujet en markdown - fonctionnalité - Discourse Meta.pdf (249,9 Ko)
Je ne vois pas de problème. Veuillez indiquer les zones spécifiques du PDF qui ne sont pas correctes si vous en voyez un. Merci !