Ich versuche, ein Schachspiel in Java zu programmieren, das vollständig in der Konsole angezeigt wird. Ich verwende dafür Unicode-Zeichen wie White Chess Queen U + 2655. Mein Problem ist, dass ich keine Leerzeichen finden kann, die der Breite der Schachfiguren entsprechen, so dass ich die Karte nicht korrekt anzeigen kann. Werfen Sie einen Blick auf meinem Ausgang unten, zog ich die Bauern von h2 h4:Java Unicode Zeichenbreiten
8 ♜♞♝♛♚♝♞♜
7 ♟♟♟♟♟♟♟♟
6
5
4 ♙
3
2 ♙♙♙♙♙♙♙
1 ♖♘♗♕♔♗♘♖
a b c d e f g h
Edit: das Problem ist leichter darauf hinzuweisen, mit dem folgende Beispiel:
♙♙♙♙♙♙♙♙
xxxxxxxx
iiiiiiii
||||||||
Sie können sehen, dass die Schachfiguren sind etwas größer in der Breite als die anderen Charaktere unter den Bauern.
Hier auf dieser Website haben die Schachfiguren etwas mehr als die Breite eines Standardzeichens. In meiner Konsole in Eclipse haben die Schachfiguren eine Breite von etwas weniger als 2 Standardzeichen.
Ich nehme an Ich wünsche eine von drei Dinge:
- ein Leerzeichen, die die Breite der Unicode Schachfiguren übereinstimmt.
- Eine Java-Methode, die die Breite eines Zeichens oder einer Zeichenfolge zurückgibt
- Eine Java-Methode, mit der die Breite eines Zeichens oder einer Zeichenfolge auf einen beliebigen Wert festgelegt werden kann.
Danke für jede Hilfe oder Beratung, die Sie anbieten können.
Edit: stellt sich heraus, es war die Consolas Schrift, die mir Probleme verursacht hat. Consolas zeigt Schachfiguren mit einer sehr seltsamen Breite von etwa 1,8 Zeichen. Ich habe die Schriftart meiner Konsole auf ein paar verschiedene Schriftarten mit gleichem Abstand geändert, bis ich eine gefunden hatte, die die Schachfiguren richtig dimensionierte. Gibt es eine Möglichkeit, bestimmte Breiten unabhängig von der Schriftart zu gewährleisten?
Was Sie suchen, ist eine ** font ** mit diesen erforderlichen Eigenschaften, insbesondere ** monospaced **.Aber Sie können Pech haben, dies für Konsolen zu tun, da es kein solches Konzept von Schriften gibt, jeder Benutzer kann die Schriftart angeben, die er verwenden möchte. – luk2302
In Ihrer Drucklogik ist ein Fehler aufgetreten. Sie haben Leerzeichen zwischen Ihren Spalten, aber Sie legen sie nicht zwischen Ihre Teile. – teppic
@teppic Die Leerzeichen werden in meiner Eclipse-Konsole benötigt, aufgrund dessen, was ich über die Breite der Schachfiguren gesagt habe. Sie sind ungefähr 1,9 Zeichen breit in meiner Konsole. – the0dark0one