1.  
井字棋游戏初步完成
实现功能:输入位置数据->打印棋盘->判断是否胜利->继续游戏/退出游戏
缺点:没有清屏函数   判断胜利方法太过无脑 
 
  1. package MYGAME;
  2.  
  3. import java.util.Scanner;
  4.  
  5. public class Mygame {
  6. static int winnerx = 0;
  7. static int winnero = 0;
  8. static int row; // 行
  9. static int rank; // 行
  10. static int[][] x = new int[3][3]; // X玩家的棋子
  11. static int[][] o = new int[3][3]; // O玩家的棋子
  12.  
  13. public static void main(String[] args) {
  14. inputmap();
  15. for (int p = 0; p < 9; p++) {
  16. if (p % 2 == 1) {
  17. oplay();
  18. if (winnero==1){
  19. System.out.println("o选手胜利");
  20. break;
  21. }
  22. } else {
  23. xplay();
  24. if (winnerx==1){
  25. System.out.println("x选手胜利");
  26. break;
  27. }
  28. }
  29. }
  30. System.out.println("游戏结束");
  31. }
  32.  
  33. // 输出棋盘
  34. public static void inputmap() {
  35. System.out.println(" ");
  36. for (int m = 0; m < 3; m++) {
  37. for (int n = 0; n < 3; n++) {
  38. if (x[m][n] == 1) {
  39. System.out.print("x|");
  40. } else if (o[m][n] == 1) {
  41. System.out.print("o|");
  42. } else {
  43. System.out.print(" |");
  44. }
  45. }
  46. System.out.println(" ");
  47. }
  48. }
  49.  
  50. // x选手开始下棋
  51. public static void xplay() {
  52. Scanner input = new Scanner(System.in);
  53. System.out.print("轮到x选手下棋\n");
  54. System.out.print("请选择第几行\n");
  55. row = input.nextInt() - 1;
  56. System.out.print("请选择第几列\n");
  57. rank = input.nextInt() - 1;
  58. x[row][rank] = 1;
  59. inputmap();
  60. win();
  61. }
  62.  
  63. // o选手开始下棋
  64. public static void oplay() {
  65. Scanner input = new Scanner(System.in);
  66. System.out.print("轮到o选手下棋\n");
  67. System.out.print("请选择第几行\n");
  68. row = input.nextInt() - 1;
  69. System.out.print("请选择第几列\n");
  70. rank = input.nextInt() - 1;
  71. o[row][rank] = 1;
  72. inputmap();
  73. win();
  74. }
  75.  
  76. // 手动清屏=。=
  77. public static void cleanscreen() {
  78. for (int i = 0; i < 50; i++) {
  79. System.out.println("");
  80. }
  81. }
  82.  
  83. //判断是否胜利
  84. public static void win() {
  85. if (
  86. (x[0][0] == 1 & x[1][0] == 1 & x[2][0] == 1)||
  87. (x[0][1] == 1 & x[1][1] == 1 & x[2][1] == 1)||
  88. (x[0][2] == 1 & x[1][2] == 1 & x[2][2] == 1)||
  89. (x[0][0] == 1 & x[0][1] == 1 & x[0][2] == 1)||
  90. (x[1][0] == 1 & x[1][1] == 1 & x[1][2] == 1)||
  91. (x[2][0] == 1 & x[2][1] == 1 & x[2][2] == 1)||
  92. (x[0][0] == 1 & x[1][1] == 1 & x[2][2] == 1)||
  93. (x[0][2] == 1 & x[1][1] == 1 & x[2][0] == 1)
  94. ){
  95. winnerx=1;
  96. }
  97. if (
  98. (o[0][0] == 1 & o[1][0] == 1 & o[2][0] == 1)||
  99. (o[0][1] == 1 & o[1][1] == 1 & o[2][1] == 1)||
  100. (o[0][2] == 1 & o[1][2] == 1 & o[2][2] == 1)||
  101. (o[0][0] == 1 & o[0][1] == 1 & o[0][2] == 1)||
  102. (o[1][0] == 1 & o[1][1] == 1 & o[1][2] == 1)||
  103. (o[2][0] == 1 & o[2][1] == 1 & o[2][2] == 1)||
  104. (o[0][0] == 1 & o[1][1] == 1 & o[2][2] == 1)||
  105. (o[0][2] == 1 & o[1][1] == 1 & o[2][0] == 1)
  106. ){
  107. winnero=1;
  108. }
  109. }
  110.  
  111. }

