java实现简易五子棋游戏

本文实例为大家分享了java实现简易五子棋游戏的具体代码,供大家参考,具体内容如下

编写一个简易五子棋,棋盘在控制台中绘制,棋盘每- - 个点都有对应的坐标,下棋者输
入对应坐标落棋子,运行效果如图所示。两位数字表示的坐标中,第-一个数字表示横坐标,

第二个数字表示纵坐标,运行结果如图所示。

代码:

package Test;

import java.util.Scanner;

public class Test4 {
public static void main(String[] args) {
int flag = 0; //偶数玩家一操作,奇数玩家二操作
int works=0; //判断是否胜利,若胜利则为4
int works_x=0; //胜利时最后一步的x值
int works_y=0; //胜利时最后一步的y值

 String list[][] = start(); //棋盘的生成,和显示
 for (int i = 0; i < list.length; i++) {
 for (int j = 0; j < list[i].length; j++) {
 System.out.print(list[i][j]);
 }
 System.out.println();
 }

 while (true) { //循环操作和显示结果,胜利时跳出
 Scanner sc = new Scanner(System.in);
 System.out.print("位置:");
 String temp = sc.next(); //棋手输入的x值和y值(此方法中为0-9的数)
 int x = Integer.parseInt(temp.substring(0,1));
 int y = Integer.parseInt(temp.substring(1));

 if (flag % 2 == 0){//玩家一操作,此位置为" - "时可操作,否则重新输入
 if (list[x+1][y+1]==" - ")
 list[x+1][y+1] = " O ";
 else
 flag--;
 }
 else{  //玩家二操作,此位置为" - "时可操作,否则重新输入
 if (list[x+1][y+1]==" - ")
 list[x+1][y+1] =" X ";
 else
 flag--;
 }
 flag++; //每次操作成功+1,下一玩家操作

 for (int i = 0; i < list.length; i++) {//显示操作结果
 for (int j = 0; j < list[i].length; j++) {
 System.out.print(list[i][j]);
 ///*
 if (list[i][j]!=" - "){//判断是否胜利,只有非“ - ”时判断
  if(work(list,i,j)==4){
  works=work(list,i,j);
  works_x=x;
  works_y=y;
  }
 }
 //*/
 }
 System.out.println();
 }

 if(works!=0){//最后值为“ O ”时,玩家一胜出;最后值为“ X ”时,玩家二胜出。
 if(list[works_x][works_y]==" O ")
 System.out.println("玩家一胜出");
 else
 System.out.println("玩家二胜出");
 System.out.println("结束");
 break;
 }
 }
}

public static String[][] start() { //生成一个10*10的空棋盘
 String list[][] = new String[11][11];
 for (int i = 0; i < list.length; i++) {
 for (int j = 0; j < list[i].length; j++) {
 if(i == 0 && j==0)
 list[i][j] = " ";
  else if (i == 0 && j!=0)
 list[i][j] = " "+(j-1)+" ";
 else if (j==0 && i!=0)
 list[i][j] = " "+(i-1)+" ";
 else
 list[i][j] = " - ";
 }
 }
 return list;
}

public static int work(String list[][],int x,int y) {//判断是否胜利
 //if(x-5>0 || y-5>0 ||x+5<list.length ||y+5<list[x].length)
 int temp=0;
 if(x-4>0 ){
 if(y-4>0 ){  //左上角是否五子连线
 for(int i=0;i<4;i++){
 if (list[x][y]==list[x-5+i][y-5+i])
  temp++;
 else
  break;
 }
 }
 else if(y+4<list[x].length){//右上角是否五子连线
 for(int i=0;i<4;i++){
 if (list[x][y]==list[x-4+i][y+4-i])
  temp++;
 else
  break;
 }
 }
 else{
 for(int i=0;i<4;i++){ //正上角是否五子连线
 if (list[x][y]==list[x-4+i][y])
  temp++;
 else
  break;
 }
 }
 }
 else if(x+4<list.length ){ //左下角是否五子连线
 if(y-4>0 ){
 for(int i=0;i<4;i++){
 if (list[x][y]==list[x+4-i][y-4+i])
  temp++;
 else
  break;
 }
 }
 else if(y+4<list[x].length){//右下角是否五子连线
 for(int i=0;i<4;i++){
 if (list[x][y]==list[x+4-i][y+4-i])
  temp++;
 else
  break;
 }
 }
 else{
 for(int i=0;i<4;i++){ //正下角是否五子连线
 if (list[x][y]==list[x+4-i][y])
  temp++;
 else
  break;
 }
 }
 }
 else{
 if(y-4>0 ){
 for(int i=0;i<4;i++){ //正左角是否五子连线
 if (list[x][y]==list[x][y-4+i])
  temp++;
 else
  break;
 }
 }
 else if(y+4<list[x].length){//正右角是否五子连线
 for(int i=0;i<4;i++){
 if (list[x][y]==list[x][y+4-i])
  temp++;
 else
  break;
 }
 }
 }
 return temp;
 }

}

