从0开始 Java实习 黑白棋

黑白棋的设计

代码如下:

import java.util.*;
public class Chess{char[][] chess = new char[16][16];public static void main(String args[]){       Scanner in = new Scanner(System.in);Chess ch = new Chess();ch.init();  ch.output();int tag = 0;int nn = 0;while(nn < 225){System.out.println("please enter your place to put the chess");int x = in.nextInt();int y = in.nextInt();if(ch.set(x,y,nn) == false)continue;if(ch.judgeColumn(x,y)==true){System.out.println(ch.chess[x][y] + "win");tag = 1;break;}else if(ch.judgeRow(x,y)==true){System.out.println(ch.chess[x][y] + "win");tag = 1;break;}else if(ch.judgeLUtoRD(x,y)==true){System.out.println(ch.chess[x][y] + "win");tag = 1;break;}else if(ch.judgeRUtoLD(x,y)==true){System.out.println(ch.chess[x][y] + "win");tag = 1;break;}elsenn++;       }if(tag == 0)System.out.println("平局");in.close();}boolean set(int ii, int jj,int nn){if(ii <1 || jj > 15 || ii > 15 || jj <1)return false;else{if(chess[ii][jj] == '+'){if(nn%2 == 1){chess[ii][jj] = '●';}else{chess[ii][jj] = '○';}output();return true;}else{System.out.println("you can't put your chess on this place");return false;}           }       }void init(){System.out.println("this is a 15*15 chess ");for(int i = 1; i <= 15; i++){for(int j = 1 ; j <= 15; j++){chess[i][j] = '+';}}}void output(){for(int i = 1 ; i <= 15; i++){for(int j = 1 ; j <= 15; j++){System.out.print(chess[i][j] + "  ");}System.out.println();}System.out.println();}//judge columnboolean judgeColumn(int ii,int jj){int i = 1;int j = 1; while(ii-i >= 1 && chess[ii-i][jj] == chess[ii][jj]){i += 1;}while(ii+j <= 15 && chess[ii+j][jj] == chess[ii][jj]){j += 1;}if(i+j-1>=5)return true;elsereturn false;}//judge rowboolean judgeRow(int pi, int pj){int i = 1;int j = 1;while(pj-i>=1&&chess[pi][pj-i]==chess[pi][pj])i+=1;while(pj+j<=15&&chess[pi][pj+j]==chess[pi][pj])j+=1;if(i+j-1 >= 5)return true;elsereturn false;}//judge from left up to right downboolean judgeLUtoRD(int pi, int pj){int i = 1;int j = 1;while(pi+i<=15 && pj-i>=0 && chess[pi+i][pj-i] == chess[pi][pj])i+=1;while(pi-j>=0 && pj+j <= 15 && chess[pi-j][pj+j] == chess[pi][pj])j++;if(i+j-1>=5)return true;elsereturn false;       }//jduge from right up to left downboolean judgeRUtoLD(int pi,int pj){int i = 1;int j = 1;while(pi+i <= 15 && pj+i <= 15 && chess[pi+i][pj+i] == chess[pi][pj])i+=1;while(pi-j >= 0 && pj-j >= 0 && chess[pi-j][pj-j] == chess[pi][pj])j+=1;if(i+j-1>=5)return true;elsereturn false;}
}

转载于:https://www.cnblogs.com/pprp/p/7856927.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/354555.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如果在这样的环境中写代码,会不会很高效

桌面环境分享系列又来了。我会把平时看到的好的桌面布置分享给大家&#xff0c;帮助大家在桌面整理和打造方面提供一些新的想法和创意。如何评价一个开发桌面的好坏&#xff0c;首先一定要清爽整洁&#xff0c;该有的家伙事儿一定要有。不是要看上去要有多高大上&#xff0c;重…

为什么选择SpringBoot?

使用Spring MSpring进行许可是一种非常流行的基于Java的框架&#xff0c;用于构建Web和企业应用程序。 与许多其他只关注一个领域的框架不同&#xff0c;Spring框架通过其投资组合项目提供了广泛的功能来满足现代业务需求。 Spring框架提供了以多种方式&#xff08;例如XML &a…

wamp2.5可用php5.6,局域网访问,多站点配置

1.用php5.6 直接下载个wamp3.0的&#xff0c;那里的php支持5.6&#xff0c;安装之后把php5.6的文件夹剪切到wamp2.5的放php的文件夹&#xff0c;然后wamp那里就有php5.6的选择了&#xff0c;选择后就可以用了 2.局域网访问 打开apache的配置文件&#xff0c;然后搜索Require lo…

Vue 页面如何监听用户预览时间

最近的业务中涉及到这样一个需求&#xff0c;在线培训的系统需要知道用户对某个在线预览的页面追踪用户的预览时长。初步我们首先想到借助 Vue 页面的生命周期函数 mounted 和 destroyed&#xff0c;分别在其中加入开始计时和清除计时的逻辑&#xff0c;通过后台的接口上报对应…

一个追求高效的学习者手机里装有哪些APP?(转)

转载&#xff1a;http://www.jianshu.com/p/f568c8d8b6bb 1、录音软件-Recordium 参加活动&#xff0c;如果不想错过活动现场的经常片段&#xff0c;速记又来不及&#xff0c;那就选择录音吧。小六之前都使用录音笔&#xff0c;但是自从有了这个APP之后&#xff0c;在开会&…

spring social_Spring Social入门

spring social像我一样&#xff0c;无论是添加简单的Facebook“赞”按钮&#xff0c;一大堆“共享”按钮还是显示时间轴信息&#xff0c;您都不会注意到当前对应用程序“社交化”的热衷。 每个人都在做这件事&#xff0c;包括Spring的家伙&#xff0c;事实上&#xff0c;他们提…

