2020/06/02 公開
・文字の間違い探し
文字の間違い探しは1つだけ違う文字を目視で探すものです。文字を格子状に並べて1つの文字だけ違う文字にします。下の画像の中に1つだけ”特”(とく)が入っています。

このプログラムは、違う文字を配置する行数と桁数をランダムで決定します。行と桁の2重ループで文字('持')を表示していき、ランダムに決めた行数と桁数になったときだけ違う文字('特')を表示するようにしています。
それでは、このJavaソースコードを紹介します。
MachigaiChar1.java ← クリックしてダウンロードページに移動001: public class MachigaiChar1 { 002: public static void main( String[] args ) { 003: // s1とs2に似ている文字を代入 004: String s = "持"; 005: String sx = "特"; 006: 007: // 桁数(横の数) 008: int col = 15; 009: 010: // 行数(縦の数) 011: int row = 10; 012: 013: // 間違い文字を出す位置 014: int col_x = (int)( Math.random() * (double)col ) + 1; 015: int row_x = (int)( Math.random() * (double)row ) + 1; 016: 017: // 行のループ 018: for ( int r = 1; r <= row; ++ r ) { 019: // 桁のループ 020: for ( int c = 1; c <= col; ++ c ) { 021: if ( ( r == row_x ) && ( c == col_x ) ) 022: System.out.print( sx ); 023: else 024: System.out.print( s ); 025: } 026: // 改行 027: System.out.println(); 028: } 029: } 030: }
MachigaiChar1の出力結果
持持持持持持持持持持持持持持持 持持持持持持持持持持持持持持持 持持持持持持持持持持持持持持持 持持持持持持持持持持持持持持持 持持持持持持持持持持持持持持持 持持持持持持持持持持持持持持持 持持特持持持持持持持持持持持持 持持持持持持持持持持持持持持持 持持持持持持持持持持持持持持持 持持持持持持持持持持持持持持持
実行結果は、毎回違います。
それでは、ソースを順番に観ていきましょう。
003: // s1とs2に似ている文字を代入 004: String s = "持"; 005: String sx = "特";
Stringクラスのsに格子を埋める文字を代入しています。Stringクラスのsxに1文字だけ表示される文字を代入しています。好きな文字に変えてください。
007: // 桁数(横の数) 008: int col = 15;
int型の変数colに桁数(横方向の個数)を代入しています。
010: // 行数(縦の数) 011: int row = 10;
int型の変数rowに行数(縦方向の個数)を代入しています。
013: // 間違い文字を出す位置 014: int col_x = (int)( Math.random() * (double)col ) + 1; 015: int row_x = (int)( Math.random() * (double)row ) + 1;
違う文字sxを表示する位置を決めています。int型の変数col_xに乱数で1~colの値を入れています。同様に、int型の変数row_xに乱数で1~rowの値を入れています。
Math.randomメソッド
public static double Math.random()
■乱数を返します。 パラメータ なし 戻り値 0.0以上、1.0未満の乱数
017: // 行のループ 018: for ( int r = 1; r <= row; ++ r ) { 019: // 桁のループ 020: for ( int c = 1; c <= col; ++ c ) { 021: if ( ( r == row_x ) && ( c == col_x ) ) 022: System.out.print( sx ); 023: else 024: System.out.print( s ); 025: } 026: // 改行 027: System.out.println(); 028: }
for文でrowとcolの2重ループを作り、rowとrow_x、colとcol_xが同じときにsxを表示しています。それ以外のときはsを表示しています。
ソースコードのrowとcolを変えることで文字を見つける難しさを変えることができます。文字も自由に変えてみてください。
■関連コンテンツ
乱数 random | Math.randomの使い方について解説 |
for文 | 繰り返し処理に使用するfor文について解説 |
if文 | 条件による処理の分岐に使用するif文について解説 |
■新着情報
2021.12.21 | 現在の日時を取得 | いまの年月日、時分秒? |
■広告
