2020.06.02
Javaプログラミング
文字の間違い探し
文字の間違い探しは1つだけ違う文字を目視で探すものです。文字を格子状に並べて1つの文字だけ違う文字にします。下の画像の中に1つだけ”特”(とく)が入っています。
このプログラムは、違う文字を配置する行数と桁数をランダムで決定します。行と桁の2重ループで文字('持')を表示していき、ランダムに決めた行数と桁数になったときだけ違う文字('特')を表示するようにしています。
Javaソースコード
MachigaiChar1.java
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030
public class MachigaiChar1 { public static void main( String[] args ) { // s1とs2に似ている文字を代入 String s = "持"; String sx = "特"; // 桁数(横の数) int col = 15; // 行数(縦の数) int row = 10; // 間違い文字を出す位置 int col_x = (int)( Math.random() * (double)col ) + 1; int row_x = (int)( Math.random() * (double)row ) + 1; // 行のループ for ( int r = 1; r <= row; ++ r ) { // 桁のループ for ( int c = 1; c <= col; ++ c ) { if ( ( r == row_x ) && ( c == col_x ) ) System.out.print( sx ); else System.out.print( s ); } // 改行 System.out.println(); } } }
実行結果
コンパイル ソースコードが「ANSI」の場合
C:\talavax\javasample>javac -encoding sjis MachigaiChar1.java
コンパイル ソースコードが「UTF-8」の場合
C:\talavax\javasample>javac MachigaiChar1.java
実行
C:\talavax\javasample>java MachigaiChar1
出力結果
持持持持持持持持持持持持持持持 持持持持持持持持持持持持持持持 持持持持持持持持持持持持持持持 持持持持持持持持持持持持持持持 持持持持持持持持持持持持持持持 持持持持持持持持持持持持持持持 持持特持持持持持持持持持持持持 持持持持持持持持持持持持持持持 持持持持持持持持持持持持持持持 持持持持持持持持持持持持持持持
実行結果は、毎回違います。
Javaソースコードの解説
それでは、ソースを順番に観ていきましょう。
003 004 005
// s1とs2に似ている文字を代入 String s = "持"; String sx = "特";
007 008
// 桁数(横の数) int col = 15;
010 011
// 行数(縦の数) int row = 10;
013 014 015
// 間違い文字を出す位置 int col_x = (int)( Math.random() * (double)col ) + 1; int row_x = (int)( Math.random() * (double)row ) + 1;
Math.randomメソッド
public static double Math.random()
・乱数を返します。 パラメータ なし 戻り値 0.0以上、1.0未満の乱数
017 018 019 020 021 022 023 024 025 026 027 028
// 行のループ for ( int r = 1; r <= row; ++ r ) { // 桁のループ for ( int c = 1; c <= col; ++ c ) { if ( ( r == row_x ) && ( c == col_x ) ) System.out.print( sx ); else System.out.print( s ); } // 改行 System.out.println(); }
ソースコードのrowとcolを変えることで文字を見つける難しさを変えることができます。文字も自由に変えてみてください。
以上です。