当前位置: 首页 > news >正文

北京网站建设北京天天seo百度点击器

北京网站建设北京,天天seo百度点击器,玉溪网站制作公司,合肥企业网站制作公司五子棋是一种双人对弈的棋类游戏,通常在棋盘上进行。棋盘为 1515 的方格,黑白双方各执棋子,轮流在棋盘的格点上落子,先在横、竖、斜线上形成五个相连的同色棋子者获胜。五子棋规则简单,易学难精,兼具攻防和…

五子棋是一种双人对弈的棋类游戏,通常在棋盘上进行。棋盘为 15×15 的方格,黑白双方各执棋子,轮流在棋盘的格点上落子,先在横、竖、斜线上形成五个相连的同色棋子者获胜。五子棋规则简单,易学难精,兼具攻防和谋略,是一种极具智慧和趣味性的游戏。

以下是使用Java编写的五子棋游戏的示例代码:

棋盘类:

public class ChessBoard {private int[][] board;private final int rows;private final int cols;private final int winCount;public ChessBoard(int rows, int cols, int winCount) {this.rows = rows;this.cols = cols;this.winCount = winCount;board = new int[rows][cols];}public int getRows() {return rows;}public int getCols() {return cols;}public int getWinCount() {return winCount;}public int getChessman(int row, int col) {return board[row][col];}public boolean canPutChessman(int row, int col) {return board[row][col] == 0;}public void putChessman(int row, int col, int player) {board[row][col] = player;}public boolean isFull() {for (int i = 0; i < rows; i++) {for (int j = 0; j < cols; j++) {if (board[i][j] == 0) {return false;}}}return true;}public boolean hasWinner(int player) {for (int i = 0; i < rows; i++) {for (int j = 0; j < cols; j++) {if (board[i][j] == player) {if (checkHorizontal(i, j, player)) {return true;}if (checkVertical(i, j, player)) {return true;}if (checkDiagonal1(i, j, player)) {return true;}if (checkDiagonal2(i, j, player)) {return true;}}}}return false;}private boolean checkHorizontal(int row, int col, int player) {int count = 1;for (int j = col + 1; j < cols && board[row][j] == player; j++) {count++;}for (int j = col - 1; j >= 0 && board[row][j] == player; j--) {count++;}return count >= winCount;}private boolean checkVertical(int row, int col, int player) {int count = 1;for (int i = row + 1; i < rows && board[i][col] == player; i++) {count++;}for (int i = row - 1; i >= 0 && board[i][col] == player; i--) {count++;}return count >= winCount;}private boolean checkDiagonal1(int row, int col, int player) {int count = 1;for (int i = row + 1, j = col + 1; i < rows && j < cols && board[i][j] == player; i++, j++) {count++;}for (int i = row - 1, j = col - 1; i >= 0 && j >= 0 && board[i][j] == player; i--, j--) {count++;}return count >= winCount;}private boolean checkDiagonal2(int row, int col, int player) {int count = 1;for (int i = row + 1, j = col - 1; i < rows && j >= 0 && board[i][j] == player; i++, j--) {count++;}for (int i = row - 1, j = col + 1; i >= 0 && j < cols && board[i][j] == player; i--, j++) {count++;}return count >= winCount;}}

游戏界面类:

import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
import javax.swing.JPanel;public class GameUI extends JFrame {private final int rows;private final int cols;private final int winCount;private ChessBoard board;private int currentPlayer;private boolean gameOver;private final JPanel panel;public GameUI(int rows, int cols, int winCount) {this.rows = rows;this.cols = cols;this.winCount = winCount;setTitle("五子棋");setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setSize(cols * 40, rows * 40); // 每个棋子为正方形,大小为40setLocationRelativeTo(null);currentPlayer = 1;board = new ChessBoard(rows, cols, winCount);gameOver = false;panel = new JPanel() {@Overridepublic void paintComponent(Graphics g) {super.paintComponent(g);for (int i = 0; i < rows; i++) {for (int j = 0; j < cols; j++) {int chessman = board.getChessman(i, j);if (chessman == 1) {g.setColor(Color.BLACK);g.fillOval(j * 40 + 5, i * 40 + 5, 30, 30);} else if (chessman == 2) {g.setColor(Color.WHITE);g.fillOval(j * 40 + 5, i * 40 + 5, 30, 30);g.setColor(Color.BLACK);g.drawOval(j * 40 + 5, i * 40 + 5, 30, 30);}}}}};panel.addMouseListener(new MouseAdapter() {@Overridepublic void mouseClicked(MouseEvent e) {if (gameOver) {return;}int col = e.getX() / 40;int row = e.getY() / 40;if (row < rows && col < cols && board.canPutChessman(row, col)) {board.putChessman(row, col, currentPlayer);panel.repaint();if (board.hasWinner(currentPlayer)) {gameOver = true;System.out.println("Player " + currentPlayer + " wins.");} else if (board.isFull()) {gameOver = true;System.out.println("Tie game.");} else {currentPlayer = 3 - currentPlayer; // 切换玩家}}}});add(panel);setVisible(true);}}

主程序:

public class Main {public static void main(String[] args) {new GameUI(15, 15, 5);}}

在主程序中创建游戏界面对象,传入行数、列数和获胜所需连续棋子个数,即可开始游戏。

效果如下:

快去体验一下吧!

http://www.dinnco.com/news/11579.html

相关文章:

  • 做网站需要的带宽上行还是下行百度seo推广价格
  • wordpress网站换空间推广手段
  • 怎样用自己的pid做搜索网站湖南网站seo找行者seo
  • 如何制作微信网站网站优化 秦皇岛
  • 佛山专业网站制作网络营销的五个发展阶段
  • 做网站如何上传apk好f123网站
  • 用付费网站做推广广西seo快速排名
  • 建设银行金湾支行网站办公软件培训
  • 搜索引擎技术百度ocpc怎么优化
  • 网站seo怎么做百度笔记排名优化
  • 实时视频网站怎么做百度手机助手app下载并安装
  • 最近一周新闻热点回顾seo搜索引擎优化关键词
  • 深圳四站合一网站建设电话网络优化大师app
  • 网站建设 精品课程关键词工具网站
  • 青海省住房和城乡建设厅 网站2021年年度关键词排名
  • 果农在哪些网站做推广线上推广渠道有哪些
  • 抖音怎么推广引流长春seo优化
  • wordpress 商业网站网络推广员岗位职责
  • 石家庄互联网传销多少律师班级优化大师下载
  • 安阳网站制作电商平台推广
  • 做视频教学网站服务器配置南宁整合推广公司
  • 那个网站做推广好精准营销包括哪几个方面
  • idea做网站登录云浮网站设计
  • 重庆微信网站作公司app拉新任务平台
  • 移动端网站开发注意些什么2023年最新新闻简短摘抄
  • 航发网上商城seo公司系统
  • 外贸营销型网站建设怎么做私人网站
  • 8x8x域名解析ip地址查询广州市网络seo外包
  • 邯郸媒体网络营销诚信合作曲靖seo建站
  • 怎么做网站上做电子书高端品牌网站建设