linux控制台单人五子棋简书,Java控制台版五子棋的简单实现方法
这篇文章主要给大家介绍了关于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控制台版五子棋的简单实现方法相关推荐
- 基于python爬虫的论文标题_Python3实现爬取简书首页文章标题和文章链接的方法【测试可用】...
本文实例讲述了Python3实现爬取简书首页文章标题和文章链接的方法.分享给大家供大家参考,具体如下: from urllib import request from bs4 import Beaut ...
- 《Kali Linux高级渗透测试原书第2版》网络渗透测试技术书 无线网络渗透测试详解 黑客攻击与防范实战从入门到精通书
内容简介: KaliLinux面向专业的渗透测试和审计,集成了大量挑选的检测工具.本书在KaliLinux平台上从一个攻击者的角度来审视网络框架,详细介绍了攻击者"杀链"采取的具体 ...
- 简书 java jvm_JVM介绍
1. 什么是JVM? JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来 ...
- 简书 java jvm_详细介绍Java虚拟机(JVM)
1. JVM生命周期 启动.启动一个Java程序时,一个JVM实例就产生了,任何一个拥有public static void main(String[] args)函数的class都可以作为JVM实例 ...
- JAVA联机版五子棋——源码(一个类一个main暴力开发)
第一次写博客,排版啥的都比较乱,大家不要嫌弃啊. 所谓暴力开发,其实是啥也不会,硬怼哈哈哈.只是刚学会一点JAVA编程,参考网络资源写了个联机版五子棋(支持单机),来这里记录一下学习过程,而且我也是靠 ...
- 火狐无法安装屏蔽广告插件-简书屏蔽右侧“热门故事”最简单方法
看简书学习,右边推荐一堆垃圾广告文,忍不了,遂想办法整治之 火狐限制了ublock adblock等广告屏蔽插件的下载(动蛋糕了大家懂的),如果你的火狐是下面这几种版本,可以如下图修改about:co ...
- java中xsl用法_XSL-FO 简单使用方法(java xsl-fo xml)
XSL-FO 简单使用方法(java & xsl-fo & xml) package testfop; import java.io.File; import java.io.File ...
- linux控制台单人五子棋简书,实现一个质量过硬五子棋
测试棋力在相同配置下,初级水平基本相当于五子棋大师的特级大师水平. 一楼上图: 主页面.png 五子棋的引擎和自定义控件我封装在lib中,可以通过 implementation 'win.regin: ...
- linux控制台单人五子棋简书,我的“五子棋”闺蜜
一位妈妈给儿子烤溶豆,谁成想,竟然烤成了黑色五子棋状,网友都在讨论妈妈的手艺,但我却想起了另外一件与五子棋有关的暖心事.上高中的时候,我可不喜欢学数学了,每次上数学课总觉得自己听懂了,但是下课开始做题 ...
最新文章
- 从零开始学Go之接口(一):接口
- Linux多任务编程(三)---exec函数族及其基础实验
- python爬取+BI分析5000条内衣数据,发现妹子最爱这款文胸
- Domain应用之 根据某个Many2one的对象的 X2many对象 过滤
- Spring学习之路——简单入门HelloWorld
- 桌面圣诞树酷炫特效合集【含动态效果展示及网盘源码分享】
- Java多线程为什么使用while循环来调用wait方法
- 缓冲区提前释放,导致H264保存及播放错误
- android 语音库,安卓系统也能用苹果语音库:Vocalizer TTS语音引擎及语音包合集
- 深入浅出MFC笔记(5)
- 初级测试开发工程师应该学些什么
- windows常用指令大全
- collections.Counter 用法
- PAT_乙级_1002_筱筱
- mysql中计算百分比
- matlab rtdemo怎么生成,simulink——RTW自动代码生成简介
- 如何在 Linux 中找出内存消耗最大的进程
- ASP.NET MVC图片文件上传与下载
- Arcgis打包工程文件(map package)
- 浅谈JCenter即将被停止服务的事件