Java五子棋详细步骤及完整代码

这篇具有很好参考价值的文章主要介绍了Java五子棋详细步骤及完整代码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

五子棋

1. 定义声明一个二维数组做棋盘

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		//定义声明一个二维数组作为棋盘
		int[][] game = new int[9][9];
		Scanner sc = new Scanner(System.in);
	

2. 定义变量, 代表落子角色

//定义一个变量, 作为当前落子的角色, 1代表黑子,  2代表白子
		int role = 1;

3.开始游戏

1. 用户输入行和列

		//游戏开始
		while(true) {
			//等待获取用户输入的行和列
			if(role == 1) {
				System.out.println("黑棋落子");
			}else {
				System.out.println("白棋落子");
			}
			System.out.println("请输入要落子的行和列(空格或回车隔开)");
			int r = sc.nextInt();
			int c = sc.nextInt();

2. 将输入设为对应棋子

			//将用户输入的行和列, 设置成对应的棋子
			if(game[r][c] != 0) {
				System.out.println("该位置已经有落子");
				//没有continue,下错棋子的一方, 将少一次下棋机会
				continue;
			}else {
				game[r][c] = role;
			}
			System.out.println("棋盘:");
			//后面会经常使用的,打印一下当前棋盘状态的代码块
			for(int[]arr : game) {
				for(int item : arr) {
					System.out.print(item + " ");
				}
				System.out.println();
			}

4. 判断是否结束

1. 横向判断

		 //横向向左判断			
			int offset = 1;
			int count = 1;
			while(c - offset >= 0 && game[r][c - offset] == role) {
				count++;
				offset++;
			}
		//横向向右判断		
			offset = 1;
			while(c + offset < game[r].length && game[r][c + offset] == role) {
				count++;
				offset++;
			}
			if(count >= 5) {
				break;
			}

2. 竖向判断

		//竖向向下判断
			offset = 1;
			count = 1;
			while(r + offset < game.length && game[r + offset][c] == role) {
				count++;
				offset++;
				
			}
		//竖向向上判断
			offset = 1;
			while(r - offset >= 0 && game[r - offset][c] == role) {
				count++;
				offset++;				
			}
			if(count >= 5) {
				break;
			}

3. 左斜判断

//左斜("\")判断当前游戏是否胜利
		//左斜("\")向右下判断
			offset = 1;
			count = 1;
			while(r + offset < game.length && c + offset < game[r].length && game[r + offset][c + offset] == role) {
				count++;
				offset++;				
			}
		//左斜("\")向左上判断
			offset = 1;
			while(r - offset >= 0 && c - offset >= 0 && game[r - offset][c - offset] == role) {
				count++;
				offset++;				
			}
			
			if(count >= 5) {
				break;
			}

4.右斜判断

//右斜("/")判断当前游戏是否胜利
		//右斜("/")向左下判断
			offset = 1;
			count = 1;
			while(r + offset < game.length && c - offset >=0 && game[r + offset][c - offset] == role) {
				count++;
				offset++;				
			}
		//右斜("/")向右上判断
			offset = 1;
			while(r - offset >= 0 && c + offset < game[r].length && game[r - offset][c + offset] == role) {
				count++;
				offset++;				
			}
			
			if(count >= 5) {
				break;
			}
			 
			//棋子角色的变换, 如果是1, 则变成2, 如果是2, 则变成1
			role = 3 - role;
		
		
		}
		
		System.out.println(role + "胜利");
	}

}

5. 运行结果展示

1.横向胜利

java编写五子棋代码,JAVASE,java,python,开发语言

2.竖向胜利

java编写五子棋代码,JAVASE,java,python,开发语言

3. 左斜判断

java编写五子棋代码,JAVASE,java,python,开发语言

4. 右斜判断

java编写五子棋代码,JAVASE,java,python,开发语言文章来源地址https://www.toymoban.com/news/detail-788040.html