Java 小游戏 - 井字棋 v1.0 (初步完成) (2018.4.16更新)的更多相关文章

  1. Pascal小游戏 井字棋

    一个很经典的井字棋游戏 Pascal源码Chaobs奉上 注意:1.有的FP版本不支持汉语,将会出现乱码.2.别想赢电脑了,平手不错了. 井字过三关: program TicTacToe; uses ...

  2. C++小游戏——井字棋

    #include<cstdio> #include<windows.h> #include<ctime> int main() { srand(time(NULL) ...

  3. Java实现简单井字棋

    Java第一次实验,老师让做一个井字棋,电脑随机下棋. 然后就想能不能聪明一点,可以判断出走哪一步棋:然后只能做到不会输,还是不够聪明,只能呆板地堵住用户,smartRobot的第三个判断逻辑找不到最 ...

  4. python 游戏(井字棋)

    1. 游戏思路和流程图 实现功能,现实生活中的井字棋玩法 游戏流程图 2. 使用模块和游戏提示 import random def game_info(): print('欢迎来到井字棋游戏') pr ...

  5. [HTML5实现人工智能]小游戏《井字棋》发布,据说IQ上200才能赢

    一,什么是TicTacToe(井字棋)   本 游戏 为在下用lufylegend开发的第二款小游戏.此游戏是大家想必大家小时候都玩过,因为玩它很简单,只需要一张草稿纸和一只笔就能开始游戏,所以广受儿 ...

  6. 『HTML5实现人工智能』小游戏《井字棋》发布,据说IQ上200才能赢【算法&代码讲解+资源打包下载】

    一,什么是TicTacToe(井字棋) 本游戏为在下用lufylegend开发的第二款小游戏.此游戏是大家想必大家小时候都玩过,因为玩它很简单,只需要一张草稿纸和一只笔就能开始游戏,所以广受儿童欢迎. ...

  7. Java井字棋游戏

    试着写了一个井字棋游戏,希望各位能给予一些宝贵的建议. 一.棋盘类 package 井字棋游戏; public class ChessBoard { private int number; Perso ...

  8. 井字棋小游戏(C语言)

    最近沉迷于<NetHack>.<DCSS>等字符游戏,对其很感兴趣,于是用C语言写了个字符界面的井字棋小游戏.欢迎大家指教. 编写时遇到了一些问题,我原先准备用循环,直到读取到 ...

  9. 程序设计入门—Java语言 第五周编程题 2井字棋(5分)

    2 井字棋(5分) 题目内容: 嗯,就是视频里说的那个井字棋.视频里说了它的基本思路,现在,需要你把它全部实现出来啦. 你的程序先要读入一个整数n,范围是[3,100],这表示井字棋棋盘的边长.比如n ...

随机推荐

  1. APP自动化针对PO模式进行二次封装之basepage

    APP自动化跟WEB自动化所使用的框架基本一样,都是采用的PO模式结合pytest框架编写自动化测试脚本,为了提高代码的复用性.稳定性和易维护性,我们针对PO模式进行了二次封装,将日志,等待以及异常截 ...

  2. jquery 获取元素(父节点,子节点,兄弟节点)

    费话不多说,直接上代码jquery 获取元素 $("#test1").parent(); // 父节点 $("#test1").parents(); // 全部 ...

  3. PHP 将内容写入word pdf 换行符不生效咋办

    答:把单引号换成双引号就能解析换行符(\n)了,

  4. 利用百度文字识别API识别图像中的文字

      本文将会介绍如何使用百度AI开放平台中的文字识别服务来识别图片中的文字.百度AI开放平台的访问网址为:http://ai.baidu.com/ ,为了能够使用该平台提供的AI服务,你需要事先注册一 ...

  5. Flutter竟然发布了1.5版本!!!!

    2018年2月,Flutter推出了第一个Beta版本,在2018年12月5日,Flutter1.0版本发布,当时用了用觉得这个东西非常好用,对于当时被RN搞的头皮发麻的我来说简直是看到了曙光.而在昨 ...

  6. C/C++ 中的宏/Macro

    宏(Macro)本质上就是代码片段,通过别名来使用.在编译前的预处理中,宏会被替换为真实所指代的代码片段,即下图中 Preprocessor 处理的部分. C/C++ 代码编译过程 - 图片来自 nt ...

  7. C++ float vs double

    精度 相比 float ,double 从其名字上已经展示出,它的精度是前者的两倍,他们的精度分别为: float: 7 位数字 double: 15 位数字 可通过如下的示例看出,在重复进行计算时, ...

  8. C#构造函数、属性的应用

    using System; using System.Collections.Generic; using System.Text; namespace test { class Program { ...

  9. 搜索某个目录下所有jar包中的mapper目录下的xml文件

    rm -rf /mapper/* find /data/app/app-*/lib ! -path "*xnpush*" ! -path "*portal*" ...

  10. 用html,CSS 写一个静态的博客网页

    <!doctype html> <html> <br/><br/><br/> <head> <meta http-equi ...