黑白棋的设计

代码如下:

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

从0开始 Java实习 黑白棋相关推荐

  1. c++课程设计——黑白棋(QT实现+minmax算法实现ai版)

    关联:NEU 东北大学 本篇将大致描述基础思路,后续会添加相应的演示视频和整个工程文件 首先我将大致描述一下我的创作进度 1.先完成棋盘的绘制(QT仅绘制棋盘) mainwindow.h #ifnde ...

  2. JAVA黑白棋之算法浅析

     引言   本为主要对我在开发JAVA黑白棋人机算法过程中所用的博弈思想.估值函数.搜索算法分3个方面进行了阐述,由于本人水平有限,如果大家希望了解更多有关黑白棋博弈策略以及人机算法的深入的理论研究, ...

  3. java黑白棋原码_JAVA课程设计黑白棋源代码

    JAVA课程设计黑白棋源代码 JAVA课程设计黑白棋源代码|java课程设计|数据库课程设计|计算机课程设计|精品课程网站设计 import java.awt.*; import javax.swin ...

  4. 网络黑白棋(翻转棋) v2.0 怎么用

    Welcome to my blog! <script language="javascript" src="http://avss.b15.cnwg.cn/cou ...

  5. Java结课作业——黑白棋

    Java结课作业--局域网联机黑白棋(翻转棋) 出售项目.项目包括主机端代码(黑棋代码)和客户端代码(白棋代码),重写的MyJLabel类和图片文件.请联系作者购买

  6. python 黑白棋_python-黑白棋游戏需要说明

    黑白棋是一款优雅简单的游戏.我将使用伪C#/ Java语言来解释一些概念,但是您可以将它们转换为Python. 要将其分解为最简单的组件,您有两个基本要求: 代表游戏板的二维数组: gameBoard ...

  7. 黑白棋,又叫翻转棋(Reversi)、苹果棋或奥赛罗棋(Othello)。棋盘共有8行8列共64格。开局时,棋盘正中央的4格先置放黑白相隔的4枚棋子。双方轮流落子,只要落子和棋盘上任一枚己方的棋子

    黑白棋,又叫翻转棋(Reversi).苹果棋或奥赛罗棋(Othello).棋盘共有8行8列共64格. 开局时,棋盘正中央的4格先置放黑白相隔的4枚棋子.双方轮流落子,只要落子和棋盘上任一枚己方的棋子在 ...

  8. 黑白棋(Othello)

    其实这篇学习总结应该早就要写的,但是对技术博客确实把握的不到位,总觉得语言不够生动,表达也略显牵强,除了贴几行代码,中间的技术点就透漏的不太多了,经过一个多月的沉沦之后,这篇本来要被毙掉的心得又被我拿 ...

  9. 黑白棋出现pass 的条件 java_JAVA黑白棋之学习感悟

    前言 这是我来到蓝杰之后的第一个学习感悟,阶段成果也是我第一个觉得小有成就的作品,不在于所用的知识有多么高深,而在与这是第一个凝结了失败.努力.成功这样颇有曲折经历的项目,使我收获颇多. 下面切入正题 ...

最新文章

  1. 老板和员工是什么关系?
  2. 三月苏州健康小贴士!!!健康生活从我做起
  3. [LeetCode] Palindrome Number Valid Palindrome - 回文系列问题
  4. jmetery压力测试工具
  5. 兼容FF,IE的纯CSS下拉菜单
  6. java iterator获取索引_2020年Java面试题最新整理(1625)
  7. 计算机科学与技术导论%1计算机网络,汕头大学计算机专业课程计划
  8. 10分钟JAVA从入门到放弃
  9. Mixamo骨骼转为Unreal骨骼方法(1)
  10. 邀请函 · Android 9 Pie 技术分享会直播
  11. jsp 登陆成功后,显示登录的用户名
  12. BGP综合认知及配置
  13. Matlab:数值积分与符号计算
  14. android 电池容量修改,Android 使用adb查看和修改电池信息
  15. MySQL在Windows和Linux平台上多版本多实例安装配置方法(5.5、5.6、5.7、8.0)
  16. vue-happy-scroll实现上拉加载更多(vue)
  17. 《推荐系统实践》- 项亮
  18. MapReduce 运行机制
  19. 【linux基础】18、进程管理工具
  20. Typecho 免费“简博客”主题

热门文章

  1. 快速排序 动图_Java十大排序算法最强总结
  2. linux mysql 分区_Linux :linux磁盘分区(普通分区2T以内),安装免安装版mysql(tar.gz)...
  3. centos rpm安装mysql5.5_CentOS下以RPM方式安装MySQL5.5
  4. mysql函数和索引冲突问题_Mysql索引常见问题汇总
  5. 如何导出久其报表所有数据_如何选择好的HR软件
  6. python访问文件下载地址_用Python脚本去获得skydrive上文件的真实地址链接 + 提供脚本下载v2012-01-18...
  7. C语言 | 为什么写这三行代码
  8. C++实现简单走迷宫的代码
  9. Python3解题:二叉树路径总和问题
  10. html jq移到出现内容,jquery操作html元素之( 获得内容和属性)