처음 쉘 스크립트로 쟌켄 게임
소개
쉘 스크립트를 처음 만진 뛰어난 엔지니어가 장켄 게임을 만들었습니다.
게임 개요
게임 이미지
코드
#!/bin/bash
echo " >>> ジャンケンゲームを始めますか?"
echo ">>> y or n"
echo -n ">>>"
read val
### 定義
count_game=0
play_game() {
arr=( "グー" "チョキ" "パー" )
### player入力
echo ">>> 選択して下さい"
echo ">>> 0:グー 1:チョキ 2:パー"
echo -n ">>>"
read val
### 入力チェック
if [[ ${#val} == 1 && $(echo $val | grep [0-2]) ]]
then
### 配列から要素を取得
play_act=${arr[$val]}
else
echo " 0 から 1 から 2 を入力してください!"
exit 1
fi
### 0〜2の乱数を取得
while true
do
num=$((RANDOM % 3))
if (( 0 <= num && num <= 2))
then
break
fi
done
### 配列から要素を取得
comp_act=${arr[$num]}
### 判定
if [[ "$play_act" == "$comp_act" ]]
then
result="draw"
elif [[ "$play_act" == "グー" && "$comp_act" == "チョキ" ]]
then
result="play"
elif [[ "$play_act" == "チョキ" && "$comp_act" == "パー" ]]
then
result="play"
elif [[ "$play_act" == "パー" && "$comp_act" == "グー" ]]
then
result="play"
elif [[ "$comp_act" == "グー" && "$play_act" == "チョキ" ]]
then
result="comp"
elif [[ "$comp_act" == "チョキ" && "$play_act" == "パー" ]]
then
result="comp"
elif [[ "$comp_act" == "パー" && "$play_act" == "グー" ]]
then
result="comp"
fi
### 表示
echo "--- 自分 => [$play_act]"
echo "--- 相手 => [$comp_act]"
count_game=`expr $count_game + 1 `
### 判定
case "$result" in
"play")
echo "勝ちです"
onemore=0
;;
"comp")
echo "負けです"
onemore=1
;;
"draw")
echo "引き分けです"
onemore=1
;;
### 負けた場合、再度呼び出し
if [ "$onemore" == 1 ]
then
echo "勝つまで続けましょう!"
play_game
else
echo "おつかれさま!${count_game}戦目での勝利です!"
fi
}
if [[ ${#val} == 1 && ${val} == y ]]
then
play_game
else
echo "やらないんですね。はい。。"
fi
결론
프로그래밍에 아직 익숙하지 않은 것과 처음으로 쉘 스크립트를 쓴 적도 없지 않는 점도 있을까 생각합니다.
다목적으로 볼 수 있으면 다행입니다. .
Reference
이 문제에 관하여(처음 쉘 스크립트로 쟌켄 게임), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/tatsuya_1995/items/66b68f37af06ff7a2dcf
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(처음 쉘 스크립트로 쟌켄 게임), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tatsuya_1995/items/66b68f37af06ff7a2dcf텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)