6. 完整代码

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		//定义声明一个二维数组作为棋盘
		int[][] game = new int[9][9];
		Scanner sc = new Scanner(System.in);
		//定义一个变量, 作为当前落子的角色, 1代表黑子,  2代表白子
		int role = 1;
		//游戏开始
		while(true) {
			//等待获取用户输入的行和列
			if(role == 1) {
				System.out.println("黑棋落子");
			}else {
				System.out.println("白棋落子");
			}
			System.out.println("请输入要落子的行和列(空格或回车隔开)");
			int r = sc.nextInt();
			int c = sc.nextInt();
		
			//将用户输入的行和列, 设置成对应的棋子
			if(game[r][c] != 0) {
				System.out.println("该位置已经有落子");
				//没有该行,下错棋子的一方, 将少一次下棋机会
				continue;
			}else {
				game[r][c] = role;
			}
			System.out.println("棋盘:");
			//后面会经常使用的,打印一下当前棋盘状态的代码块
			for(int[]arr : game) {
				for(int item : arr) {
					System.out.print(item + " ");
				}
				System.out.println();
			}
//横向判断当前游戏是否结束
		//横向向左判断			
			int offset = 1;
			int count = 1;
			while(c - offset >= 0 && game[r][c - offset] == role) {
				count++;
				offset++;
			}
		//横向向右判断		
			offset = 1;
			while(c + offset < game[r].length && game[r][c + offset] == role) {
				count++;
				offset++;
			}
			if(count >= 5) {
				break;
			}
			
//竖向判断当前游戏是否结束
		//竖向向下判断
			offset = 1;
			count = 1;
			while(r + offset < game.length && game[r + offset][c] == role) {
				count++;
				offset++;
				
			}
		//竖向向上判断
			offset = 1;
			while(r - offset >= 0 && game[r - offset][c] == role) {
				count++;
				offset++;				
			}
			if(count >= 5) {
				break;
			}
//左斜("\")判断当前游戏是否胜利
		//左斜("\")向右下判断
			offset = 1;
			count = 1;
			while(r + offset < game.length && c + offset < game[r].length && game[r + offset][c + offset] == role) {
				count++;
				offset++;				
			}
		//左斜("\")向左上判断
			offset = 1;
			while(r - offset >= 0 && c - offset >= 0 && game[r - offset][c - offset] == role) {
				count++;
				offset++;				
			}
			
			if(count >= 5) {
				break;
			}
//右斜("/")判断当前游戏是否胜利
		//右斜("/")向左下判断
			offset = 1;
			count = 1;
			while(r + offset < game.length && c - offset >=0 && game[r + offset][c - offset] == role) {
				count++;
				offset++;				
			}
		//右斜("/")向右上判断
			offset = 1;
			while(r - offset >= 0 && c + offset < game[r].length && game[r - offset][c + offset] == role) {
				count++;
				offset++;				
			}
			
			if(count >= 5) {
				break;
			}
			 
			//棋子角色的变换, 如果是1, 则变成2, 如果是2, 则变成1
			role = 3 - role;
		
		
		}
		
		System.out.println(role + "胜利");
	}

}



