SlideShare a Scribd company logo
1 of 21
MATLAB GUI 프로젝트
201801757 이태훈
201801740 나영조
개요
계획
Guide
Callback Function 코딩
결과
슬라이더로 좌표축을 지정해 흑돌과 백돌을 놓아 이기는 경
우의 수를 지정해서 판정하는 오목게임
계획
순서
계획
축하합니다!
백돌/흑돌의 승!
다시 하시겠습니까?
예 아니요
요약
계획
GUIDE로 좌표로 지정할 수 있는 오목판을 만듦
X축과 y축에 대응하는 슬라이더로 좌표를 지정해 오목을 두게 함
누가 이겼는지 판정해서 새 게임을 할 수 있거나 종료할 수 있게 함
GUIDE
좌표축/BackGroundcolor 변경
Push Button
Msgbox
GUIDE
CallBackFunction 코딩
1. 오목판 만들기
X = -10 ~ 10
Y = -10 ~ 10
크기의 그래프와 그리드를 만듦
오목의 승패를 판별할 수 있게
19 X 19 크기의 영행렬도 만들어놓음
(흑돌: 행렬의 값이 1이 됨
백돌: 행렬의 값이 2가 됨)
CallBackFunction 코딩
2. 오목돌 만들기
Linspace 와 sin, cos함수, patch를 이
용해 오목돌을 만듦
CallBackFunction 코딩
2. 오목돌 만들기
Linspace 와 sin, cos함수, patch를 이
용해 오목돌을 만듦
3. 오목돌 두기
마우스 포인터의 좌표를 읽어 그 좌
표의 소수 첫째 자리를 반올림한 좌표
에 오목돌을 둘 수 있게 함
CallBackFunction 코딩
판별
크게 4가지 종류로 나눠서 판별
- 가로줄
- 세로줄
- 대각선
- 역방향 대각선
CallBackFunction 코딩
3. 모양 판별하기
a라는 19X19의 영행렬에서 y좌표가
같고 x좌표가 1씩 4만큼
증가시키는 for 문에 넣어서 판별함
그리고 5개 이상의 돌이 이어지게 하
지 못하게 5가 증가하는 것은 때는 제
외시킴 ( 이 이후의 판별도 마찬가지)
CallBackFunction 코딩
4. 모양 판별하기
a라는 19X19의 영행렬에서 x좌표가
같고 y좌표가 1씩 4만큼
증가시키는 for 문에 넣어서 판별함
CallBackFunction 코딩
5. 모양 판별하기
a라는 19X19의 영행렬에서 x좌표가 1
씩 4만큼, y좌표도 1씩 4만큼
증가시키는 for 문에 넣어서 판별함
CallBackFunction 코딩
6. 모양 판별하기
a라는 19X19의 영행렬에서 x좌표는 1
씩 4만큼 줄어들고 y좌표는 1씩 4만큼
증가시키는 for 문에 넣어서 판별함
CallBackFunction 코딩
7. 판별 후 msgbox 띄우기
판별 후 승자가 나오면 ‘흑돌 Win’을 띄
워주고, set을 이용해 폰트사이즈와
msgbox가 나올 위치를 수정해줌
CallBackFunction 코딩
백돌도 흑돌과 마찬가지로 코딩하면 코딩 끝
결과
결과
결과
처음에 생각했던 슬라이드롤 좌표를 지정해 바둑돌을 놓는 방법보다 더 복잡한 마
우스 포인터로 바둑돌을 둘 수 있게 코딩을 할 수 있었지만 처음에 어느 정도 생각
했던 쌍삼이나 무르기 등을 추가하지 못한 것이 아쉬웠다
감사합니다

More Related Content

What's hot

NDC 2019 - 이세계 시나리오 라이터를 위한 스토리텔링
NDC 2019 - 이세계 시나리오 라이터를 위한 스토리텔링NDC 2019 - 이세계 시나리오 라이터를 위한 스토리텔링
NDC 2019 - 이세계 시나리오 라이터를 위한 스토리텔링현석 오
 
Unity遊戲程式設計 - 2D Game Kit遊戲設計
Unity遊戲程式設計 - 2D Game Kit遊戲設計Unity遊戲程式設計 - 2D Game Kit遊戲設計
Unity遊戲程式設計 - 2D Game Kit遊戲設計吳錫修 (ShyiShiou Wu)
 
リアルタイムなゲームの開発でコンテナを使ってみたら簡単便利で激安だったのでオススメしたい
リアルタイムなゲームの開発でコンテナを使ってみたら簡単便利で激安だったのでオススメしたいリアルタイムなゲームの開発でコンテナを使ってみたら簡単便利で激安だったのでオススメしたい
リアルタイムなゲームの開発でコンテナを使ってみたら簡単便利で激安だったのでオススメしたいYutoNishine
 
[IGC2018] 인플루전 곽노진 - 인디게임이 망할 수 밖에 없는 현실과 이유
 [IGC2018] 인플루전 곽노진 -  인디게임이 망할 수 밖에 없는 현실과 이유 [IGC2018] 인플루전 곽노진 -  인디게임이 망할 수 밖에 없는 현실과 이유
[IGC2018] 인플루전 곽노진 - 인디게임이 망할 수 밖에 없는 현실과 이유강 민우
 
Steamで同人ゲームをリリースする ~パブリッシャーになって検証してみた~
Steamで同人ゲームをリリースする ~パブリッシャーになって検証してみた~Steamで同人ゲームをリリースする ~パブリッシャーになって検証してみた~
Steamで同人ゲームをリリースする ~パブリッシャーになって検証してみた~Piro Shiki
 
