我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Java编程实现五子棋人人对战代码示例

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Java编程实现五子棋人人对战代码示例

利用Java,在控制台操作下,编写的五子棋,作为复习二维数组,面向对象等基础知识。w表示白棋,b表示黑棋

Java编程实现五子棋人人对战代码示例

import java.util.Scanner;public class MainMethod {public static char[][] c = new char[10][10];public static void main(String[] args) {MainMethod mainMethod = new MainMethod();mainMethod.init();int i;boolean color;int[] point = new int[2];Scanner scanner = new Scanner(System.in);for (i = 1; i < 100; i++) {mainMethod.draw();// 绘制棋盘System.out.println("请输入坐标,范围为(0,0)到(9,9)");int x = scanner.nextInt();int y = scanner.nextInt();if (i % 2 == 1)color = true;elsecolor = false;point[0] = x;point[1] = y;if (mainMethod.paint(point, color) == false) {//System.out.println("下的位置不合理,请重新开始");break;}if (mainMethod.win() == 1) {mainMethod.draw();System.out.println("恭喜白棋赢!!");break;} else if (mainMethod.win() == -1) {mainMethod.draw();System.out.println("恭喜黑棋赢!!");break;}}if (i == 100)System.out.println("平局");}public char[][] init() {// 初始化棋盘for (int i = 0; i < c.length; i++) {for (int j = 0; j < c.length; j++) {c[i][j] = '+';}}return c;}public boolean paint(int[] point, boolean colr) {// 判断下的位置是否正确,若正确改变棋盘boolean b = true;int x = point[0];int y = point[1];if (inBoard(point) == false || c[x][y] == 'w' || c[x][y] == 'b' || x < 0) {b = false;return b;}else if (colr == true) {// 白棋下if (c[x][y] == '+') {c[x][y] = 'w';}}else if (colr == false) {// 黑棋下if (c[x][y] == '+') {c[x][y] = 'b';}}return b;}public boolean inBoard(int[] point) {// 判断point是否在棋盘上int x = point[0];int y = point[1];if (x < 0 || y < 0 || x >= c.length || y >= c.length)return false;elsereturn true;}public int win() {// 判断输赢,1表示白的赢,-1黑的赢,0暂无输赢int whoWin = 0;int[] point = new int[2];outer: while (true) {for (int i = 0; i < c.length; i++) {for (int j = 0; j < c.length; j++) {if (c[i][j] == 'w') {// 遍历数组,找到的第一个白棋point[0] = i;point[1] = j + 4;if (inBoard(point)) {// 如果存在向右数4个的棋盘if (c[i][j + 1] == 'w' && c[i][j + 2] == 'w' && c[i][j + 3] == 'w' && c[i][j + 4] == 'w') {whoWin = 1;break outer;}}point[0] = i + 4;point[1] = j + 4;if (inBoard(point)) {// 如果存在向右,向下数4个的棋盘if (c[i + 1][j + 1] == 'w' && c[i + 2][j + 2] == 'w' && c[i + 3][j + 3] == 'w'&& c[i + 4][j + 4] == 'w') {whoWin = 1;break outer;}}point[0] = i + 4;point[1] = j;if (inBoard(point)) {// 如果存在向下数4个的棋盘if (c[i + 1][j] == 'w' && c[i + 2][j] == 'w' && c[i + 3][j] == 'w' && c[i + 4][j] == 'w') {whoWin = 1;break outer;}}point[0] = i - 4;point[1] = j + 4;if (inBoard(point)) {// 如果存在向左,向下数4个的棋盘if (c[i - 1][j + 1] == 'w' && c[i - 2][j + 2] == 'w' && c[i - 3][j + 3] == 'w'&& c[i - 4][j + 4] == 'w') {whoWin = 1;break outer;}}} else if (c[i][j] == 'b') {point[0] = i;point[1] = j + 4;if (inBoard(point)) {// 如果存在向右数4个的棋盘if (c[i][j + 1] == 'b' && c[i][j + 2] == 'b' && c[i][j + 3] == 'b' && c[i][j + 4] == 'b') {whoWin = -1;break outer;}}point[0] = i + 4;point[1] = j + 4;if (inBoard(point)) {// 如果存在向右,向下数4个的棋盘if (c[i + 1][j + 1] == 'b' && c[i + 2][j + 2] == 'b' && c[i + 3][j + 3] == 'b'&& c[i + 4][j + 4] == 'b') {whoWin = -1;break outer;}}point[0] = i + 4;point[1] = j;if (inBoard(point)) {// 如果存在向下数4个的棋盘if (c[i + 1][j] == 'b' && c[i + 2][j] == 'b' && c[i + 3][j] == 'b' && c[i + 4][j] == 'b') {whoWin = -1;break outer;}}point[0] = i - 4;point[1] = j + 4;if (inBoard(point)) {// 如果存在向左,向下数4个的棋盘if (c[i - 1][j + 1] == 'b' && c[i - 2][j + 2] == 'b' && c[i - 3][j + 3] == 'b'&& c[i - 4][j + 4] == 'b') {whoWin = -1;break outer;}}}}}whoWin = 0;break outer;}return whoWin;}public void draw() {// 绘制棋盘for (int i = 0; i < c.length; i++) {for (int j = 0; j < c.length; j++) {System.out.print(c[i][j] + " ");}System.out.println();}}}

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Java编程实现五子棋人人对战代码示例

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Java编程实现五子棋人人对战代码示例

利用Java,在控制台操作下,编写的五子棋,作为复习二维数组,面向对象等基础知识。w表示白棋,b表示黑棋import java.util.Scanner;public class MainMethod {public static char
2023-05-30

Python如何实现五子棋人机对战和人人对战

这篇文章主要介绍“Python如何实现五子棋人机对战和人人对战”,在日常操作中,相信很多人在Python如何实现五子棋人机对战和人人对战问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python如何实现五子棋
2023-06-30

python怎么实现人人对战的五子棋游戏

这篇文章主要介绍“python怎么实现人人对战的五子棋游戏”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“python怎么实现人人对战的五子棋游戏”文章能帮助大家解决问题。checkerboard.p
2023-06-30

怎么用批处理实现五子棋人机对战游戏

这篇文章主要介绍怎么用批处理实现五子棋人机对战游戏,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!效果图:核心代码:代码如下:@echo off&setlocal enabledelayedexpansionset l
2023-06-08

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录