这篇文章主要给大家介绍了关于Java控制台版五子棋的简单实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

设计一个10*10的棋盘:

行号、列号单独输出

package yu;

import java.util.Scanner;

public class WuZiQi {

/*● 棋子1

○ 棋子2

*

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

String [] [] qipan=new String [10] [10];

//初始化棋盘:

for(int k=0;k

for(int q=0;q

qipan[k][q]="+ ";

}

}

//输出棋盘:

System.out.print(" ");

for(int i=0;i<10;i++){

System.out.print(i+" ");

}

System.out.println();

for(int k=0;k

System.out.print(k+" ");

for(int q=0;q

System.out.print(qipan[k][q]);

}

System.out.println();

}//加入Java开发交流君样:756584822一起吹水聊天

输入坐标下棋(x,y),并作容错处理:

保证输入的坐标是(x,y);

下标越界处理;

判断此坐标有无棋子;

确保坐标输入为数字。

int x,y;//储存下棋坐标:

Scanner sc=new Scanner(System.in);

boolean flag=true;//区分黑白棋;

while(true){

System.out.println("请输入坐标下棋,坐标格式(x,y)");

String str=sc.nextLine();

String [] str1=str.split(",");

//容错处理1

if(str1.length!=2){

System.out.println("坐标输入错误,请重新输入!!");

}else{

//容错处理3

try{

x=Integer.parseInt(str1[0]);

y=Integer.parseInt(str1[1]);

}catch(Exception e){

System.out.println("坐标输入错误,请重新输入!!");

continue;

}

//容错处理2--下标越界

if(x>=10||y>=10){

System.out.println("坐标输入错误,请重新输入!!");

}else{

//容错处理--判断当前位置是否有棋子:

//黑白棋:

if(qipan[x][y].equals("+ ")){

if(flag){

qipan[x][y]="● ";

}else{

qipan[x][y]="○ ";

}//加入Java开发交流君样:756584822一起吹水聊天

flag=!flag;

}else{

System.out.println("当前位置已有棋子,请重新输入坐标!!");

continue;

}

//输出棋盘:

System.out.print(" ");

for(int i=0;i<10;i++){

System.out.print(i+" ");

}

System.out.println();

for(int k=0;k

System.out.print(k+" ");

for(int q=0;q

System.out.print(qipan[k][q]);

}

System.out.println();

}

判断是否五子连珠:

8个方向,4条线

上方&下方

左方&右方

左斜上&右斜下

右斜上&左斜下

//判断是否五子连珠:

int count=1;

String currentZiQi=qipan[x][y];//储存当前下的棋子;

//判断上方://加入Java开发交流君样:756584822一起吹水聊天

for(int k=x-1;k>=0;k--){

if(qipan[k][y].equals(currentZiQi)){

count++;

}else{

break;

}

}

if(count>=5){

System.out.println(currentZiQi+"获胜!!!");

break;

}

//判断下方:

for(int k=x+1;k<10;k++){

if(qipan[k][y].equals(currentZiQi)){

count++;

}else{

break;

}

}

if(count>=5){

System.out.println(currentZiQi+"获胜!!!");

break;

}

count=1;//重置count;

//判断左边:

for(int k=y-1;k>=0;k--){

if(qipan[x][k].equals(currentZiQi)){

count++;

}else{

break;

}

}

if(count>=5){

System.out.println(currentZiQi+"获胜!!!");

break;

}

//判断右边:

for(int k=y+1;k<10;k++){

if(qipan[x][k].equals(currentZiQi)){

count++;

}else{

break;

}

}//加入Java开发交流君样:756584822一起吹水聊天

if(count>=5){

System.out.println(currentZiQi+"获胜!!!");

break;

}

count=1;

//判断左上斜边:

for(int k=x-1,j=y-1;k>=0&&j>=0;k--,j--){

if(qipan[k][j].equals(currentZiQi)){

count++;

}else{

break;

}

}

if(count>=5){

System.out.println(currentZiQi+"获胜!!!");

break;

}

//右下斜方:

for(int k=x+1,j=y+1;k<10&&j<10;k++,j++){

if(qipan[k][j].equals(currentZiQi)){

count++;

}else{

break;

}

}

if(count>=5){

System.out.println(currentZiQi+"获胜!!!");

break;

}

count=1;

//左下斜方:

for(int k=x-1,j=y+1;k>=0&&j<10;k--,j++){

if(qipan[k][j].equals(currentZiQi)){

count++;

}else{

break;

}

}

if(count>=5){

System.out.println(currentZiQi+"获胜!!!");

break;

}

//右上斜方:

for(int k=x+1,j=y-1;k<10&&j>=0;k++,j--){

if(qipan[k][j].equals(currentZiQi)){

count++;

}else{

break;

}

}

if(count>=5){

System.out.println(currentZiQi+"获胜!!!");

break;

}

count=1;

}

}

}

}

}

[

image

最新2020整理收集的一些高频面试题(都整理成文档),有很多干货,包含mysql,netty,spring,线程,spring cloud、jvm、源码、算法等详细讲解,也有详细的学习规划图,面试题整理等,需要获取这些内容的朋友请加Q君样:756584822

linux控制台单人五子棋简书,Java控制台版五子棋的简单实现方法相关推荐

  1. 基于python爬虫的论文标题_Python3实现爬取简书首页文章标题和文章链接的方法【测试可用】...

    本文实例讲述了Python3实现爬取简书首页文章标题和文章链接的方法.分享给大家供大家参考,具体如下: from urllib import request from bs4 import Beaut ...

  2. 《Kali Linux高级渗透测试原书第2版》网络渗透测试技术书 无线网络渗透测试详解 黑客攻击与防范实战从入门到精通书

    内容简介: KaliLinux面向专业的渗透测试和审计,集成了大量挑选的检测工具.本书在KaliLinux平台上从一个攻击者的角度来审视网络框架,详细介绍了攻击者"杀链"采取的具体 ...

  3. 简书 java jvm_JVM介绍

    1. 什么是JVM? JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来 ...

  4. 简书 java jvm_详细介绍Java虚拟机(JVM)

    1. JVM生命周期 启动.启动一个Java程序时,一个JVM实例就产生了,任何一个拥有public static void main(String[] args)函数的class都可以作为JVM实例 ...

  5. JAVA联机版五子棋——源码(一个类一个main暴力开发)

    第一次写博客,排版啥的都比较乱,大家不要嫌弃啊. 所谓暴力开发,其实是啥也不会,硬怼哈哈哈.只是刚学会一点JAVA编程,参考网络资源写了个联机版五子棋(支持单机),来这里记录一下学习过程,而且我也是靠 ...

  6. 火狐无法安装屏蔽广告插件-简书屏蔽右侧“热门故事”最简单方法

    看简书学习,右边推荐一堆垃圾广告文,忍不了,遂想办法整治之 火狐限制了ublock adblock等广告屏蔽插件的下载(动蛋糕了大家懂的),如果你的火狐是下面这几种版本,可以如下图修改about:co ...

  7. java中xsl用法_XSL-FO 简单使用方法(java xsl-fo xml)

    XSL-FO 简单使用方法(java & xsl-fo & xml) package testfop; import java.io.File; import java.io.File ...

  8. linux控制台单人五子棋简书,实现一个质量过硬五子棋

    测试棋力在相同配置下,初级水平基本相当于五子棋大师的特级大师水平. 一楼上图: 主页面.png 五子棋的引擎和自定义控件我封装在lib中,可以通过 implementation 'win.regin: ...

  9. linux控制台单人五子棋简书,我的“五子棋”闺蜜

    一位妈妈给儿子烤溶豆,谁成想,竟然烤成了黑色五子棋状,网友都在讨论妈妈的手艺,但我却想起了另外一件与五子棋有关的暖心事.上高中的时候,我可不喜欢学数学了,每次上数学课总觉得自己听懂了,但是下课开始做题 ...

最新文章

  1. 从零开始学Go之接口(一):接口
  2. Linux多任务编程(三)---exec函数族及其基础实验
  3. python爬取+BI分析5000条内衣数据,发现妹子最爱这款文胸
  4. Domain应用之 根据某个Many2one的对象的 X2many对象 过滤
  5. Spring学习之路——简单入门HelloWorld
  6. 桌面圣诞树酷炫特效合集【含动态效果展示及网盘源码分享】
  7. Java多线程为什么使用while循环来调用wait方法
  8. 缓冲区提前释放,导致H264保存及播放错误
  9. android 语音库,安卓系统也能用苹果语音库:Vocalizer TTS语音引擎及语音包合集
  10. 深入浅出MFC笔记(5)
  11. 初级测试开发工程师应该学些什么
  12. windows常用指令大全
  13. collections.Counter 用法
  14. PAT_乙级_1002_筱筱
  15. mysql中计算百分比
  16. matlab rtdemo怎么生成,simulink——RTW自动代码生成简介
  17. 如何在 Linux 中找出内存消耗最大的进程
  18. ASP.NET MVC图片文件上传与下载
  19. Arcgis打包工程文件(map package)
  20. 浅谈JCenter即将被停止服务的事件

热门文章

  1. openstack下
  2. 我的android studio
  3. Paul Rayner认为DDD和敏捷可以共存
  4. php编码处理的文章一篇
  5. etherchannel
  6. socketserver
  7. Teambition CEO齐俊元:大象起舞,现代组织的企业协作
  8. 5月10日优酷殴打腾讯员工那些事
  9. 用opencv抽取视频的帧并保存为连续的图片
  10. NAP客户端计算机隔离测试之五