java学习心得1
来源:互联网 发布:ubuntu 17.10 qq 编辑:程序博客网 时间:2024/06/16 21:04
为了学习J2EE的技术,现在在恶补java se的东西,先从最基础的学起,教材选了李刚的那本《疯狂java讲义》
第一章是java语言概述,介绍了java语言的特点,java环境的搭建和一些java程序的基本原则。
第二章大概介绍了一下oop,这部分有uml语言介绍,我大略过了一遍,看不太懂(囧)。
第三章 数据类型和运算符,因为我有点c的基础,所以这章看的也很快。
第四章 流程控制和数组,这章讲的非常详细,把数组底层的存储通过图片介绍一下,但是我感觉还是似懂非懂的。
第四章的课后习题3.编写一个控制台的五子棋游戏
我花了半天时间写了一个,电脑的下法是随机的。
import java.io.*;public class Gobang {private String[][] board;private static int BOARD_SIZE=15;//棋盘初始化,大小设定为15private void initBoard(){board=new String[BOARD_SIZE][BOARD_SIZE];for(int i=0;i<BOARD_SIZE;i++){for(int j=0;j<BOARD_SIZE;j++){board[i][j]="╋";}}}//打印棋盘private void printBoard(){//for(int i=1;i<=BOARD_SIZE;i++)//System.out.print("一");//System.out.println();for(int i=0;i<BOARD_SIZE;i++){for(int j=0;j<BOARD_SIZE;j++){System.out.print(board[i][j]);}System.out.println();}}//判断xpos,ypos处的子是否连成5个,是则返回ture,否返回falsepublic boolean isWin(int xpos,int ypos,String chesstype){int sum=1;int i;int j;//横向判断i=xpos+1;while(i>0&&i<BOARD_SIZE&&i<=xpos+4){if(board[ypos-1][i-1]==chesstype)sum++;elsebreak;i++;}i=xpos-1;while(i>0&&i<BOARD_SIZE&&i>=xpos-4){if(board[ypos-1][i-1]==chesstype)sum++;elsebreak;i--;}if(sum==5)return true;sum=1;//竖向判断i=ypos+1;while(i>0&&i<BOARD_SIZE&&i<=ypos+4){if(board[i-1][xpos-1]==chesstype)sum++;elsebreak;i++;}i=ypos-1;while(i>0&&i<BOARD_SIZE&&i>=ypos-4){if(board[i-1][xpos-1]==chesstype)sum++;elsebreak;i--;}if(sum==5)return true;sum=1;//右斜判断i=xpos+1;j=ypos+1;while(i>0&&i<BOARD_SIZE&&i<=xpos+4&&j>0&&j<BOARD_SIZE&&j<=xpos+4){if(board[j-1][i-1]==chesstype)sum++;elsebreak;i++;j++;}i=xpos-1;j=ypos-1;while(i>0&&i<BOARD_SIZE&&i>=xpos-4&&j>0&&j<BOARD_SIZE&&j>=xpos-4){if(board[j-1][i-1]==chesstype)sum++;elsebreak;i--;j--;}if(sum==5)return true;sum=1;//左斜判断i=xpos-1;j=ypos+1;while(i>0&&i<BOARD_SIZE&&i>=xpos-4&&j>0&&j<BOARD_SIZE&&j<=xpos+4){if(board[j-1][i-1]==chesstype)sum++;elsebreak;i--;j++;} i=xpos+1;j=ypos-1;while(i>0&&i<BOARD_SIZE&&i>=xpos-4&&j>0&&j<BOARD_SIZE&&j<=xpos+4){if(board[j-1][i-1]==chesstype)sum++;elsebreak;i++;j--;}if(sum==5)return true;return false;}public static void main(String[] args) throws Exception{Gobang gb=new Gobang();gb.initBoard();gb.printBoard();BufferedReader br=new BufferedReader(new InputStreamReader(System.in));String inputStr=null;System.out.println("请输入坐标(x,y):");while((inputStr=br.readLine())!=null){String[] posStrArr=inputStr.split(",");int xPos=Integer.parseInt(posStrArr[0]);int yPos=Integer.parseInt(posStrArr[1]);if(!(xPos>=0&&xPos<=BOARD_SIZE)||!(yPos>=0&&yPos<=BOARD_SIZE)){System.out.println("输入不合法,请重新输入坐标:");continue;}else if(gb.board[yPos-1][xPos-1]=="●"||gb.board[yPos-1][xPos-1]=="○"){System.out.println("不能重复下子,请重新输入坐标:");continue;}else{gb.board[yPos-1][xPos-1]="●";}int cxPos=(int)(Math.random()*BOARD_SIZE);int cyPos=(int)(Math.random()*BOARD_SIZE);//System.out.println(cxPos);//System.out.println(cyPos);while(gb.board[cyPos][cxPos]=="●"||gb.board[cyPos][cxPos]=="○"){ cxPos=(int)(Math.random()*BOARD_SIZE); cyPos=(int)(Math.random()*BOARD_SIZE);}gb.board[cyPos][cxPos]="○";gb.printBoard();if(gb.isWin(xPos,yPos,"●")){System.out.println("You Win!");break;}else if(gb.isWin(cxPos+1,cyPos+1,"○")){System.out.println("Computer Win!");break;}System.out.println("请输入坐标(x,y):");}}}
- java学习心得(1)
- Java基础学习心得1
- java学习心得1
- Java 学习心得(1)
- java学习心得
- java学习心得
- java学习心得
- JAVA学习心得
- Java学习心得
- Java学习心得
- java学习心得
- java 学习心得
- Java学习心得
- Java 学习心得
- JAVA学习心得
- java学习心得
- Java学习心得
- java 学习心得
- C语言typedef void fun(int) 与typedef void (*pfun)(int)类型
- python学习计划
- hdu 4725 The Shortest Path in Nya Graph(堆+dij,最短路,5级)
- P131 E2(a) P137 E2 anwser
- !! Really Strange !!
- java学习心得1
- 绘制矩形(方法一)
- NSPredicate的用法
- AsyncSocket详解
- Windows下Resin的配置与部署(可用版)
- 简单安装NFS流程
- 最小圆覆盖
- 作业4
- 如何读取配置文件数据