Vue 页面如何利用生命周期函数监听用户预览时长

最近的业务中涉及到这样一个需求&#xff0c;在线培训的系统需要知道用户对某个在线预览的页面追踪用户的预览时长。初步我们首先想到借助 Vue 页面的生命周期函数 mounted 和 destroyed&#xff0c;分别在其中加入开始计时和清除计时的逻辑&#xff0c;通过后台的接口上报对应…

iOS 11 UICollectionView顶部出现白色间隔的问题

iOS11 UICollectionView顶到屏幕顶端会出现一个20高度的白色间隔&#xff0c;是由于UICollectionView的自动调整功能为状态栏留出的位置 只需在创建UICollectionView时加入如下代码关闭自动调整&#xff1a; 该属性是iOS11新加入的&#xff0c;所以一定要在前面加上判断&#x…

项目中的富文本编辑器该如何选择?

项目中经常需要用到富文本编辑器的时候&#xff0c;而常见的富文本编辑器都有哪些&#xff1f;该如何选择&#xff1f; 先看看市面上都有哪些可用的富文本编辑器&#xff1a; TinyMCE&#xff08;插件式的&#xff0c;支持 Vue&#xff0c;React&#xff0c;Angular 框架&…

根据自己的博客数据统计国内IT人群

装上百度统计有一段时间了&#xff0c;今天突然找出报表看看&#xff0c;发现一个很有意思的事情。访问来源TOP5依次是&#xff1a;北京&#xff0c;上海&#xff0c;深圳&#xff0c;杭州&#xff0c;广州 虽然大部分文章都是当时特别白的时候记录下来的遇到过的问题&#xff…

Vue刷新页面有哪几种方式

在Vue项目中&#xff0c;刷新当前页除了 window.reload()&#xff0c;你还能想到什么办法&#xff1f;而且这种办法会重新加载资源出现短暂的空白页面。体验不是很好。 在某个详情页面的时候&#xff0c;我们经常需要通过路由中的详情 id 去获取内容&#xff0c;当我们在不同的…

java web服务_将Java服务公开为Web服务

java web服务本教程解决了开发人员面临的最实际的情况。 大多数时候&#xff0c;我们可能需要将某些现有服务公开为Web服务。 在项目生命周期的不同阶段可能会遇到这种情况。 如果这是初始阶段&#xff0c;那么您几乎是安全的&#xff0c;您可以为此做好充分的准备。 但是&…

python文件打开方式详解——a、a+、r+、w+区别

第一步 排除文件打开方式错误&#xff1a;r只读&#xff0c;r读写&#xff0c;不创建w新建只写&#xff0c;w新建读写&#xff0c;二者都会将文件内容清零&#xff08;以w方式打开&#xff0c;不能读出。w可读写&#xff09;**w与r区别&#xff1a;r&#xff1a;可读可写&#…

程序员的工作周报该怎么写?

大多数公司都有写周报的要求&#xff0c;为什么要写周报&#xff1f;很多流于形式的周报&#xff0c;会让员工感到厌烦。特别是程序员&#xff0c;你让他写代码可以&#xff0c;写这种篇幅稍微大点的文字&#xff0c;简直要了他的命。周报作为一种文字载体&#xff0c;是下级向…

一个快速生成元素背景的 React 组件

在开发过程中&#xff0c;我们经常会遇到使用背景的地方&#xff0c;比如登录页面&#xff0c;用户信息页面&#xff0c;封面图…… 寻找契合业务主题的背景十分耗费精力&#xff0c;总觉得做的背景不合适&#xff0c;如果直接用图片呢&#xff0c;逻辑是比较简单&#xff0c;但…

引入ReactiveInflux:用于Scala和Java的无阻塞InfluxDB驱动程序,支持Apache Spark

我很高兴宣布Pygmalios开发的ReactiveInflux的第一个发行版。 InfluxDB错过了Scala和Java的非阻塞驱动程序。 不变性&#xff0c;可测试性和可扩展性是ReactiveInflux的关键功能。 加上对Apache Spark的支持&#xff0c;它是首选武器。 https://github.com/pygmalios/reactive…

python之路_前端基础之Bootstrap 组件

文档内容参考地址&#xff1a;http://v3.bootcss.com/components/ 一、图标 如下例&#xff0c;Star文本前有一个空格&#xff1a; <button type"button" class"btn btn-default btn-lg"><span class"glyphicon glyphicon-star" aria-h…

内卷之下,前端工程师如何自救

近两年的职场内卷现象越来越严重&#xff0c;996 工作制在各大公司已经很常见&#xff0c;甚至有更甚者&#xff0c;告诉你我们公司的前端是如何内卷的&#xff1f;为了数字化转型&#xff0c;公司要为产品平台化打造一个办公协同的在线管理系统&#xff0c;来规范化项目流程管…

Java核心技术 卷1 多线程----线程安全的集合(4)

如果多线程要并发的修改一个数据结构&#xff0c;例如散列表&#xff0c;那么很容易会破坏这个数据结构。一个线程可能要开始向表中插入一个新元素。假定在调整散列表各个桶之间的链接关系的过程中&#xff0c;被剥夺了控制权。如果另一个线程也开始遍历同一个链表&#xff0c;…

如何快速实现 Wordpress 博客域名更换?

如题&#xff0c;如何快速更换使用 Wordpress 搭建的网站、博客的域名&#xff0c;除了在域名服务商那更换域名的解析和 web服务器端的配置外&#xff0c;还应该从数据库端做些什么&#xff1f;熟悉 Wordpress 的用户都知道在 Wordpress 后台&#xff0c;设置 --> 常规 里有…