广告
返回顶部
首页 > 资讯 > 后端开发 > Python >java实现四子棋游戏
  • 722
分享到

java实现四子棋游戏

2024-04-02 19:04:59 722人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

非常简单的四子棋游戏 本人是刚学java的小白,最近在书上看到了有关四子棋游戏的编程题,就试着来写一写,代码也比较简单。 思路 写四子棋的难点是如何判断四个棋子连在一起。 下面给出图

非常简单的四子棋游戏

本人是刚学java的小白,最近在书上看到了有关四子棋游戏的编程题,就试着来写一写,代码也比较简单。

思路

写四子棋的难点是如何判断四个棋子连在一起。

下面给出图解:

观察上图,先从落棋点开始,设置一个计数器 i ,并初始化它为1,像左端移动,遇到的是跟落棋点相同颜色的棋子,则使 i 加1,继续向左端移动,没有棋子,则回到落棋点从而向右移动,向右端移动遇到第三个相同的棋,这时i = 3,然后继续向右移动遇到第四个棋子使 i = 4,到最后只要i = 4,即游戏胜利。再看下图。

按照上面的流程,先向左边移动,遇到没有棋子的点停止后 i = 2,再向右移动,遇到不同颜色的棋子后停止,i = 3,这样落棋点两边方向判断结束后,i < 4即游戏继续。

总结

判断游戏是否胜利,就是从棋子落点两个相反的方向,遇到相同的棋子使计数器数值加1,遇到无棋或颜色不同就结束向另一个方向,直到遇到无棋子和不同颜色的棋子,然后判断计数器是否为4。在四子棋中有7个方向需要判断。


import java.util.Scanner;

class Desk {
 //棋桌类
 private char[][] date = new char[6][7];
 private Scanner scanner = new Scanner(System.in) ;
 private int hand = 1 ;
 
 //画出整个棋盘以及上面的棋子
 public void draw() {
 for (int i = 0; i < this.date.length; i++) {
 System.out.print("|");
 for (int j = 0; j < this.date[i].length; j++) {
 System.out.print(this.date[i][j] + "|");
 }
 System.out.println();
 }
 if (this.hand % 2 == 1) {
 System.out.print("现在是第" + this.hand + "手,轮到黄棋: ");
 playchess('Y');
 }
 else {
 System.out.print("现在是第" + this.hand + "手,轮到红棋: ") ;
 playchess('R');
 }
 }
 
 //控制落子
 public void playchess(char color) {
 this.hand ++;
 int place = scanner.nextInt() ;
 int i ;
 for (i = 5; i >= 0; i--) { //
 if (date[i][place] == '\u0000') {
 date[i][place] = color;
 break;
 }
 }
 if (i < 0)System.exit(1);
 else win(i, place, color) ;
 }
 
 //判断游戏是否有人胜利或平局(依据是根据落子位置的两个方向是否连成四子)
 public void win(int x, int place,char color) {
 int number = 1;
 //第一个方向(右斜线方向)
 for (int i = x - 1, j = place - 1; (i >= 0) && (j >= 0); i--, j--) {
 if (date[i][j] == color) {
 number++;
 }
 else break;
 }
 for (int i = x + 1, j = place + 1; (i <= 5) && (j <= 6); i++, j++) {
 if (date[i][j] == color) {
 number ++ ;
 }
 else break;
 }
 if (number == 4)end(color, "win");
 //第二个方向(左斜线方向)
 number = 1;
 for (int i = x - 1, j = place + 1; (i >= 0) && (j <= 6); i--, j++) {
 if (date[i][j] == color) {
 number++;
 }
 else break;
 }
 for (int i = x + 1, j = place - 1; (i <= 5) && (j >= 0); i++, j--) {
 if (date[i][j] == color) {
 number ++ ;
 }
 else break;
 }
 if (number == 4)end(color, "win");
 //第三个方向(水平)
 number = 1;
 for (int i = x, j = place - 1; j >= 0; j--) {
 if (date[i][j] == color) {
 number ++ ;
 }
 else break ;
 }
 for (int i = x, j = place + 1; j <= 6; j++) {
 if (date[i][j] == color) {
 number ++ ;
 }
 else break;
 }
 if (number == 4)end(color, "win");
 //第四个方向(竖直)
 number = 1;
 for (int i = x + 1, j = place; i <= 5; i++) {
 if (date[i][j] == color) {
 number ++ ;
 }
 else break;
 }
 if (number == 4)end(color, "win") ;
 //判断平局
 for (int i = 0; i < date.length; i++) {
 for (int j = 0; j < date[i].length; j++) {
 if (date[i][j] != 'Y' || date[i][j] != 'R')draw() ;
 }
 }
 end(color, "s") ;
 }
 
 //判断游戏是否结束
 public void end(char color, String str) {
 if (str.equals("win")) {
 System.out.print(color + "棋获得胜利!!!");
 System.exit(0);
 }
 else {
 System.out.print("两棋子平局.") ;
 System.exit(0);
 }
 }
}

