Connect Four Java 코드에서 우승자를 어떻게 확인할 수 있습니까?

James.Fung

커넥트 포에서 승리 방법을 찾는 방법을 이해하지 못합니다. 어떻게 생각해야하는지, 커넥트 포에서 우승자를 찾을 수있는 방법을 알려주세요. for 루프를 사용하여 찾아야합니다. 방법을 어떻게 사용해야합니까? 승자를 찾으려면?

import java.util.Scanner;
public class Connect4{
    public static  int[][] arrayboard(){
        int [][] board = new int[6][7];
        for (int i=0;i<board.length;i++){
            for(int j=0;j<board[i].length;j++){
              }
            }
          return board;     
         }
    public static void printboard(int[][] board){
            int k=5;
            for (int i = 0; i < board.length; i++) {
                for (int j = 0; j < board[i].length; j++) {
                System.out.print(board[i][j] + " ");
              }
             System.out.print("|"+k );
             k--;
             System.out.println();
          }
            System.out.println("--------------+");
            System.out.println("0 1 2 3 4 5 6");
       }
     public static void player1(int[][] board){
        System.out.print("player 1 type a column(0-6) or 9 to quit current game:");
        Scanner input = new Scanner(System.in);
        int column=input.nextInt();
        for (int i=5;i>=0;i--){
            if(board[i][column]==0){
               board[i][column]=1;
               break;
            }
          }
       }
     public static void player2 (int[][] board){
        System.out.print("player 2 type a column(0-6) or 9 to quit current game:");
        Scanner input = new Scanner(System.in);
        int column=input.nextInt();
        for (int i=5;i>=0;i--){
            if (board[i][column]==0){
               board[i][column]=2;
               break;
           }
        }
     }
    public static void main(String[] args) {
        int [][] board=arrayboard();
           printboard(board);
        boolean loop= true;
              int count=0;
         while(loop){
            if (count % 2 == 0) 
                player1(board);
            else player2(board);
            count++;
            printboard(board);
      }
   }
}
플라잉 더치 보이

짧은 Google 하나 후에 다음 코드가 나타납니다. https://codereview.stackexchange.com/questions/100917/connect-four-game-in-java 또는 http://www.lazylab.org/152/java/connect- 4 개의 게임 코딩 퍼즐 알고리즘 -Java / 또는 2D 배열 대각선 검사가있는 Connect4 게임

그래서 찾기가 아주 쉽습니다. 동일한 작업을 수행하는이 Scala 구현도 있습니다. 그 후에 만 ​​다른 언어로 : https://github.com/Green7izard/AP-ASE/blob/master/Scala/src/Day1.scala

기본적으로 승리하는 방법에는 3 가지가 있습니다.

  1. 가로 (행). 모든 보드 [i]를 확인하여 플레이어가 연속으로 4 개를 가지고 있는지 확인하십시오. 그러나 배열의 가장자리에 유의하십시오.
  2. 세로 (열). 모든 보드 [currentRow] [i]를 확인하여 4 개의 "currentRow"가 동일한 I가 있는지 확인합니다.

마지막 옵션은 Diagonally입니다. 확인해야 할 방향이 2 개 있기 때문에 더 어렵습니다.

즉, 한 번에 완료를 확인할 수 없습니다. 그러나 다음과 같은 모든 값을 확인하는 함수를 만들 수 있습니다.

public void int GetWinner()
{
   int result = 0;
   result= CheckHorizontal();
   if(result>0) return result;
   result= CheckVertical();
   if(result>0) return result;
   result= CheckDiagonalTopLeftBotRight();
   if(result>0) return result;
   result= CheckDiagonalBotLeftTopRight();
   return result;
}

움직일 때마다 실행하고 결과가 0이 아니면 승자가됩니다! 그러나이 위업을 수행하는 더 좋은 방법이 있습니다!

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Java 코드에서 부동 소수점 레지스터 수를 어떻게 확인할 수 있습니까?

분류에서Dev

JSP의 Java 코드에서 Javascript 변수를 인수로 어떻게 사용할 수 있습니까?

분류에서Dev

내 Tic Tac Toe 게임에서 Connect Four를 추출 할 수 있습니까?

분류에서Dev

Java 코드를 어떻게 수정할 수 있습니까?

분류에서Dev

Java 코드에서 restcontroller의 일부인 메소드를 어떻게 사용할 수 있습니까?

분류에서Dev

이 코드에서 최악의 경우를 어떻게 확인할 수 있습니까?

분류에서Dev

Java에서 인코딩 URIbuilder () 메소드를 어떻게 사용할 수 있습니까?

분류에서Dev

JAVA, 어떻게 내 코드를 반복 할 수 있습니까?

분류에서Dev

Java에서 번호가 있는지 여부를 어떻게 확인할 수 있습니까?

분류에서Dev

Java Android Studio에서 월별 및 연도를 어떻게 확인할 수 있습니까?

분류에서Dev

Laravel에서 요청 사용자를 어떻게 확인할 수 있습니까?