6 клас 18 урок. Створення текстового документа. Введення та редагування тексту.
6 клас 18 урок. Створення текстового документа. Введення та редагування тексту.6 клас 18 урок. Створення текстового документа. Введення та редагування тексту.
6 клас 18 урок. Створення текстового документа. Введення та редагування тексту.StAlKeRoV
 
MusicEngine for Unity/ADX2を使った簡単音楽同期ゲーム制作
MusicEngine for Unity/ADX2を使った簡単音楽同期ゲーム制作MusicEngine for Unity/ADX2を使った簡単音楽同期ゲーム制作
MusicEngine for Unity/ADX2を使った簡単音楽同期ゲーム制作Sho Iwamoto
 
サーバー知識不要!のゲームサーバー "Azure PlayFab" で長期運営タイトルを作ろう
サーバー知識不要!のゲームサーバー "Azure PlayFab" で長期運営タイトルを作ろうサーバー知識不要!のゲームサーバー "Azure PlayFab" で長期運営タイトルを作ろう
サーバー知識不要!のゲームサーバー "Azure PlayFab" で長期運営タイトルを作ろうDaisuke Masubuchi
 
「Adx2 LE」Unity活用編 初~中級編
「Adx2 LE」Unity活用編 初~中級編「Adx2 LE」Unity活用編 初~中級編
「Adx2 LE」Unity活用編 初~中級編Takaaki Ichijo
 
6 клас 19 урок. Фрагменти тексту та операції над ними
6 клас 19 урок. Фрагменти тексту та операції над ними6 клас 19 урок. Фрагменти тексту та операції над ними
6 клас 19 урок. Фрагменти тексту та операції над нимиStAlKeRoV
 

What's hot (13)

NDC 2019 - 이세계 시나리오 라이터를 위한 스토리텔링
NDC 2019 - 이세계 시나리오 라이터를 위한 스토리텔링NDC 2019 - 이세계 시나리오 라이터를 위한 스토리텔링
NDC 2019 - 이세계 시나리오 라이터를 위한 스토리텔링
 
Unity遊戲程式設計 - 2D Game Kit遊戲設計
Unity遊戲程式設計 - 2D Game Kit遊戲設計Unity遊戲程式設計 - 2D Game Kit遊戲設計
Unity遊戲程式設計 - 2D Game Kit遊戲設計
 
リアルタイムなゲームの開発でコンテナを使ってみたら簡単便利で激安だったのでオススメしたい
リアルタイムなゲームの開発でコンテナを使ってみたら簡単便利で激安だったのでオススメしたいリアルタイムなゲームの開発でコンテナを使ってみたら簡単便利で激安だったのでオススメしたい
リアルタイムなゲームの開発でコンテナを使ってみたら簡単便利で激安だったのでオススメしたい
 
[IGC2018] 인플루전 곽노진 - 인디게임이 망할 수 밖에 없는 현실과 이유
 [IGC2018] 인플루전 곽노진 -  인디게임이 망할 수 밖에 없는 현실과 이유 [IGC2018] 인플루전 곽노진 -  인디게임이 망할 수 밖에 없는 현실과 이유
[IGC2018] 인플루전 곽노진 - 인디게임이 망할 수 밖에 없는 현실과 이유
 
Steamで同人ゲームをリリースする ~パブリッシャーになって検証してみた~
Steamで同人ゲームをリリースする ~パブリッシャーになって検証してみた~Steamで同人ゲームをリリースする ~パブリッシャーになって検証してみた~
Steamで同人ゲームをリリースする ~パブリッシャーになって検証してみた~
 
6 клас 18 урок. Створення текстового документа. Введення та редагування тексту.
6 клас 18 урок. Створення текстового документа. Введення та редагування тексту.6 клас 18 урок. Створення текстового документа. Введення та редагування тексту.
6 клас 18 урок. Створення текстового документа. Введення та редагування тексту.
 
MusicEngine for Unity/ADX2を使った簡単音楽同期ゲーム制作
MusicEngine for Unity/ADX2を使った簡単音楽同期ゲーム制作MusicEngine for Unity/ADX2を使った簡単音楽同期ゲーム制作
MusicEngine for Unity/ADX2を使った簡単音楽同期ゲーム制作
 
Unityで音を制す
Unityで音を制すUnityで音を制す
Unityで音を制す
 
サーバー知識不要!のゲームサーバー "Azure PlayFab" で長期運営タイトルを作ろう
サーバー知識不要!のゲームサーバー "Azure PlayFab" で長期運営タイトルを作ろうサーバー知識不要!のゲームサーバー "Azure PlayFab" で長期運営タイトルを作ろう
サーバー知識不要!のゲームサーバー "Azure PlayFab" で長期運営タイトルを作ろう
 
「Adx2 LE」Unity活用編 初~中級編
「Adx2 LE」Unity活用編 初~中級編「Adx2 LE」Unity活用編 初~中級編
「Adx2 LE」Unity活用編 初~中級編
 
Machinationの紹介
Machinationの紹介Machinationの紹介
Machinationの紹介
 
Niagara In UE4
Niagara In UE4Niagara In UE4
Niagara In UE4
 
6 клас 19 урок. Фрагменти тексту та операції над ними
6 клас 19 урок. Фрагменти тексту та операції над ними6 клас 19 урок. Фрагменти тексту та операції над ними
6 клас 19 урок. Фрагменти тексту та операції над ними
 

Matlab gui