码迷,mamicode.com
首页 > 其他好文 > 详细

控制台的简单五子棋

时间:2015-03-01 00:19:03      阅读:308      评论:0      收藏:0      [点我收藏+]

标签:

只实现了最基本的功能,玩家下棋和电脑随机下棋。缺乏输入检查,重复下棋检查,判断输赢,人工智能算法等等。

待完善。

 1 import java.io.BufferedReader;
 2 import java.io.InputStreamReader;
 3 
 4 // GoBang(五子棋)
 5 class GoBang {
 6     // 二维数组来模拟一个棋盘
 7     private String[][] board;
 8     // 表示棋盘的长、宽度
 9     private static int BOARD_SIZE = 15;
10     public void initBoard() {
11         // String类可以直接使用,因为java.lang.String包是默认导入的
12         // 直接调用构造器 初始化了长度  确认了15行15列
13         board = new String[BOARD_SIZE][BOARD_SIZE];
14         //为数组赋值"+"
15         for (int i = 0; i < BOARD_SIZE; i++) {
16             for (int j = 0; j < BOARD_SIZE; j++) {            
17                 board[i][j] = "╋";//输入法的特殊字符可以找到
18             }
19         }
20     }
21     //输出在控制台上的方法
22     public void printBoard(){
23         for(int i = 0;i<BOARD_SIZE;i++){
24             for(int j = 0;j<BOARD_SIZE;j++){
25                 System.out.print(board[i][j]);
26             }
27             System.out.println();
28         }            
29     }
30     //此处不处理任何异常
31     public static void main(String[] args) throws Exception{
32         GoBang gb = new GoBang();    //创建一个棋盘对象
33         gb.initBoard();                //初始化棋盘
34         gb.printBoard();            //打印出来    一个由"+"组成的15*15的棋盘出来了
35         //之后通过算法实现下棋功能,获取键盘输入的方法,首先引入一个i o的包
36         //字符、包装流建立在字符流之上                   转换流 把 字节流 转换成 字符流 
37         BufferedReader br = new BufferedReader(        //创建一个BufferedReader对象
38                 new InputStreamReader(System.in));
39         String inputStr = null;  //一个字符串变量            //默认是null,用于循环
40         System.out.println("以 x,y 的格式输入坐标:");
41         while((inputStr = br.readLine())!=null)     //对象的方法:读取一行字符串  赋给inputStr
42         {    
43             //定义一个字符串数组,把以,为分隔符的字符串变成两个 字符串 形成数组
44             String[] posStrArr = inputStr.split(",");
45             int xPos = Integer.parseInt(posStrArr[0]);
46             int yPos = Integer.parseInt(posStrArr[1]);//至此main方法一直在处理输入数据
47             //玩家根据输入给棋盘的相应位置下棋        
48             gb.board[xPos-1][yPos-1]="●";
49             int aPos = (int)(15*Math.random()); 
50             int bPos = (int)(15*Math.random());
51             //if(xPos-1==aPos&&yPos-1==bPos)//如果重合,数组赋null,重新赋值。跳出,避免给电脑赋值
52             //{gb.board[xPos-1][yPos-1] = null ; break;}    
53             
54             gb.board[aPos][bPos]="★";            
55             gb.printBoard();//每下一步都要重新绘制棋盘
56             System.out.println("以 x,y 的格式输入坐标:");
57         }
58     }
59 }

 

控制台的简单五子棋

标签:

原文地址:http://www.cnblogs.com/mengdejia/p/4306376.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!