모바일 오유 바로가기
http://m.todayhumor.co.kr
분류 게시판
베스트
  • 베스트오브베스트
  • 베스트
  • 오늘의베스트
  • 유머
  • 유머자료
  • 유머글
  • 이야기
  • 자유
  • 고민
  • 연애
  • 결혼생활
  • 좋은글
  • 자랑
  • 공포
  • 멘붕
  • 사이다
  • 군대
  • 밀리터리
  • 미스터리
  • 술한잔
  • 오늘있잖아요
  • 투표인증
  • 새해
  • 이슈
  • 시사
  • 시사아카이브
  • 사회면
  • 사건사고
  • 생활
  • 패션
  • 패션착샷
  • 아동패션착샷
  • 뷰티
  • 인테리어
  • DIY
  • 요리
  • 커피&차
  • 육아
  • 법률
  • 동물
  • 지식
  • 취업정보
  • 식물
  • 다이어트
  • 의료
  • 영어
  • 맛집
  • 추천사이트
  • 해외직구
  • 취미
  • 사진
  • 사진강좌
  • 카메라
  • 만화
  • 애니메이션
  • 포니
  • 자전거
  • 자동차
  • 여행
  • 바이크
  • 민물낚시
  • 바다낚시
  • 장난감
  • 그림판
  • 학술
  • 경제
  • 역사
  • 예술
  • 과학
  • 철학
  • 심리학
  • 방송연예
  • 연예
  • 음악
  • 음악찾기
  • 악기
  • 음향기기
  • 영화
  • 다큐멘터리
  • 국내드라마
  • 해외드라마
  • 예능
  • 팟케스트
  • 방송프로그램
  • 무한도전
  • 더지니어스
  • 개그콘서트
  • 런닝맨
  • 나가수
  • 디지털
  • 컴퓨터
  • 프로그래머
  • IT
  • 안티바이러스
  • 애플
  • 안드로이드
  • 스마트폰
  • 윈도우폰
  • 심비안
  • 스포츠
  • 스포츠
  • 축구
  • 야구
  • 농구
  • 바둑
  • 야구팀
  • 삼성
  • 두산
  • NC
  • 넥센
  • 한화
  • SK
  • 기아
  • 롯데
  • LG
  • KT
  • 메이저리그
  • 일본프로야구리그
  • 게임1
  • 플래시게임
  • 게임토론방
  • 엑스박스
  • 플레이스테이션
  • 닌텐도
  • 모바일게임
  • 게임2
  • 던전앤파이터
  • 마비노기
  • 마비노기영웅전
  • 하스스톤
  • 히어로즈오브더스톰
  • gta5
  • 디아블로
  • 디아블로2
  • 피파온라인2
  • 피파온라인3
  • 워크래프트
  • 월드오브워크래프트
  • 밀리언아서
  • 월드오브탱크
  • 블레이드앤소울
  • 검은사막
  • 스타크래프트
  • 스타크래프트2
  • 베틀필드3
  • 마인크래프트
  • 데이즈
  • 문명
  • 서든어택
  • 테라
  • 아이온
  • 심시티5
  • 프리스타일풋볼
  • 스페셜포스
  • 사이퍼즈
  • 도타2
  • 메이플스토리1
  • 메이플스토리2
  • 오버워치
  • 오버워치그룹모집
  • 포켓몬고
  • 파이널판타지14
  • 배틀그라운드
  • 기타
  • 종교
  • 단어장
  • 자료창고
  • 운영
  • 공지사항
  • 오유운영
  • 게시판신청
  • 보류
  • 임시게시판
  • 메르스
  • 세월호
  • 원전사고
  • 2016리오올림픽
  • 2018평창올림픽
  • 코로나19
  • 2020도쿄올림픽
  • 게시판찾기
  • 오유인페이지
    개인차단 상태
    KOTHAICHI님의
    개인페이지입니다
    가입 : 11-06-06
    방문 : 498회
    닉네임변경 이력
    회원차단
    회원차단해제
    게시물ID : programmer_9282
    작성자 : KOTHAICHI
    추천 : 0
    조회수 : 690
    IP : 143.167.***.138
    댓글 : 9개
    등록시간 : 2015/04/12 02:00:27
    http://todayhumor.com/?programmer_9282 모바일
    본삭금)전에 자바로 체스게임 만드는 거에 대해 질문한 사람입니다
    옵션
    • 본인삭제금지
    <div>안녕하세요. 이제 막 자바에 대해 알아가는 대학생 1학년입니다.</div> <div><br></div>저번 질문글에 답변이 많은 도움이 되었습니다. 덕분에 막힘없이 코드를 쓰다가, 테스트를 하는 도중에 문제가 발생했는데, 도움을 주시면 감사하겠습니다. <div><br></div> <div>제가 가진 문제는 체스의 퀸의 움직임을 짜는 코드에 대한 것입니다.</div> <div><br></div> <div>스택 오버플로우나, 구글에 검색하여 도움이 될 만한 글들을 참조하였으나 (예를 들어 <a target="_blank" href="http://codereview.stackexchange.com/questions/53875/generating-possible-chess-moves">http://codereview.stackexchange.com/questions/53875/generating-possible-chess-moves</a> )</div> <div><br></div> <div>제가 쓴 코드와는 다른 방식으로 짜여져 있는 경우가 많아 큰 도움이 되질 않았습니다.</div> <div><br></div> <div>물론 해당 글들의 코드와 비슷하게 다시 짤 수도 있었지만, 제가 스스로 코드를 쓰기 위해 들인 시간과 노력이 아까워 이렇게 질문합니다.</div> <div><br></div> <div>우선은 해당 코드입니다.</div> <div><br></div> <div> <div class="colorscripter-code" style="color:#010101;overflow:auto;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace;"> <table class="colorscripter-code-table" style="margin:0px;padding:0px;border:none;background-color:#fafafa;" cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:6px;border-right-width:2px;border-right-style:solid;border-right-color:#e5e5e5;"> <div style="margin:0px;padding:0px;text-align:right;color:#666666;line-height:120%;"> <div>1</div> <div>2</div> <div>3</div> <div>4</div> <div>5</div> <div>6</div> <div>7</div> <div>8</div> <div>9</div> <div>10</div> <div>11</div> <div>12</div> <div>13</div> <div>14</div> <div>15</div> <div>16</div> <div>17</div> <div>18</div> <div>19</div> <div>20</div> <div>21</div> <div>22</div> <div>23</div> <div>24</div> <div>25</div> <div>26</div> <div>27</div> <div>28</div> <div>29</div> <div>30</div> <div>31</div> <div>32</div> <div>33</div> <div>34</div> <div>35</div> <div>36</div> <div>37</div> <div>38</div> <div>39</div> <div>40</div> <div>41</div> <div>42</div> <div>43</div> <div>44</div> <div>45</div> <div>46</div> <div>47</div> <div>48</div> <div>49</div> <div>50</div> <div>51</div> <div>52</div> <div>53</div> <div>54</div> <div>55</div> <div>56</div> <div>57</div> <div>58</div> <div>59</div> <div>60</div> <div>61</div> <div>62</div> <div>63</div> <div>64</div> <div>65</div> <div>66</div> <div>67</div> <div>68</div> <div>69</div> <div>70</div> <div>71</div> <div>72</div> <div>73</div></div></td> <td style="padding:6px 0px;"> <div style="margin:0px;padding:0px;color:#010101;"> <div style="padding:0px 6px;white-space:pre;line-height:120%;"><span style="line-height:120%;font-size:9pt;">import java.util.ArrayList;</span></div> <div style="padding:0px 6px;white-space:pre;line-height:120%;"> </div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">public class Queen extends Piece{</div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">    </div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">  public Queen(int ix, int iy, int c, Board b) {</div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">      super(PieceCode.QUEEN, ix, iy, c, b);</div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">    }</div> <div style="padding:0px 6px;white-space:pre;line-height:120%;"> </div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">    // method implements abstract method in Piece class</div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">  public ArrayList<Move> availableMoves() {</div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">    return queen();</div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">  }</div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">  </div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">      // method to return Vector of legal moves for a queen</div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">      private ArrayList<Move> queen() {</div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">    int x = getX();</div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">    int y = getY();</div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">      </div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">   </div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">    // otherwise create a new vector to store legal moves</div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">    ArrayList<Move> v = new ArrayList<Move>();</div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">      </div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">    // set up m to refer to a Move object  </div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">    Move m = null;</div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">     </div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">    </div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">    // legal moves to go from x,y to unoccupied places</div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">   </div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">    int[][] avaiableMoves = {</div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">            {x+1,y}, {x+2,y}, {x+3,y}, {x+4,y}, {x+5,y}, {x+6,y}, {x+7,y}, //Positive x axis</div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">            {x-1,y}, {x-2,y}, {x-3,y}, {x-4,y}, {x-5,y}, {x-6,y}, {x-7,y}, //Negative x axis</div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">            </div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">            {x,y+1}, {x,y+2}, {x,y+3}, {x,y+4}, {x,y+5}, {x,y+6}, {x,y+7}, //Positive y axis</div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">            {x,y-1}, {x,y-2}, {x,y-3}, {x,y-4}, {x,y-5}, {x,y-6}, {x,y-7}, //Negative y axis</div> <div style="padding:0px 6px;white-space:pre;line-height:120%;"> </div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">            {x+1,y+1}, {x+2,y+2}, {x+3,y+3}, {x+4,y+4}, {x+5,y+5}, {x+6,y+6}, {x+7,y+7}, //Positive right diagonal</div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">            {x-1,y-1}, {x-2,y-2}, {x-3,y-3}, {x-4,y-4}, {x-5,y-5}, {x-6,y-6}, {x-7,y-7}, //Negative left diagonal</div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">            </div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">            {x-1,y+1}, {x-2,y+2}, {x-3,y+3}, {x-4,y+4}, {x-5,y+5}, {x-6,y+6}, {x-7,y+7}, //Positive left diagonal</div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">            {x+1,y-1}, {x+2,y-2}, {x+3,y-3}, {x+4,y-4}, {x+5,y-5}, {x+6,y-6}, {x+7,y-7}, //Negative right diagonal</div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">            </div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">    };</div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">    </div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">      </div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">    //using the array of moves, find all the possible moves in the array that piece can from its position</div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">    </div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">    for (int i = 0, j = avaiableMoves.length; i<j; i++){</div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">        int posX = avaiableMoves[i][0];</div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">        int posY = avaiableMoves[i][1];</div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">         </div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">    //using for loop to check whether any of available moves in the list are occupied by other pieces or not when it's not out of range         </div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">        if (!getBoard().outOfRange(posX,posY) && getBoard().occupied(posX,posY) && (getBoard().getPiece(posX,posY).getColour() !=this.getColour())) {</div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">            v.add(new Move(this, x,y,posX,posY,true));</div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">              }</div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">  //if occupied, then return false</div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">        else if (!getBoard().outOfRange(posX,posY) && !getBoard().occupied(posX,posY)) {</div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">          v.add(new Move(this, x,y,posX,posY,false));</div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">        }</div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">  }</div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">    </div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">    if (v.isEmpty()) return null;</div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">    return v;</div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">}</div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">  </div> <div style="padding:0px 6px;white-space:pre;line-height:120%;">}</div> <div style="padding:0px 6px;white-space:pre;line-height:120%;"> </div> <div style="padding:0px 6px;white-space:pre;line-height:120%;"> </div> <div style="padding:0px 6px;white-space:pre;line-height:120%;"> </div> <div style="padding:0px 6px;white-space:pre;line-height:120%;"> </div> <div style="padding:0px 6px;white-space:pre;line-height:120%;"> </div> <div style="padding:0px 6px;white-space:pre;line-height:120%;"> </div></div> <div style="text-align:right;margin-top:-13px;margin-right:5px;font-size:9px;font-style:italic;"><a target="_blank" href="http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5;text-decoration:none;">Colored by Color Scripter</a></div></td> <td style="vertical-align:bottom;padding:0px 2px 4px 0px;"><a target="_blank" href="http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:#FFFFFF;"><span style="font-size:9px;padding:1px;background-color:#e5e5e5;">cs</span></a></td></tr></tbody></table><br></div></div> <div class="colorscripter-code" style="color:#010101;overflow:auto;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace;"><br></div> <div class="colorscripter-code" style="color:#010101;overflow:auto;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace;">맨 처음에 계획한 것은 퀸의 모든 가능한 움직임들을 availableMove 라는 array에 넣어, for 루프와 if 조건문을 통해 해당 칸이 퀸이 움직일 수 있는 칸인지 아닌지를 확인하게 하였습니다.</div> <div class="colorscripter-code" style="color:#010101;overflow:auto;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace;"><br></div> <div class="colorscripter-code" style="color:#010101;overflow:auto;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace;">그런데 막상 테스트를 돌려보니 만약 퀸의 x축 이동경로에 다른 말이 있다면 그곳에서 멈춰야 하는데, 그 이후로 빈공간이있다면 다른 말이 있는 칸을 뛰어넘고 움직이는 게 가능했습니다. (마치 장기의 포와 같이요)</div> <div class="colorscripter-code" style="color:#010101;overflow:auto;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace;"><br></div> <div class="colorscripter-code" style="color:#010101;overflow:auto;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace;">제가 원하는 데로 퀸을 움직이게 할려면, 어떤 부분을 수정해야 하는지, 혹은 도움이 될 만한 링크가 있으면 알려주시길 바랍니다.</div> <div class="colorscripter-code" style="color:#010101;overflow:auto;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace;"><br></div> <div class="colorscripter-code" style="color:#010101;overflow:auto;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace;">또한 제가 미처 얄려드리지 못한 부분은 댓글을 다시면 수시로 확인하여 업데이트 하겠습니다. (외국이라 시차가 있습니다)</div> <div class="colorscripter-code" style="color:#010101;overflow:auto;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace;"><br></div> <div class="colorscripter-code" style="color:#010101;overflow:auto;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace;">감사합니다.</div>

    이 게시물을 추천한 분들의 목록입니다.
    푸르딩딩:추천수 3이상 댓글은 배경색이 바뀝니다.
    (단,비공감수가 추천수의 1/3 초과시 해당없음)

    죄송합니다. 댓글 작성은 회원만 가능합니다.

    번호 제 목 이름 날짜 조회 추천
    96
    본삭금)질문및추천) 노트북 비교 및 추천 부탁드립니다. [2] 본인삭제금지 KOTHAICHI 18/09/06 15:20 56 1
    95
    본삭금) 몬헌월드 돌릴 게이밍 노트북 추천 부탁합니다. [4] 본인삭제금지 KOTHAICHI 18/09/05 11:06 56 1
    94
    앱스토어에 보면 게임 소개할 때 있는 창작글베오베금지본인삭제금지외부펌금지 KOTHAICHI 18/07/06 19:42 139 0
    93
    질문)이 견적에 이 가격이 맞나요? [2] 창작글본인삭제금지 KOTHAICHI 18/04/11 12:51 81 1
    92
    Haskell 하시는분 계시나요? [3] 창작글본인삭제금지외부펌금지 KOTHAICHI 18/04/11 11:27 66 0
    91
    영국에서 자취하면서 배우고 느낀건 [19] 창작글본인삭제금지외부펌금지 KOTHAICHI 18/04/11 10:16 389 37
    90
    영국에서 살고 있습니다. 부품구매 문의합니다 [5] 본인삭제금지 KOTHAICHI 18/04/07 03:36 154 1
    89
    오랜만에 해볼까하는데 짧게 즐기기에 어떤가요 [8] 본인삭제금지 KOTHAICHI 18/04/07 03:04 117 2
    88
    6월에 플스슬림을 사려는데 블본 vs 닼솔3 [5] 본인삭제금지 KOTHAICHI 17/03/26 09:22 103 0
    87
    무과금인데 첫 전설 먹었어요! [3] KOTHAICHI 15/08/28 23:54 95 0
    85
    이번 한판 갓페가 한정신 카니발이었던가요? [1] KOTHAICHI 15/07/31 15:47 39 0
    84
    오유 채널에서 같이 플레이 하고 싶지만... [1] KOTHAICHI 15/07/20 07:57 80 0
    83
    퍼드] 일판 진로상담 부탁합니다 [5] KOTHAICHI 15/07/07 19:32 21 0
    82
    하스스톤 시작해 봤습니다 [4] 베스트금지본인삭제금지 KOTHAICHI 15/07/06 11:50 56 0
    81
    퍼드) 멍청한 짓을 한것 같습니다;;; [2] KOTHAICHI 15/06/21 01:13 27 0
    80
    퍼드) 상담) 데빌러시 각 좀 봐주세요 [6] 본인삭제금지 KOTHAICHI 15/06/06 10:14 23 0
    79
    퍼드) 일판 부계정 키우기 시작했습니다. + 계정,선물,절친 나눔(마감) [21] KOTHAICHI 15/06/02 03:04 31 3
    78
    슬슬 배치고사를 준비하고 있습니다 [3] KOTHAICHI 15/05/20 06:41 81 0
    77
    본삭금) 과제X) STRIPS planning의 한계에 대해 아세요? KOTHAICHI 15/05/11 12:30 24 0
    76
    퍼드) 헤라 챌린지 졸업했습니다 [3] KOTHAICHI 15/04/22 02:05 43 2
    75
    [주의] 랜섬웨어가 유포되고 있다고 합니다 [1] KOTHAICHI 15/04/21 16:34 53 0
    74
    와 코리안갓;;; LCS EU 프나틱 우승 [4] KOTHAICHI 15/04/20 04:42 372 0
    73
    다크소울1 오랜만에 해볼려니 실행이 안되네요 [5] KOTHAICHI 15/04/16 20:19 63 0
    본삭금)전에 자바로 체스게임 만드는 거에 대해 질문한 사람입니다 [9] KOTHAICHI 15/04/12 02:00 42 0
    71
    ㅂㅅㄱ) 프로그래밍용도의 태블릿 추천해주세요 [7] KOTHAICHI 15/04/04 06:50 78 0
    70
    ㅂㅅㄱ) 자바로 체스게임을 만들고 있는데 조언 부탁합니다 [2] KOTHAICHI 15/03/31 01:40 45 0
    69
    알고리즘(점근 표기법) 질문 있습니다 (본삭금) [7] KOTHAICHI 15/02/26 20:33 39 1
    68
    퍼드) 본삭금) 현 몬박 상황과 가능한 파티들 [2] KOTHAICHI 14/12/28 23:26 33 0
    67
    퍼드) 선물 맞교환 하실 분 구해요 [5] KOTHAICHI 14/12/23 04:04 26 0
    [1] [2] [3] [4]
    단축키 운영진에게 바란다(삭제요청/제안) 운영게 게시판신청 자료창고 보류 개인정보취급방침 청소년보호정책 모바일홈