到了这里,关于Java五子棋详细步骤及完整代码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java课程设计-简单五子棋

    五子棋介绍     五子棋是起源于中国古代的传统黑白棋种之一。五子棋不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。五子棋既有现代休闲的明显特征“短、平、快”,又有古典哲学的高深学问“阴阳易理”;它既有简单易学的特性,为人民群众所喜闻

    2024年02月03日
    浏览(35)
  • 用Java写一个简易五子棋游戏

     一. 程序基本思路: 1.写窗口、棋盘面板、控制面板; 2.绘制棋盘; 3.绘制棋子; 4.添加组件功能; 5.判断输赢; 6.悔棋; 7.复盘。 二.实际操作 1.创建窗口、添加面板 效果图:  2.绘制棋盘   为了棋盘线在窗体刷新后仍能保存,我们直接重写chesspanel的paint方法,将棋盘绘

    2024年02月06日
    浏览(30)
  • Java实现的五子棋游戏 ~java.awt&java.swing

    作业要求: (1)课题代号: 2 (2)课题名称: 2D 游戏设计 (3)课题要求:设计一种二维游戏(如数独,扫雷,飞机大战,贪食蛇,五子棋等),完成界面设计和必要的游戏功能 以下主要实现的功能有: 一、下棋功能,在棋盘的交点处落子。 二、简单人机对战功能。 1.实现

    2024年02月09日
    浏览(27)
  • Java实现五子棋小游戏(附源码)

      铜9铁10已经结束了,但还是有很多Java程序员没有找到工作或者成功跳槽,跳槽成功的也只是从一个坑中,跳入另一个坑中…… ​ 在LZ看来,真正有意义的就业与跳槽,是要进入到一个有绝对潜力的行业或者薪资能实现爆炸式增长的。这件事不容易,但也没有想象的遥不可

    2024年02月08日
    浏览(37)
  • 基于Java的五子棋游戏的设计与实现

    基于 Java 的五子棋游戏的设计 摘  要 五子棋作为一个棋类竞技运动,在民间十分流行,为了熟悉五子棋规则及技巧,以及研究简单的人工智能,决定用Java开发五子棋游戏。主要完成了人机对战和玩家之间联网对战2个功能。网络连接部分为Socket编程应用,客户端和服务器端的

    2023年04月23日
    浏览(47)
  • 纯java编写的联机五子棋项目(附带开源链接)

    这是用java写的一个联机五子棋项目,该项目是我大二上期的时候写的,那时候学完了java基础,想要把学的技术都综合使用一下,于是就在国庆节花了3天还是几天写了这个项目。 这个项目分为服务端和客户端,它们是基于Socket进行通信的,简单编写了一下java的gui界面。 主界

    2023年04月09日
    浏览(33)
  • python五子棋代码最简单的,python五子棋代码能复制

    本篇文章给大家谈谈python五子棋代码红方蓝方,以及python五子棋代码最简单的,希望对各位有所帮助,不要忘了收藏本站喔。 开端 画棋盘 首先肯定是要画出棋盘来,用  pygame  画出一个 19 × 19 或 15 × 15 的棋盘并不是什么难事,这在之前的文章中已经多次用到,就不赘述了

    2024年03月13日
    浏览(38)
  • python五子棋代码最简单的,python五子棋代码手机版

    大家好,本文将围绕python五子棋代码最简单的展开说明,python五子棋代码手机版是一个很多人都想弄明白的事情,想搞清楚python五子棋代码画棋盘需要先了解以下几个事情。 【实例简介】 【实例截图】 【核心代码】 \\\"\\\"\\\"五子棋之人机对战\\\"\\\"\\\" import sys import random import pygame from

    2024年01月19日
    浏览(35)
  • 网页版Java五子棋项目(一)websocket【服务器给用户端发信息】

    http不能实现消息推送 http的轮询(开销大) WebSocket 是从 HTML5 开始支持的一种网页端和服务端保持长连接的 消息推送机制. 理解消息推送: 传统的 web 程序, 都是属于 “一问一答” 的形式. 客户端给服务器发送了一个 HTTP 请求, 服务器给客户端返回一个 HTTP 响应. 这种情况下,

    2024年02月14日
    浏览(29)
  • 网页版Java(Spring/Spring Boot/Spring MVC)五子棋项目(四)对战模块

    匹配成功返回数据 1. message消息类别 2. ok 3. reson 4. 房间id 5. 双方id 6.白色玩家 一个类记录房间中的信息(房间id,两个用户id,是否为白棋) 信息提示框 处理匹配API 初始化游戏(棋盘,下一个棋子,接受棋子处理响应,判断是否结束) 1. 客户端连接到游戏房间后, 服务器返回

    2024年02月13日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包