熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

Java中的“五子棋”游戲程序

2013-11-23 18:40:51  來源: Java核心技術 

  import javautilScanner;

  public class FiveChessGame {

  private int temp;

  private String[][] String;//注意在這裡不能定義為char型不然打印的數字

  ////////////////////////////

  public FiveChessGame(){

  Systemoutprintln(please input the line number);

  Scanner sc=new Scanner(Systemin);

  thistemp=scnextInt();

  String=new String[temp][temp];

  for(int i=;i<temp;i++){

  for(int j=;j<temp;j++){

  String[i][j]=*;//注意在這裡不能定義為char型不然打印的數字

  }

  }

  Systemoutprint(\t);

  for(int i=;i<temp;i++){

  Systemoutprint(i);

  Systemoutprint(\t);

  }

  Systemoutprintln();

  for(int i=;i<temp;i++){

  Systemoutprint(i);//注意在這裡的格式不能寫成Systemoutprint(i+\t);不然從打印

  Systemoutprint(\t);

  for(int j=;j<temp;j++){

  Systemoutprint(String[i][j]+\t);

  }

  Systemoutprintln();

  }

  }

  ////////////////////

  public int getline(){

  return thistemp;

  }

  ///////////////////////

  public String[][] getString(){

  return thisString;

  }

  }

  /////////////////////////////////////////////////////////////////////////////////////////////////////////////

  import javautil*;

  public class FiveChessPlayers {

  private String name;

  public static FiveChessGame fcg=new FiveChessGame();

  //////////////////////

  public FiveChessPlayers(){//玩多少行的游戲

  Systemoutprintln(please input players name);

  Scanner sc=new Scanner(Systemin);

  thisname=scnext();

  }

  ///////////////////

  public String getName(){

  return thisname;

  }

  ////////////////////////////////

  public void play(String str){//the player could play the chess

  Scanner sc=new Scanner(Systemin);

  int xy;

  while(true){

  Systemoutprintln(please input your chess);

  x=scnextInt();

  y=scnextInt();

  if(x>=fcggetline()||y>=fcggetline()) {

  Systemoutprintln(your input is error);

  continue;

  }

  if(fcggetString()[x][y]==*){

  fcggetString()[x][y]=str;

  break;

  }else{

  Systemoutprintln(you coudln put your chess here);

  continue;

  }

  }

  }

  }

  ////////////////////////////////////////////////////////////////////////////////////////////////

  import javautil*;

  public class TestChess {

  private FiveChessPlayers f;

  private FiveChessPlayers f;

  public TestChess(){

  f=new FiveChessPlayers();

  f=new FiveChessPlayers();

  }

  ///////////////////////////////////////////////////////////////////////////

  public void display(){

  Systemoutprint(\t);

  for(int i=;i<FiveChessPlayersfcggetline();i++){

  Systemoutprint(i);

  Systemoutprint(\t);

  }

  Systemoutprintln();

  for(int i=;i<FiveChessPlayersfcggetline();i++){

  Systemoutprint(i);//注意在這裡的格式不能寫成Systemoutprint(i+\t);不然從打印

  Systemoutprint(\t);

  for(int j=;j<FiveChessPlayersfcggetline();j++){

  Systemoutprint(FiveChessPlayersfcggetString()[i][j]+\t);

  }

  Systemoutprintln();

  }

  }

  //////////////////////////////////////////////////////////////////////////////

  public void putChess(String tem){

  if(temequals(@))

  {

  fplay(@);

  }

  if(temequals(#))

  {

  fplay(#);

  }

  }

  /////////////////////////////////////////////////////////

  public   void victory(){

  String str=new String();

  String str=@@@@@;

  ////////////////////////////////////

  int X=Y=;//用來記錄每次查找到的@字符的數組下標從兩個for循環裡導出來

  int k=;int j=;//注意首次的控制條件的建立j為-可以使第二個for檢測首次從下標開始

  ///////////////////////////////////

  while(true)

  {

  LABEL:for(;k<FiveChessPlayersfcggetline();k++){//添加標簽要注意標簽的用法

  for(j=(j+)%FiveChessPlayersfcggetline();j<FiveChessPlayersfcggetline();j++){

  //注意在這裡的這個表達式的寫法可以在一次尋找不滿足時下一次從數組的下一個位置開始

  if(FiveChessPlayersfcggetString()[k][j]equals(@)){

  X=k;

  Y=j;

  break LABEL;//每找到一個相同字符則跳出

  }else{

  Systemoutprintln(k+);

  Systemoutprintln(j+);

  //             continue;//多余

  }

  }

  }

  //        Systemexit();//調試語句退出虛擬機

  if(k<FiveChessPlayersfcggetline()&j<FiveChessPlayersfcggetline())

  {

  for(int i=;i<;i++){

  if(X<FiveChessPlayersfcggetline()&Y<(FiveChessPlayersfcggetline())){//遍歷列

  str+=FiveChessPlayersfcggetString()[X][Y+i];

  if(i!=)

  continue;

  if(i==){

  Systemoutprintln(安列取+str);

  if(strequals(str)){

  Systemoutprintln(fgetName()+ is the winner);

  Systemexit();//結束退出虛擬機

  }else{

  str=;

  }

  }

  }

  }

  for(int i=;i<;i++){

  if((X+)<FiveChessPlayersfcggetline()&(Y+)<FiveChessPlayersfcggetline()){//四十五度遍歷

  str+=FiveChessPlayersfcggetString()[X+i][Y+i];

  if(i!=)

  continue;

  if(i==){

  Systemoutprintln(四十五度向前取+str);

  if(strequals(str)){

  Systemoutprintln(fgetName()+ is the winner);

  Systemexit();//勝利結束游戲

  }else{

  str=;

  }

  }

  }

  }

  for(int i=;i<;i++){

  if((X+)<FiveChessPlayersfcggetline()&Y<FiveChessPlayersfcggetline()){//行遍歷

  str+=FiveChessPlayersfcggetString()[X+i][Y];

  if(i!=)

  continue;

  if(i==){

  Systemoutprintln(安行取+str);

  if(strequals(str)){

  Systemoutprintln(fgetName()+ is the winner);

  Systemexit();//如上

  }else{

  str=;

  }

  }

  }

  }

  for(int i=;i<;i++){

  if((X+)<FiveChessPlayersfcggetline()&(Y)>=){

  str+=FiveChessPlayersfcggetString()[X+i][Yi];

  if(i!=)

  continue;

  if(i==){

  Systemoutprintln(四十五度向後取+str);

  if(strequals(str)){

  Systemoutprintln(fgetName()+ is the winner);

  Systemexit();//如上

  }else{

  str=;

  }

  }

  //        str+=fString[X+i][Y+i];//注意對比寫法

  //        continue;

  //        str=+fString[X+i][Y+i];//注意錯誤的寫法不然每次覆蓋前一次的串累加值

  //        continue;

  }

  }

  }

  //////////////////////////////////////////////////////////////////////////////

  if(str==&k<FiveChessPlayersfcggetline()&j<FiveChessPlayersfcggetline()){

  j++;

  continue ;

  }else{

  break;

  }

  }

  }

  ////////////////////////////////////////////////////////////////////

  public   void victory(){

  String str=new String();

  String str=#####;

  ////////////////////////////////////

  int X=Y=;

  int k=;int j=;

  while(true)

  {

  LABEL:for(;k<FiveChessPlayersfcggetline();k++){//添加標簽要注意標簽的用法

  for(j=(j+)%FiveChessPlayersfcggetline();j<FiveChessPlayersfcggetline();j++){

  if(FiveChessPlayersfcggetString()[k][j]equals(#)){

  X=k;

  Y=j;        Systemoutprintln(FiveChessPlayersfcggetString()[k][j]);

  break LABEL;

  }else{

  Systemoutprintln(k+******);

  Systemoutprintln(j);

  }

  }

  }

  ///////////////////////////////////////////////

  for(int i=;i<;i++){

  if(X<FiveChessPlayersfcggetline()&Y<(FiveChessPlayersfcggetline())){//遍歷列

  str+=FiveChessPlayersfcggetString()[X][Y+i];

  if(i!=)

  continue;

  if(i==){

  Systemoutprintln(str);

  Systemoutprintln();

  if(strequals(str)){

  Systemoutprintln(fgetName()+ is the winner);

  Systemexit();//結束

  }else{

  str=;

  }

  }

  }

  }

  for(int i=;i<;i++){

  if((X+)<FiveChessPlayersfcggetline()&(Y+)<FiveChessPlayersfcggetline()){//四十五度遍歷

  str+=FiveChessPlayersfcggetString()[X+i][Y+i];

  if(i!=)

  continue;

  if(i==){

  Systemoutprintln(str);

  Systemoutprintln();

  if(strequals(str)){

  Systemoutprintln(fgetName()+ is the winner);

  Systemexit();//結束

  }else{

  str=;

  }

  }

  }

  }

  for(int i=;i<;i++){

  if((X+)<FiveChessPlayersfcggetline()&Y<FiveChessPlayersfcggetline()){//行遍歷

  str+=FiveChessPlayersfcggetString()[X+i][Y];

  if(i!=)

  continue;

  if(i==){

  Systemoutprintln(str);

  Systemoutprintln();

  if(strequals(str)){

  Systemoutprintln(fgetName()+ is the winner);

  Systemexit();//結束

  }else{

  str=;

  }

  }

  }

  }

  for(int i=;i<;i++){

  if((X+)<FiveChessPlayersfcggetline()&(Y)>=){

  str+=FiveChessPlayersfcggetString()[X+i][Yi];

  if(i!=)

  continue;

  if(i==){

  Systemoutprintln(str);

  Systemoutprintln();

  if(strequals(str)){

  Systemoutprintln(fgetName()+ is the winner);

  Systemexit();//結束

  }else{

  str=;

  }

  }

  //         str+=fString[X+i][Y+i];

  //         continue;

  //         str=+fString[X+i][Y+i];//注意錯誤的寫法不然每次覆蓋前一次的串累加值

  //         continue;

  }

  }

  //////////////////////////////////////////////////////////////////////////////

  if(str==&k<FiveChessPlayersfcggetline()&j<FiveChessPlayersfcggetline()){

  j++;

  continue ;

  }else{

  break;

  }

  }

  }

  ////////////////////////////////////////

  public static void main(String[] args) {

  TestChess tc=new TestChess();

  boolean b=true;

  while(b){

  tcputChess(@);

  tcvictory();

  tcdisplay();

  tcputChess(#);

  tcdisplay();

  tcvictory();

  Scanner sc=new Scanner(Systemin);

  Systemoutprintln(if you like to continue input true or exit input false);

  b=scnextBoolean();

  if(!b){

  Systemoutprintln(welcome to use ! );

  break;

  }

  }

  }

  }


From:http://tw.wingwit.com/Article/program/Java/hx/201311/25560.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.