更多有趣的经典小游戏实现专题,分享给大家:

C++经典小游戏汇总

python经典小游戏汇总

python俄罗斯方块游戏集合

JavaScript经典游戏 玩不停

java经典小游戏汇总

javascript经典小游戏汇总

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

(0)

相关推荐

  • java实现单机版五子棋

    这个小游戏是我和我姐们儿的JAVA课程设计,也是我做的第一个JAVA项目,适合初学者,希望能帮到那些被JAVA课设所困扰的孩纸们~~~ 一.该游戏需要实现 1.设计主框架,界面. 2.利用ActionListener接口实现按钮事件的监听. 3.重新开始功能的实现. 4.悔棋功能的实现. 5.退出功能的实现. 6.棋盘中棋子点类的定义. 7.利用MouseListener接口实现事件监听,并实现接口里的所有方法. 8.当鼠标移动到棋盘上的交点上,且该点上无棋子时能够变成小手形状. 9.点击棋盘时

  • Java棋类游戏实践之单机版五子棋

    本文实例讲述了java实现的五子棋游戏代码,分享给大家供大家参考,具体代码如下 一.实践目标        1.掌握JavaGUI界面设计        2.掌握鼠标事件的监听(MouseListener,MouseMotionListener) 二.实践内容       设计一个简单的五子棋程序,能够实现五子棋下棋过程.如下图所示 1.五子棋棋盘类 package cn.edu.ouc.fiveChess; import java.awt.Color; import java.awt.Curs

  • Java实现五子棋AI算法

    五子棋AI算法 也算是一个典型的游戏AI算法,一些棋类的AI算法都可以参考实现,下面是Java实现代码 棋盘抽象接口 import java.util.List; public interface IChessboard { //取得棋盘最大横坐标 public int getMaxX(); //最大纵坐标 public int getMaxY(); //取得当前所有空白点,这些点才可以下棋 public List<Point> getFreePoints(); } 棋子类实现 //棋子类 p

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

    利用Java,在控制台操作下,编写的五子棋,作为复习二维数组,面向对象等基础知识.w表示白棋,b表示黑棋 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()

  • Java实现五子棋网络版

    本文实例为大家分享了Java实现五子棋网络版的具体代码,供大家参考,具体内容如下 需求分析: 对于网络五子棋而言,在普通五子棋的基础上需要添加以下功能: 1.拥有服务器端和客户端,用户通过客户端登录服务器后可与其他登录的用户进行对弈 2.服务器支持多组用户同时进行对弈 3.用户可以在服务器上创建新游戏或加入已创建的游戏 4.用户在下棋的时候可以进行聊天交流 由上可以知道需要实现的功能: ·提供服务器和客户端的功能 ·服务器将监听客户端的登录情况并允许多个客户端进行登录 ·用户通过客户端可以登录服

  • java实现五子棋小游戏

    java实现五子棋小游戏 package Gomoku; import java.awt.Toolkit; import javax.swing.JFrame; public class GomokuFrame extends JFrame { //定义一个操作面板 OperatorPane op=null; public GomokuFrame() { //设置名称 this.setTitle("五子棋"); //设置窗口大小 this.setSize(510,510); //设置窗

  • Java实现两人五子棋游戏(三) 画出棋子

    上一篇文章讲的是Java实现两人五子棋游戏(二) 画出棋盘,已经画好棋盘,接下来要实现控制功能,主要功能: 1)选择棋子 2)画棋子 3)判断胜负 4)交换行棋方 先实现画棋子PART -------------画棋子代码示例如下-------------- 首先,定义一个棋子类,这个类有两个属性,棋子颜色(0-表示黑色,1-表示白色),是否落子(我计划用一个二维数组才存储棋子的落子信息) Chessman.java package xchen.test.simpleGobang; public

  • Java实现两人五子棋游戏(二) 画出棋盘

    本文为大家分享了java画出五子棋游戏棋盘的方法,供大家参考,具体内容如下 棋盘模块: 画五子棋棋盘:19条横线.19条竖线 步骤一:显示棋盘 我有一张名为chessboard.png的棋盘,位置为根目录/res/drawable/chessboard/png,现在我要显示这张图片. DrawChessBoard.java package xchen.test.simpleGobang; import java.awt.Graphics; import java.awt.Image; impor

  • java基于swing实现的五子棋游戏代码

    本文实例讲述了java基于swing实现的五子棋游戏代码.分享给大家供大家参考. 主要功能代码如下: 复制代码 代码如下: import java.awt.*; import javax.swing.*; import java.awt.event.*; public class Main extends JFrame implements ActionListener{         private static final long serialVersionUID = 1L;      

  • java实现单人版五子棋游戏

    本文实例讲述了java实现的五子棋游戏代码,分享给大家供大家参考,具体代码如下 package gyb.exam; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.Graphics; import java.awt.Point; import java.awt.Toolkit; import java.awt.

随机推荐