BASH 쉘 프로그래밍으로 인공지능 '가위, 바위, 보' 게임을 만들어 보자.


리눅스에서 bash는 윈도우와 비교한다면 autobat 과 비슷하다고 볼수 있다 라는 것은... 훼이크고

그렇다고 말하는 사람들이 있지만 그것과는 사실 게임이 되지 않는다.


즉 bash 가 더욱 강력하고 하나의 소프트웨어를 만들 정도로 어마어마 하다 이거지~


bash는 쉘스크립트로 불리움으로써 유닉스 체계를 전부 응용하여 다룰수 있는 전역 프로그래밍 이라고 말할수 있다.


원래는 그낭 sh 로 불리우지만 기존의 sh에서 여러 기능이 업그레이드 되면서 bash 가 탄생한 것이다.

뿐만 아니라 bash가 이전 sh를 기반으로 하지만 유닉스 시스템 체계에서 이 둘은 개별적으로 존재 한다.


또 bash의 스크립트 방식으로 프로그래밍을 짰을 경우 { #!/bin/sh } 모듈을 로드해서 실행 할 경우 정상적으로 동작 하지 않을 수 있다.

그렇기에 현재로써는 주로 개발자들은 bash { #!/bin/bash }를 채택해서 사용 하는 경우가 일반적이다.


자 그렇다면 bash shell script programming을 이용해서 심플한 인공지능 형태의 '가위, 바위, 보' 게임을 만들어 보자.

여기서 중점으로 다뤄야하는 소스 형태는 크게 다섯 가지로 분류 된다.


첫째, 변수 지정


pn=0
yn=0


∴ 위는 승리 횟수 카운트 저장을 위한 숫자 0부터 시작하는 기본적은 변수 적용이다.


둘째, 함수 지정

rpsai() {

if [ $pc = 1 ]; then
    echo "
저는 가위를 냈습니다."
    if [ $rps = 1 ]; then
        echo "
        우린 비겼습니다."
        echo "
당신의 점수는 $yn 저의 점수는 $pn 입니다."
    fi
fi

}  


∴ rpsai 란 이름으로 인공지능 설정을 위한 if문을 응용한 전체 함수를 지정한다.


셋째, if문

if [ $rps = 1 ]; then
        echo "
당신은 1 (가위)를 내셨습니다."

# 지정한 rpsai 함수를 불러온다.

        rpsai       
fi


∴ 사용자 키 입력시 발생하는 스크립트를 처리하는 if 문 설계


넷째, read문

# 사용자의 입력을 받아 들이는 read 문 변수를 지정한다.

read -n 1 -p "nput key [1(가위), 2(바위), 3(보), 0(종료)]" rps


∴ rps란 이름으로 변수를 만들어 사용자 입력을 연동 (저장) 시킨다.

사실 read문은 기존 스크립트가 아닌 유닉스 기본 프로그램 중 하나고 콘솔의 명령 체계를 이용하는 것이다.


다섯째, while문

while [ : ]; do

script

done


∴ while문은 계속해서 반복수행하는 스크립트를 구성할수 있다.


실행을 위한 전체 소스코드

Source_File name : rps

[Download]

Type : Bash

클립보드로 복사 → (본문 클릭)

무제


코딩을 완료 하고 'rps'로 저장하였으면 터미널을 열고 본격적으로 실행을 위한 준비를 한다.

-- 터미널 텍스트 박스 (Terminal text box) --

<Drag와 복사가 가능합니다.>

//  실행이 가능하겠끔 파일의 속성을 변환 시킨다.


root@test:~$ chmod +x rps


//  이제 실행을 해본다.


root@test:~$ ./rps

This program is 'Rock Paper Scissors game' by type simple AI.
How to play game?
    You need select 1(가위), 2(바위), 3(보), 0(exit)

Enter or any key to let's start!'

-> Enter키나 아무키를 눌러 게임을 시작하자.


Ok. let's start.'

Input key [1(가위), 2(바위), 3(보), 0(종료)]



위와 같이 게임이 진행 된다.



소스 다운로드 :


github : https://github.com/cosmosproject15/rps_game

-- 터미널 텍스트 박스 (Terminal text box) --

<Drag와 복사가 가능합니다.>

// git 명령으로 소스를 다운받는다.


root@test:~$ git clone https://github.com/cosmosproject15/rps_game


// 다운 받은 폴더로 진입한다.


root@test:~$ cd rps_game


// 실행한다.


root@test:~/rps_game$ ./rps

This program is 'Rock Paper Scissors game' by type simple AI.
How to play game?
    You need select 1(가위), 2(바위), 3(보), 0(exit)

Enter or any key to let's start!'



도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다.

+ Recent posts