처음 쉘 스크립트로 쟌켄 게임

소개



쉘 스크립트를 처음 만진 뛰어난 엔지니어가 장켄 게임을 만들었습니다.

게임 개요


  • 장켄을 시작할지 여부를 플레이어 입력을 기다립니다
  • y (yes) 때 게임 실행. n (아니오) 또는 다른 입력이 있으면 게임이 시작되지 않습니다
  • 플레이어는 대화식 입력 값으로 무엇을 내는지 결정합니다.
  • 컴퓨터는 무작위로 무엇을 내는지 결정합니다
  • 이길 때까지 게임은 계속된다. (패배 또는 무승부로 끝나지 않음)
  • 컴퓨터를 이길 때까지 게임 수를 표시합니다.

  • 게임 이미지





    코드


    #!/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
    

    결론



    프로그래밍에 아직 익숙하지 않은 것과 처음으로 쉘 스크립트를 쓴 적도 없지 않는 점도 있을까 생각합니다.
    다목적으로 볼 수 있으면 다행입니다. .

    좋은 웹페이지 즐겨찾기