분류에서Dev

이 삽입 정렬 코드를 Java에서 어떻게 실행할 수 있습니까?

분류에서Dev

유성에서 환경 변수를 어떻게 확인할 수 있습니까?

분류에서Dev

Xcode에서 객체 수를 어떻게 확인할 수 있습니까?

분류에서Dev

Java에서 1000 자리 숫자를 어떻게 처리 할 수 있습니까?

분류에서Dev

VBScript에서 MSI 경로를 어떻게 확인할 수 있습니까?

분류에서Dev

Ebean에서 객체의 존재를 어떻게 확인할 수 있습니까?

분류에서Dev

NSArray 내에서 빈 객체를 어떻게 확인할 수 있습니까?

분류에서Dev

정규식에서 @를 어떻게 확인할 수 있습니까?

분류에서Dev

AngularJS 템플릿에서 isObject를 어떻게 확인할 수 있습니까?

분류에서Dev

Espresso에서 TextinputLayout의 오류를 어떻게 확인할 수 있습니까?

분류에서Dev

JavascriptExecutor를 루프에서 어떻게 확인할 수 있습니까?

분류에서Dev

Windows에서 내 CPU의 온도를 어떻게 확인할 수 있습니까?

분류에서Dev

AUTOLISP에서 SHIFT를 눌렀는지 어떻게 확인할 수 있습니까?

분류에서Dev

Connect to Server의 최근 서버를 어떻게 정리할 수 있습니까?

분류에서Dev

Ubuntu에서 하드웨어 인벤토리를 어떻게 확인할 수 있습니까?

분류에서Dev

이 코드를 Java 8로 어떻게 변환 할 수 있습니까?

분류에서Dev

Pycharm에서 ipynb 코드를 어떻게 다시 포맷 할 수 있습니까?

분류에서Dev

이 코드에서 "getCharSequence"를 어떻게 사용할 수 있습니까?

Related 관련 기사

  1. 1

    Java 코드에서 부동 소수점 레지스터 수를 어떻게 확인할 수 있습니까?

  2. 2

    JSP의 Java 코드에서 Javascript 변수를 인수로 어떻게 사용할 수 있습니까?

  3. 3

    내 Tic Tac Toe 게임에서 Connect Four를 추출 할 수 있습니까?

  4. 4

    Java 코드를 어떻게 수정할 수 있습니까?

  5. 5

    Java 코드에서 restcontroller의 일부인 메소드를 어떻게 사용할 수 있습니까?

  6. 6

    이 코드에서 최악의 경우를 어떻게 확인할 수 있습니까?

  7. 7

    Java에서 인코딩 URIbuilder () 메소드를 어떻게 사용할 수 있습니까?

  8. 8

    JAVA, 어떻게 내 코드를 반복 할 수 있습니까?

  9. 9

    Java에서 번호가 있는지 여부를 어떻게 확인할 수 있습니까?

  10. 10

    Java Android Studio에서 월별 및 연도를 어떻게 확인할 수 있습니까?

  11. 11

    Laravel에서 요청 사용자를 어떻게 확인할 수 있습니까?

  12. 12

    이 삽입 정렬 코드를 Java에서 어떻게 실행할 수 있습니까?

  13. 13

    유성에서 환경 변수를 어떻게 확인할 수 있습니까?

  14. 14

    Xcode에서 객체 수를 어떻게 확인할 수 있습니까?

  15. 15

    Java에서 1000 자리 숫자를 어떻게 처리 할 수 있습니까?

  16. 16

    VBScript에서 MSI 경로를 어떻게 확인할 수 있습니까?

  17. 17

    Ebean에서 객체의 존재를 어떻게 확인할 수 있습니까?

  18. 18

    NSArray 내에서 빈 객체를 어떻게 확인할 수 있습니까?

  19. 19

    정규식에서 @를 어떻게 확인할 수 있습니까?

  20. 20

    AngularJS 템플릿에서 isObject를 어떻게 확인할 수 있습니까?

  21. 21

    Espresso에서 TextinputLayout의 오류를 어떻게 확인할 수 있습니까?

  22. 22

    JavascriptExecutor를 루프에서 어떻게 확인할 수 있습니까?

  23. 23

    Windows에서 내 CPU의 온도를 어떻게 확인할 수 있습니까?

  24. 24

    AUTOLISP에서 SHIFT를 눌렀는지 어떻게 확인할 수 있습니까?

  25. 25

    Connect to Server의 최근 서버를 어떻게 정리할 수 있습니까?

  26. 26

    Ubuntu에서 하드웨어 인벤토리를 어떻게 확인할 수 있습니까?

  27. 27

    이 코드를 Java 8로 어떻게 변환 할 수 있습니까?

  28. 28

    Pycharm에서 ipynb 코드를 어떻게 다시 포맷 할 수 있습니까?

  29. 29

    이 코드에서 "getCharSequence"를 어떻게 사용할 수 있습니까?

뜨겁다태그

보관