ターミナルでのチェス盤作成

ShellBeginner
オンラインで実践に進む

はじめに

このプロジェクトでは、Bash スクリプトを使用してチェス盤を作成する方法を学びます。このプロジェクトを完了することで、ネストされたループ、色の印刷、シェルスクリプトの使用経験を積むことができます。

🎯 タスク

このプロジェクトでは、以下を学習します。

  • チェス盤作成のための環境設定方法
  • ユーザーにチェス盤のサイズを入力させる方法
  • ネストされたループを使用して、白と黒のセルが交互に配置されたチェス盤を出力する方法

🏆 達成目標

このプロジェクトを完了すると、以下のことができるようになります。

  • Bash スクリプティングを使用して視覚的なチェス盤を作成する
  • ネストされたループを活用してグリッド状の構造を生成する
  • 出力の視覚的魅力を高めるために色の印刷を実装する
  • ユーザーからの入力を求め、その入力を使用して目的の出力を生成する

環境設定

このステップでは、チェス盤を作成するための環境を設定します。

  1. テキストエディタを開き、chessBoard.shという名前の新しいファイルを作成します。
  2. ファイルの先頭に次のシバン(shebang)行を追加します。
#!/bin/bash

この行は、スクリプトの実行に Bash シェルを使用するようにシステムに指示します。

盤面のサイズをユーザーに入力させる

このステップでは、ユーザーにチェス盤のサイズを入力するように求めます。

  1. 以下のコードをスクリプトに追加します。
echo -e "\e[44m[Input]\e[0m Enter the size of the chess board: "
read value

このコードは、ユーザーにチェス盤のサイズを入力するためのプロンプトを表示し、ユーザーの入力を value 変数に格納します。

チェス盤の出力

このステップでは、ネストされたループを使用してチェス盤を出力します。

  1. 以下のコードをスクリプトに追加します。
echo -e "\n\n\e[42m[OUTPUT]\e[0m REQUESTED CHESS-BOARD \e[42m[OUTPUT]\e[0m"

for ((row = 1; row <= value; row++)); do
  for ((col = 1; col <= value; col++)); do
    sumOfRowAndCol=$(($(($row + $col)) % 2))
    if [ $sumOfRowAndCol -eq 0 ]; then
      echo -e -n "\033[47m" " "
    else
      echo -e -n "\033[40m" " "
    fi
  done
  echo -ne "\033[0m" " "
  echo
done

echo -n -e "\033[0m"

このコードは、ネストされたループを使用してチェス盤の行と列を反復処理します。各セルについて、行インデックスと列インデックスの合計を計算し、この値を使用してセルが黒または白であるかを判断します。echo コマンドは、各セルに対応する色を出力し、各行の後に色をリセットするために使用されます。

スクリプトの実行

このステップでは、スクリプトを実行してチェス盤を生成します。

  1. chessBoard.sh ファイルを保存します。
  2. ターミナルを開き、スクリプトを保存したディレクトリに移動します。
  3. 以下のコマンドを実行して、スクリプトに実行権限を付与します。
chmod +x chessBoard.sh
  1. 以下のコマンドを実行して、スクリプトを実行します。
./chessBoard.sh

スクリプトはチェス盤のサイズを入力するように求め、その後、ターミナルにチェス盤を出力します。

おめでとうございます!Bash スクリプティングを使用してチェス盤の作成に成功しました。

まとめ

おめでとうございます!このプロジェクトを完了しました。LabEx でさらに多くの実験を練習して、スキルを向上させることができます。

✨ 解答を確認して練習✨ 解答を確認して練習✨ 解答を確認して練習✨ 解答を確認して練習