public class ChessOffour {
 public static void main(String[] args) {
 Desk desk = new Desk() ;
 desk.draw() ;
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: java实现四子棋游戏

本文链接: https://www.lsjlt.com/news/121639.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • java实现四子棋游戏
    非常简单的四子棋游戏 本人是刚学java的小白,最近在书上看到了有关四子棋游戏的编程题,就试着来写一写,代码也比较简单。 思路 写四子棋的难点是如何判断四个棋子连在一起。 下面给出图...
    99+
    2022-11-11
  • Java实现五子棋游戏
    本文实例为大家分享了Java实现五子棋游戏的具体代码,供大家参考,具体内容如下 一、功能分析 五子棋的实现还是较为简单的,通过下期的流程我们可以知道大概要实现一下功能: 1、格界面 ...
    99+
    2022-11-12
  • Java实现三子棋游戏
    本文实例为大家分享了Java实现三子棋游戏的具体代码,供大家参考,具体内容如下 一、题目要求 编写程序,实现简单的三子棋游戏。在三子棋中,双方在3×3的棋盘中轮流下棋,一...
    99+
    2022-11-13
  • Java实现三子棋小游戏
    # 前言 之前在学习C语言的时候,做过一个三子棋的小游戏,最近开始学习Java,就想着能不能用Java再把之前的练习重新实现一边,既然有这个想法了,那就开始行动啦~。 再写的过程中...
    99+
    2022-11-12
  • Java实现五子棋游戏(2.0)
    本文实例为大家分享了Java实现五子棋游戏的具体代码,供大家参考,具体内容如下 简介 相比之前,做出了以下修改: 1.新增菜单栏,将重新开始和退出的按钮移到了菜单栏;2.可以实时显示...
    99+
    2022-11-13
  • java开发实现五子棋游戏
    本文实例为大家分享了java实现五子棋游戏的具体代码,供大家参考,具体内容如下 此游戏具有双人对战功能和人机对战功能 一、游戏界面的实现 一个游戏首先从设计界面开始 1、首先创建一...
    99+
    2022-11-12
  • java实现双人五子棋游戏
    本文实例为大家分享了java实现双人五子棋游戏的具体代码,供大家参考,具体内容如下 通过 上下左右 控制棋盘走动  空格落子   (深度优先搜索) packag...
    99+
    2022-11-13
  • Java如何实现五子棋游戏
    本篇内容介绍了“Java如何实现五子棋游戏”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!简介相比之前,做出了以下修改:新增菜单栏,将重新开始...
    99+
    2023-06-30
  • java实现简单三子棋游戏
    本文实例为大家分享了java实现简单三子棋游戏的具体代码,供大家参考,具体内容如下 JOptionPane类的使用 编写程序,实现简单的三子棋游戏。在三子棋中,双方在3×...
    99+
    2022-11-13
  • java实现简易的五子棋游戏
    本文实例为大家分享了java实现简易五子棋游戏的具体代码,供大家参考,具体内容如下 先上效果图 一、问题分析 1、五子棋游戏分析: 五子棋作为较为普遍且简易的娱乐游戏,受到众多人的...
    99+
    2022-11-12
  • Java+Swing实现经典五子棋游戏
    目录前言主要需求主要设计功能截图代码实现总结前言 五子棋是世界智力运动会竞技项目之一,是一种两人对弈的纯策略型棋类游戏,是世界智力运动会竞技项目之一,通常双方分别使用黑白两色的棋子,...
    99+
    2022-11-13
  • java实现简单的五子棋游戏
    目录一、主要界面二、功能概况三、代码部分四、部分效果展示本文实例为大家分享了java实现简单五子棋游戏的具体代码,供大家参考,具体内容如下 一、主要界面 1、登录界面;2、游戏选择界...
    99+
    2022-11-13
  • Java实现简易五子棋小游戏
    本文实例为大家分享了Java实现简易五子棋小游戏的具体代码,供大家参考,具体内容如下 五子棋是一个简单小游戏,首先我们先想想五子棋都有什么东西,棋子,棋盘; 首先我们可以定义一个棋子...
    99+
    2022-11-13
  • java五子棋小游戏实现代码
    前言 之前学完java基础课程,试着简单做了一下java的一个五子棋小游戏,记录下来。 界面 由于直接用的java库中的一些基本控件写的一个GUI,并没有做过多优化,感觉比较丑 下面...
    99+
    2022-11-12
  • 怎么用Java实现三子棋游戏
    本文小编为大家详细介绍“怎么用Java实现三子棋游戏”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么用Java实现三子棋游戏”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、题目要求编写程序,实现简单的三子棋...
    99+
    2023-06-30
  • python实现三子棋游戏
    目录一、基本流程二、基本步骤1、菜单界面2、初始化棋盘、打印棋盘3、玩家落子4、电脑落子5、输赢判定三、整体代码四、结果展示三子棋的python实现代码,供大家参考,具体内容如下 一...
    99+
    2022-11-10
  • JavaSE实现三子棋游戏
    目录main函数棋盘模块设计玩家模块设计AI(电脑)模块设计游戏模块设计本文实例为大家分享了JavaSE实现三子棋游戏的具体代码,供大家参考,具体内容如下 用面向对象的思维把实现三子...
    99+
    2022-11-13
  • java实现简单五子棋小游戏(1)
    本文实例为大家分享了java实现简单五子棋小游戏的具体代码,供大家参考,具体内容如下 讲解 五子棋,实际上就是用一个数组来实现的。没有其他很复杂的结构。首先我们制作五子棋,先要有一个...
    99+
    2022-11-12
  • java实现简单五子棋小游戏(2)
    本文实例为大家分享了java实现简单五子棋小游戏游戏的具体代码,供大家参考,具体内容如下 讲解 在第一步实现的基础上,添加游戏结束条件。五子棋游戏中的相同棋子如果同时有五个连接成一条...
    99+
    2022-11-12
  • Java实现五子棋游戏单机版(1.0)
    本文实例为大家分享了Java实现五子棋游戏单机版的具体代码,供大家参考,具体内容如下 简介 这个程序实现了单机版五子棋,目前无法联机,只能自己跟自己下。棋盘是20*20的。主要功能:...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作