操作说明

菜的像个弟弟,大家不要嘲笑

开始之后默认白棋先走,(通过输入坐标的形式来下棋),如果五子连心,游戏结束

package com.jh.test206;import java.util.Scanner;public class FiveChessGame206 {private final int N = 17;private int score =0 ;private boolean gameover = false;private char[][] fiveChess = new char[N+1][N+1];private Scanner cin = new Scanner(System.in);private boolean who_am_i = true;private void init() {fiveChess[0][0] = ' ';for (int i = 1; i < N; i++) {if (i <= 10) {fiveChess[0][i] = (char) ('0' + i - 1);} else {fiveChess[0][i] = (char) ('a' + i - 11);}}for (int j = 1; j < N; j++) {if (j <= 10) {fiveChess[j][0] = (char) ('0' + j - 1);} else {fiveChess[j][0] = (char) ('a' + j - 11);}}for (int i = 1; i < N; i++) {for (int j = 1; j < N; j++) {fiveChess[i][j] = '*';}}}private void printUI() {for (int i = 0; i < N; i++) {for (int j = 0; j < N; j++) {System.out.print(fiveChess[i][j] + "  ");}System.out.println();}}private boolean judge(int x, int y, boolean who_am_i) {if (who_am_i) {/*** 横坐标判断*/for (int i = y; i >= 0; i--) {if (fiveChess[x][i] == '#') {score++;} elsebreak;}if (score > 5) {System.out.println("白方胜");return true;}for (int i = y; i < N; i++) {if (fiveChess[x][i] == '#') {score++;} elsebreak;}if (score > 5) {System.out.println("白方胜");return true;}score = 0;/*** 纵坐标判断*/for (int i = x; i >= 0; i--) {if (fiveChess[i][y] == '#') {score++;} elsebreak;}if (score > 5) {System.out.println("白方胜");return true;}for (int i = x; i < N; i++) {if (fiveChess[i][y] == '#') {score++;} elsebreak;}if (score > 5) {System.out.println("白方胜");return true;}score = 0;/*** 反斜杠判断*/for (int i = x, j = y; i >= 0 && y >= 0; i--, j--) {if (fiveChess[i][j] == '#') {score++;} elsebreak;}if (score > 5) {System.out.println("白方胜");return true;}for (int i = x, j = y; i < N && y < N; i++, j++) {if (fiveChess[i][j] == '#') {score++;} elsebreak;}if (score > 5) {System.out.println("白方胜");return true;}score = 0;/*** 斜杠判断*/for (int i = x, j = y; i < N && y >= 0; i++, j--) {if (fiveChess[i][j] == '#') {score++;} elsebreak;}if (score > 5) {gameover = true;System.out.println("白方胜");}for (int i = x, j = y; i >= 0 && y < N; i--, j++) {if (fiveChess[i][j] == '#') {score++;} elsebreak;}if (score > 5) {gameover = true;System.out.println("白方胜");}return false;} else {/*** 横坐标判断*/score = 0;for (int i = y; i >= 0; i--) {if (fiveChess[x][i] == '@') {score++;} elsebreak;}if (score > 5) {System.out.println("黑方胜");return true;}for (int i = y; i < N; i++) {if (fiveChess[x][i] == '@') {score++;} elsebreak;}if (score > 5) {System.out.println("黑方胜");return true;}score = 0;/*** 纵坐标判断*/for (int i = x; i >= 0; i--) {if (fiveChess[i][y] == '@') {score++;} elsebreak;}if (score > 5) {System.out.println("黑方胜");return true;}for (int i = x; i < N; i++) {if (fiveChess[i][y] == '@') {score++;} elsebreak;}if (score > 5) {System.out.println("黑方胜");return true;}score = 0;/*** 反斜杠判断*/for (int i = x, j = y; i >= 0 && y >= 0; i--, j--) {if (fiveChess[i][j] == '@') {score++;} elsebreak;}if (score > 5) {System.out.println("黑方胜");return true;}for (int i = x, j = y; i < N && y < N; i++, j++) {if (fiveChess[i][j] == '@') {score++;} elsebreak;}if (score > 5) {System.out.println("黑方胜");return true;}score = 0;/*** 斜杠判断*/for (int i = x, j = y; i < N && y >= 0; i++, j--) {if (fiveChess[i][j] == '@') {score++;} elsebreak;}if (score > 5) {System.out.println("黑方胜");return true;}for (int i = x, j = y; i >= 0 && y < N; i--, j++) {if (fiveChess[i][j] == '@') {score++;} elsebreak;}if (score > 5) {System.out.println("黑方胜");return true;}return false;}}private int change(char number) {int numbers = (int) number;if (numbers >= 48 && numbers <= 57)return numbers - 48 + 1;else if (numbers >= 97 && numbers <=102)return numbers - 97 + 10+1 ;elsereturn -1;}private boolean noRepeat(int x, int y) {if (fiveChess[x][y] == '*') {return true;} else {System.out.println("此位置已有棋子,请重新下棋");return false;}}private void playChess() {char inputx, inputy;if (who_am_i == true) {System.out.println("请白色棋子方下棋,请输入坐标(z,y)");} else {System.out.println("请黑色棋子方下棋,请输入坐标(x,y)");}inputx = cin.next().charAt(0);inputy = cin.next().charAt(0);int x = change(inputx);// changeint y = change(inputy);// changeif (x == -1 || y == -1) {System.out.println("棋子越界,请重新下棋");}if (x != -1 && y != -1 && noRepeat(x, y)) {if (who_am_i == true) {fiveChess[x][y] = '#';} else {fiveChess[x][y] = '@';}if (judge(x, y, who_am_i))gameover = true;who_am_i = !who_am_i;score = 0;}}private void beginner() {System.out.println("请选择,白方(0),或者黑方(1)下棋(默认白子先行)");char begin = cin.next().charAt(0);if (begin == '1') {who_am_i = false;}}public void run() {init();printUI();beginner();do {playChess();printUI();} while (gameover == false);}public static void main(String[] args) {FiveChessGame206 demo = new FiveChessGame206();demo.run();}
}

五子棋——控制台版本相关推荐

  1. 2048——Java控制台版本

    前情提要,祝2021年的蓝桥杯小伙伴成绩突出. 贪心.杂凑.递归.分类.评分.哈希.共识.聚类.分治.启发式.粒子群.最大期望.最小完成时间.序列最小优化....算法无数,但是基础类似,无非坐标处理. ...

  2. 去除代码行号的一个小程序(控制台版本)

    清风竹林发布了去除代码行号的一个小程序,确实方便大家收集一些文章代码,但个人认为象这样的小东东,要使广大网友能拿来就用,用.Net 2.0做成WinForm,有点贵族化了,于是动手整出个平民化的控制台 ...

  3. PjComm:控制台版本的串口调试助手

    为了学习C#,所以,自己动手,开发了一个小小的控制台版本的串口调试助手PjComm,截图如下: 上图中的蓝色背景的字符,为热键.在使用SendData时,若串口没有打开,则自动打开.若已经打开,会暂时 ...

  4. 农场游戏开发记录十七(控制台版本完成)

    今天,已过12点应该是昨天,终于把控制台版本的农场游戏开发完成了.说是开发有点厚脸皮,因为我自己确实没写过这么成体系的代码.成就感还是挺充足的.代码就不在这里放了,另外上传.这里放一点运行时的截图吧.

  5. 13.JavaAPI(DAO模式+图书管理系统控制台版本)

    目录 一.理解程序设计分层的思想 二.DAO设计模式的组成以及各部分的开发 2.1 概述 2.2 DAO模式作用 2.3 DAO模式组成 三.DAO模式实现图书信息管理系统控制台版本之增删改查 3.1 ...

  6. 三国杀java游戏_计算机毕业课程设计源码-131Java三国杀游戏控制台版本

    file://C:\Users\Administrator\Desktop\Java三国杀游戏控制台版本 (1 folders, 3 files, 43.90 MB, 44.11 MB in tota ...

  7. 五子棋c语言代码 贴吧,控制台版本的五子棋游戏

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 需求定义: 编写程序实现两人互玩的五子棋游戏.游戏开始时要求在控制台输出以下棋盘,然后提示黑方和白方下子,玩家从命令行输入落子坐标,如:1-2,表示在第二 ...

  8. 五子棋c语言代码ppt答辩,C语言案例:控制台版本的五子棋游戏【代码】

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 return true; } x++; } return false; } bool isLeftInclinedWin(bool isBlack,int ...

  9. 五子棋开发案列c语言,C语言案例:控制台版本的五子棋游戏【代码】

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 return true; } x++; } return false; } bool isLeftInclinedWin(bool isBlack,int ...

最新文章

  1. C#设置WebBrowser IE浏览器版本
  2. python 字符串格式化语法_Python:字符串格式化
  3. Latex 合并pdf文档
  4. TensorFlow中RNN实现的正确打开方式(转)
  5. 实用的SQL函数(用于将符合条件的某列所有记录合成一行)
  6. 三国佚事--巴蜀危机
  7. 解决Tuxera NTFS for Mac软件安装问题 手动批准mac内核扩展
  8. 在 Silverlight 中管理动态内容交付,第 1 部分
  9. 动态规划实战16 leetcode-198. House Robber
  10. 利用GPU实现大规模动画角色的渲染
  11. [Math] 常见的几种最优化方法
  12. html如何删除表单中的行,用jQuery remove()方法删除表格行(table tr)的写法
  13. pg_repack安装及使用
  14. 全集然文明nbsp;(请点击图标进…
  15. android耳机上报流程,Android 耳机插入过程分析
  16. 浅谈网站的logo设计
  17. jqurey怎么写入html,html如何写入和创建功能到jquery
  18. C++初级主题--名字空间域和类域
  19. @Alias使用技巧
  20. 软件开发常用工具汇总百度云网盘

热门文章

  1. 对标高竞争性,我们郑重纳入了这一机制——MDU价格保障机制之回购
  2. EasyPOI 根据模板导出excel时,无法自适应行高得解决方案记录
  3. 使用iTools、PP助手清理垃圾前后目录对比图
  4. 十四、pygame做一个成语填空游戏
  5. android wifi身份验证,连接wifi出现“身份验证出现问题”如何解决
  6. 艾莫尔研究院基于Karmada的落地实践
  7. 丰乳细臀——读《丰乳肥臀》
  8. 世界上并无汉语编程——正如世界上并无英语编程
  9. Kafka消费组(consumer group)(转)
  10. 爬虫项目十:Python苏宁易购商品数据、评论数据爬取