我不明白如何在四连冠中找到获胜方式,请告诉我应该怎么想以及如何在四连冠中找到赢家。我应该如何使用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- Java
/
或带有4D数组对角线检查的Connect4游戏中的四个游戏编码难题算法
所以它很容易找到。还有这个Scala实现也可以做到这一点。然后只有另一种语言:https : //github.com/Green7izard/AP-
ASE/blob/master/Scala/src/Day1.scala
基本上有3种取胜方式:
最后一个选项是对角线。这一个比较难,因为您还要检查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,您将有赢家!但是有更好的方法来执行此壮举!
所以在试图完成我的h. w,有一件事对我来说还不顺利。在这个程序中,我使用了2个类,这是一个跑步的压缩,我只是想宣布一个赢得比赛的玩家的位置。 例如:我们有4个线程。如果第二个线程最后达到100米,我想发布消息说他排在第四位。 参赛者类别: 轨道等级: 在我们的第一课中,当我们使用线程时,它是一个愚蠢的程序。
问题内容: 如何在Java代码中检查用户权限?例如-我想根据角色显示或隐藏用户按钮。有如下注释: 如何用Java代码制作?就像是 : 问题答案: Spring Security 3.0具有此API 使用包装之前,您必须先注入包装纸。 SecurityContextHolderAwareRequestWrapper
问题内容: 我发现这个问题可以解决C ++问题: 如何在gcc中从C / C ++源代码获得汇编程序输出? 问题答案: Java使用字节码。最相似的是,每个链接的Oracle文档, 该 javap的 命令拆卸一个或多个类文件。其输出取决于所使用的选项。 如果我将其编译为然后运行,我会得到
早期文章:如何使tictactoe程序可伸缩 我已经尝试使一个Tic Tac Toe程序(人机)可伸缩(板大小可以改变)。我之前有过一些大问题,但大部分都解决了。 游戏的规则是基本的Tictactoe,但有一个不同的规则是,无论棋盘有多大(当)玩家或计算机只需要连续五个分数就能获胜。 现在我的程序唯一的破局问题是决定谁赢了这场比赛。这场比赛现在只可能以‘平局’结束。(我还没有实现“”)。 具体的问
我有Spring Boot 1.5应用程序,它正在设置与一些Web服务的连接。在所有情况下,这些都是TLS 1.2连接。我通过此JVM参数运行我的应用程序: javax。网ssl。密钥库只是一个jks文件,其中只有一个证书。 我需要回答这个问题:当设置TLS连接时,我如何知道我是否正在检查完整的证书链?或者只是根证书?这仅仅取决于我的信任存储中包含的每个证书中的CA吗? 我使用RestTempla
我为跳棋游戏创建了两个类。一个是木板,另一个是碎片。我所面临的困难是,对于这些碎片,我似乎无法让它们移动,也无法让它们正确地停留在那个位置,事实上,由于我不了解这里到底出了什么问题,我无法再前进了。有人能纠正我做错了什么吗。 这是拼图课