五子棋代码java


以下是一个简单的五子棋游戏的Java代码实现: ```java import java.util.Scanner; public class Gomoku { private static final int BOARD_SIZE = 15; private static final char EMPTY = '.'; private static final char PLAYER1 = 'X'; private static final char PLAYER2 = 'O'; public static void main(String[] args) { char[][] board = new char[BOARD_SIZE][BOARD_SIZE]; initBoard(board); printBoard(board); Scanner scanner = new Scanner(System.in); boolean player1Turn = true; while (true) { System.out.println("轮到玩家" + (player1Turn ? "1" : "2") + ",请输入行和列(用空格隔开):"); int row = scanner.nextInt(); int col = scanner.nextInt(); if (row < 0 || row >= BOARD_SIZE || col < 0 || col >= BOARD_SIZE || board[row][col] != EMPTY) { System.out.println("无效的输入,请重新输入。"); continue; } board[row][col] = player1Turn ? PLAYER1 : PLAYER2; printBoard(board); if (checkWin(board, row, col)) { System.out.println("玩家" + (player1Turn ? "1" : "2") + "获胜!"); break; } player1Turn = !player1Turn; } scanner.close(); } private static void initBoard(char[][] board) { for (int i = 0; i < BOARD_SIZE; i++) { for (int j = 0; j < BOARD_SIZE; j++) { board[i][j] = EMPTY; } } } private static void printBoard(char[][] board) { for (int i = 0; i < BOARD_SIZE; i++) { for (int j = 0; j < BOARD_SIZE; j++) { System.out.print(board[i][j] + " "); } System.out.println(); } } private static boolean checkWin(char[][] board, int row, int col) { char player = board[row][col]; int count; // 检查行 count = 0; for (int i = 0; i < BOARD_SIZE; i++) { if (board[row][i] == player) { count++; if (count == 5) return true; } else { count = 0; } } // 检查列 count = 0; for (int i = 0; i < BOARD_SIZE; i++) { if (board[i][col] == player) { count++; if (count == 5) return true; } else { count = 0; } } // 检查主对角线 count = 0; for (int i = row - Math.min(row, col), j = col - Math.min(row, col); i < BOARD_SIZE && j < BOARD_SIZE; i++, j++) { if (board[i][j] == player) { count++; if (count == 5) return true; } else { count = 0; } } // 检查副对角线 count = 0; for (int i = row - Math.min(row, BOARD_SIZE - col - 1), j = col + Math.min(row, BOARD_SIZE - col - 1); i < BOARD_SIZE && j >= 0; i++, j--) { if (board[i][j] == player) { count++; if (count == 5) return true; } else { count = 0; } } return false; } } ``` 这个代码实现了一个简单的五子棋游戏,玩家可以在控制台输入行和列坐标来下棋。游戏会检查每次下棋后是否有一方获胜,如果有一方获胜则输出获胜信息并结束游戏。 [2024-07-15 17:52:36 | AI写代码神器 | 1089点数解答]
- import javax.swing.*; import java.awt.*; import java.awt.datatransfer.clipboard; import java.awt.datatransfer.stringselection; import java.awt.datatransfer.transferable; import java.awt.event.*; import java.io.*; import java.nio.file.files; import java.nio.file.path; import java.nio.file.paths; import java.time.localdatetime; import java.util.hashmap; import java.util.list; import java.util.map; import java.util.random; public class copy { static private final jtextarea textarea = new jtext(1497点数解答 | 2024-08-25 09:40:33)296
- dm.jdbc.driver.dmexception: 数据溢出 at dm.jdbc.driver.dberror.throwexception(dberror.java:636) at dm.jdbc.c.b.p.s(msg.java:225) at dm.jdbc.c.b.p.p(msg.java:185) at dm.jdbc.c.b.p.o(msg.java:166) at dm.jdbc.c.a.a(dbaccess.java:776) at dm.jdbc.c.a.a(dbaccess.java:327) at dm.jdbc.c.a.a(dbaccess.java:435) at dm.jdbc.driver.dmdbpreparedstatement.executeinner(dmdbpreparedstatement.java:284) at dm.jdbc.driver.dmdbpreparedstatement.do_executequery(dmdbpreparedstatement.java:383) at dm.jdbc.driver.(598点数解答 | 2024-10-15 15:48:38)200
- 问题排查:dm.jdbc.driver.dmexception: 数据溢出 at dm.jdbc.driver.dberror.throwexception(dberror.java:636) at dm.jdbc.c.b.p.s(msg.java:225) at dm.jdbc.c.b.p.p(msg.java:185) at dm.jdbc.c.b.p.o(msg.java:166) at dm.jdbc.c.a.a(dbaccess.java:776) at dm.jdbc.c.a.a(dbaccess.java:327) at dm.jdbc.c.a.a(dbaccess.java:435) at dm.jdbc.driver.dmdbpreparedstatement.executeinner(dmdbpreparedstatement.java:284) at dm.jdbc.driver.dmdbpreparedstatement.do_executequery(dmdbpreparedstatement.java:383) at dm.jdbc.dr(403点数解答 | 2024-10-15 15:48:41)855
- import com.opencsv.csvreader; import com.opencsv.exceptions.csvvalidationexception; import java.io.filereader; import java.io.ioexception; import java.text.parseexception; import java.text.simpledateformat; import java.util.*; public class stockstatistics { public static void main(string[] args) { string filepath = "stocks.csv"; // 请确保csv文件与此java文件在同一目录下,或提供完整路径 simpledateformat sdf = new simpledateformat("yyyy-mm-dd"); map<string, stockdata> monthlydata = new has(66点数解答 | 2024-11-13 15:31:04)164
- student = [张三,李四,王五,周六,赵七] score =[ ["会计学", "c语言", "java"], ["python", "程序设计", "java"], ["数据结构", "c语言", "java"], ["python", "c语言", "大学计算机基础"], ["python", "会计学", "信息管理"] ] 1.将两个列表转换为一个字典,名为dict2 2.遍历字典dict2 3.将dict2深拷贝 4.在拷贝后的文件上做如下操作: 1)删除周六的信息 2)添加键值对:“钱一”:["管理科学与工程", "大学计算机基础", "大学数学"] 3)修改“张三”的三个课程为"大学数学", "c语言", "python"(422点数解答 | 2024-10-29 15:43:54)224
- student = [张三,李四,王五,周六,赵七] score =[ ["会计学", "c语言", "java"], ["python", "程序设计", "java"], ["数据结构", "c语言", "java"], ["python", "c语言", "大学计算机基础"], ["python", "会计学", "信息管理"] ] 1.将两个列表转换为一个字典,名为dict2 2.遍历字典dict2 3.将dict2深拷贝 4.在拷贝后的文件上做如下操作: 1)删除周六的信息 2)添加键值对:“钱一”:["管理科学与工程", "大学计算机基础", "大学数学"] 3)修改“张三”的三个课程为"大学数学", "c语言", "python"(254点数解答 | 2024-10-29 16:01:39)223
- // // source code recreated from a .class file by intellij idea // (powered by fernflower decompiler) // package client; import client.ui.loginframe; import java.io.objectinputstream; import java.io.objectoutputstream; import java.net.socket; import javax.swing.jdialog; import javax.swing.jframe; import javax.swing.joptionpane; import javax.swing.uimanager; public class clientmain { public clientmain() { } public static void main(string[] args) { connection(); jfr(41点数解答 | 2024-11-15 18:00:17)163
- java.lang.illegalargumentexception: invalid character found in method name [0x160x030x010x070x120x010x000x070x0e0x030x03q0xdd0xa1$3e!0x0cp0xa00xa90x9f0xb3o0x880xdc0xa50xf8j0xe10xd50xf80xfd0x800xf40x1c0xa20x020x1b0xa30xec ]. http method names must be tokens at org.apache.coyote.http11.http11inputbuffer.parserequestline(http11inputbuffer.java:419) ~[tomcat-embed-core-9.0.68.jar:9.0.68] at org.apache.coyote.http11.http11processor.service(http11processor.java:271) ~[tomcat-embed-core-9.0.68.jar:9.(321点数解答 | 2024-12-03 17:34:09)275
- 设计一个接口person,包含一个方法makehappy()。然后创建一个实现该接口的类china,并在china类中实现makehappy()方法,使其打印出"are you ok!"。最后,编写一个调用类test,在其中创建一个china对象并调用其makehappy()方法。1)接口定义(person.java)2)实现类(china.java)3)调用类(test.java)(176点数解答 | 2025-01-03 09:14:03)146
- at java.lang.Thread.run(Thread.java:748) Caused by: java.sql.BatchUpdateException: Code: 242. DB::Exception: Table is in readonly mode (replica path: /data01/clickhouse/data/01/ads_reportcenter/tb_over_cover_4g_sc2nc_list_d_cluster_tmp1739246639849/replicas/cluster01-01-01). (TABLE_IS_READ_ON**) (version 22.6.7.7 (official build)) , server ClickHouseNode [uri=http://10.214.50.88:8123/ads_reportcenter, options={async_insert=0,wait_for_async_insert=1,connect_timeout=6000000,socket_timeout=(404点数解答 | 2025-02-11 14:14:17)125
- com.fasterxml.jackson.databind.exc.mismatchedinputexception: cannot deserialize value of type `java.util.arraylist<com.tinet.aikb.console.faq.model.faqbatchexpansionresultdto$smartextend>` from object value (token `jsontoken.start_object`) at [source: (checkedinputstream); line: 49, column: 26] (through reference chain: java.util.arraylist[1]->com.tinet.aikb.console.faq.model.faqbatchexpansionresultdto["smart_extends"])(256点数解答 | 2024-05-24 18:00:29)258
- version: 2021-12-10 20:25:58 packageinfo: branch_smartbiv95_20200429 未指定错误,请查看详细信息 at smartbi.framework.rmi.clientservice.execute(smartbi:154) at ...(...) at smartbi.usermanager.usermanagermodule.getcurusersofrole(usermanagermodule.java:2491) caused by: org.hibernate.objectnotfoundexception: no row with the given identifier exists: [smartbi.usermanager.user#47649] at org.hibernate.impl.sessionfactoryimpl$1.handleentitynotfound(sessionfactoryimpl.java:375) at org.hibernate.event.def.defau(90点数解答 | 2024-08-22 09:17:33)234