はじめに

現在,C言語を学びなおしと,そこからJava言語へつなげていけるような教材を作っています.その題材として,CUIでのロールプレイングゲームを作ってみようと考えました.問題はCUIであるため,マップの表示をどうするかというところが課題になります.そこで用いることを考えたのがANSIエスケープシーケンスです.以前からそういうものがあることはわかっていたのですが使ったことがなく,いろいろと調べるきっかけとなりました.ここではその調べた結果をまとめることで備忘録にしておこうと思います.

環境

OS: Windows10

行いたいこと

まずはC言語で色のついた文字や,背景色と文字色を反転させることでキャラクタがそこを歩いていることを表現したいと思います.また,C言語でできたことをJava言語でも同じように動作するようにしたいと思います.

わかったこと

まずわかったこととして,Windows10ではそこそこ簡単にANSIエスケープシーケンスで文字色を変えたりできる,ということが分かりました.ただし,動作させるときにはANSICONを導入した方がよさそうであることも分かりました.通常のコマンドプロンプトやPower Shellを使っても色を出せそうですが,そのためにレジスタを変更する必要がありそうであり,これを学生さんに行ってもらうには少しハードルが高いと感じたためです.ということで,ここではまずANSICONをダウンロードし,これを使ってANSIエスケープシーケンスを書くこととしました.

次にC言語とJava言語の違いです.大きな違いはエスケープコードの表記方法が異なることです.C言語では「 \x1B[ 」Java言語では「 \u001B[ 」となります.エスケープコードの後に続く,コマンドにあたる部分は共通のようです.こちらのページにコマンドがまとめられています.