亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? lianliankan.java

?? java小游戲 基礎 連連看 普通界面 初學者適用
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:

import javax.swing.*;

import java.util.*;
public class LianLianKan {
   public static void main(String[] args){
	   /**main method*/
	 //let the player to enter the row and column of the game area********* 玩家輸入游戲區(qū)域的行數和列數********
	 String sizeString=JOptionPane.showInputDialog(null,"請輸入游戲區(qū)域大小[m,n](1~20):","連連看--setup",JOptionPane.QUESTION_MESSAGE);
	 StringTokenizer tokenizer=new StringTokenizer(sizeString,",");
	 int row=Integer.parseInt(tokenizer.nextToken());
	 int column=Integer.parseInt(tokenizer.nextToken());
	 //use a circulation to ensure the number of the icons is even;
	 while ((row*column)%2 !=0){
		 JOptionPane.showMessageDialog(null,"輸入錯誤,請保證行數與列數乘積為偶數","連連看--setup",JOptionPane.QUESTION_MESSAGE);
		 sizeString=JOptionPane.showInputDialog(null,"請輸入游戲區(qū)域大小[m,n](1~20):","連連看--setup",JOptionPane.QUESTION_MESSAGE);
		 tokenizer=new StringTokenizer(sizeString,",");
		 row=Integer.parseInt(tokenizer.nextToken());
		 column=Integer.parseInt(tokenizer.nextToken()); 
	 }
	 
	 //protract the game body ************繪制游戲區(qū)域********
     //set an array named 'patten'*********得到patten數組******
     String[][] patten=new String[3][10];
     String pattenString0="☆ ★ ○ ● ◇ ◆ □ ■ △ ▲ ";
     StringTokenizer patten0=new StringTokenizer(pattenString0);
     for (int i=0;i<10;i++){
     	patten[0][i]=patten0.nextToken();
     }
     String pattenString1="① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩ ";
     StringTokenizer patten1=new StringTokenizer(pattenString1);
     for (int i=0;i<10;i++){
     	patten[1][i]=patten1.nextToken();
     }
     String pattenString2="甲 乙 丙 丁 戊 己 庚 辛 任 癸 ";
     StringTokenizer patten2=new StringTokenizer(pattenString2);
     for (int i=0;i<10;i++){
     	patten[2][i]=patten2.nextToken();
     }    
     /***********begin to protract the game area and do the initialization 開始繪制游戲區(qū)域及初始化*/
      	 String[] markS=new String[1];
      	 markS[0]=""+0;
      	 int mark=0;
	  	 int reset=3;
	  	 int hint=5;
	     int error=0;
	     String[] mode={"向右移動","正常","向上移動","向左移動","向下移動"};
	     mark=Integer.parseInt(markS[0]);
	     String[] resetS=new String[1];
	     String[] hintS=new String[1];    	     
	     resetS[0]=""+reset;
	     hintS[0]=""+hint;
	     markS[0]=""+mark;
	     
      for (int state=1;state<=100;state++){
    	  if ((state!=1) && (state %3==1)){
    		  reset=Integer.parseInt(resetS[0]);
    		  reset++;
    		  resetS[0]=""+reset;
    		  hint=Integer.parseInt(hintS[0]);
    		  hint=hint+2;
    		  hintS[0]=""+hint;
    		  String output1="*******************************\n";
    		  output1+=" Well done!!!!\n 每通過3關,作為獎勵:\n 重排數加1,提示數加2";
    		  JOptionPane.showMessageDialog(null,output1,"連連看--游戲鼓勵",JOptionPane.INFORMATION_MESSAGE);
    	  }
    	  // 用循環(huán)來做關數,是每一關的ROW COLUMN 數目各加2,也是變換方式從不變,向上移,向左移,象右移,向下移,循環(huán)變換
    	  //initialization**********初始化*******
    	     String[][] playArea=new String[row][column];
    	     int [][] playAreaNumber=new int[row][column];
    	     for (int i=0;i<row;i++){
    	    	 for (int j=0;j<column;j++){
    	    		 playAreaNumber[i][j]=0;
    	    	 }
    	     }
    	     //establish a String[][] named patten to deposit the icons 
    	     //and estabish a int[][] pattenNumber to control the game ******* 創(chuàng)建String類型的二維數組,存儲圖案。***
    	     int[][] pattenNumber=new int[3][10];
    	     for (int i=0;i<3;i++){
    	    	 for (int j=0;j<10;j++){
    	    		 pattenNumber[i][j]=0;
    	    	 }
    	     }
  
    	       
     
     //use RandomPaintGameBody Class to creat stochastic twin icons ********隨機生成成對的圖案******
 	 RandomPaintGameBody randomPaintGameBody=new RandomPaintGameBody(row,column,playArea,patten,playAreaNumber,pattenNumber);
 	 //initialization********初始化******
     int x1,y1,x2,y2;
     String coordinateString;
     boolean endCondition=false;
     int count=0;
     /************************************************一關里游戲的循環(huán)。直至結束。*/
     while (endCondition==false){//use variable endCondition to judge whether the icons are all deleted
     //use repaint method to protract the game body and evaluate the coordinateString
    	 //****************用與繪出游戲界面,同時給coordinateString賦值******
    	 coordinateString=repaint(state,resetS,hintS,markS,row,column,playArea,playAreaNumber,patten,mode);
    	 reset=Integer.parseInt(resetS[0]);
    	 hint=Integer.parseInt(hintS[0]);
    	 mark=Integer.parseInt(markS[0]);
    	 //use is Continue to judge whether the coordinate match the delete condition****以下判斷是不是輸入的坐標滿足消去的條件。***
    	 	if (isContinue(coordinateString,state,resetS,hintS,markS,row,column,playArea,playAreaNumber,patten)==true){
    	 		StringTokenizer coordinate=new StringTokenizer(coordinateString,",-");
    	 		x1=Integer.parseInt(coordinate.nextToken());
    	 		y1=Integer.parseInt(coordinate.nextToken());
    	 		x2=Integer.parseInt(coordinate.nextToken());
    	 		y2=Integer.parseInt(coordinate.nextToken());
     /** according to the state,different state use the different method of expunction,
               such as steadiness,upwards,downwards,leftwards,rightwards*/
     //*********************************************按照關數,不同關的消去方式不同。有向上向下向左向右等的不同區(qū)別。*/
     //*****steadiness不變
     if (state %5==1){
     mark(x1,y1,markS,playArea,patten);
     playArea[x1-1][y1-1]="    ";
     playArea[x2-1][y2-1]="    ";
     playAreaNumber[x1-1][y1-1]=0; count++;
     playAreaNumber[x2-1][y2-1]=0; count++;
     }
     //*******upwards 向上
     if (state %5==2){
    	 mark(x1,y1,markS,playArea,patten);
    	 if (y1 !=y2){
    	 for (int q=x1;q<row;q++){
    		 playArea[q-1][y1-1]=playArea[q][y1-1];
    		 playAreaNumber[q-1][y1-1]=playAreaNumber[q][y1-1];
    	  }
    	 playArea[row-1][y1-1]="    ";
    	 playAreaNumber[row-1][y1-1]=0;count++;
    	 for (int p=x2;p<row;p++){
    		 playArea[p-1][y2-1]=playArea[p][y2-1];
    		 playAreaNumber[p-1][y2-1]=playAreaNumber[p][y2-1];
    	 }
    	 playArea[row-1][y2-1]="    "; 
    	 playAreaNumber[row-1][y2-1]=0;count++;
    	 }
    	 else {
    		 if (x1<x2){
    			 for(int q=x1;q<x2;q++){
    				 playArea[q-1][y1-1]=playArea[q][y1-1];
    				 playAreaNumber[q-1][y1-1]=playAreaNumber[q][y1-1];
    			 }
    			 for(int p=x2;p<row;p++){
    				 playArea[p-2][y2-1]=playArea[p][y2-1];
    				 playAreaNumber[p-2][y2-1]=playAreaNumber[p][y2-1];
    			 }
    			 playArea[row-2][y1-1]="    ";
    			 playAreaNumber[row-2][y1-1]=0;count++;
    			 playArea[row-1][y1-1]="    "; 
    			 playAreaNumber[row-1][y1-1]=0;count++;
    		 }
    		 else if (x1>x2) {
    			 for(int q=x2;q<x1;q++){
    				 playArea[q-1][y2-1]=playArea[q][y2-1];
    				 playAreaNumber[q-1][y2-1]=playAreaNumber[q][y2-1];
    			 }
    			 for(int p=x1;p<row;p++){
    				 playArea[p-2][y1-1]=playArea[p][y1-1];
    				 playAreaNumber[p-2][y1-1]=playAreaNumber[p][y1-1];
    			 }
    			 playArea[row-2][y2-1]="    "; 
    			 playAreaNumber[row-2][y2-1]=0;count++;
    			 playArea[row-1][y2-1]="    "; 
    			 playAreaNumber[row-1][y2-1]=0;count++;
    		 }
    	 }
    	 
     }
     //*******leftwards向左
     if (state %5==3){
    	 mark(x1,y1,markS,playArea,patten);
    	 if (x1 !=x2){
    		 for (int q=y1;q<column;q++){
        		 playArea[x1-1][q-1]=playArea[x1-1][q];
        		 playAreaNumber[x1-1][q-1]=playAreaNumber[x1-1][q];
        	  }
        	 playArea[x1-1][column-1]="    "; 
        	 playAreaNumber[x1-1][column-1]=0;count++;
        	 for (int p=y2;p<column;p++){
        		 playArea[x2-1][p-1]=playArea[x2-1][p];
        		 playAreaNumber[x2-1][p-1]=playAreaNumber[x2-1][p];
        	 }
        	 playArea[x2-1][column-1]="    "; 
        	 playAreaNumber[x2-1][column-1]=0;count++;
        	 }
        	 else {
        		 if (y1<y2){
        			 for(int q=y1;q<y2;q++){
        				 playArea[x1-1][q-1]=playArea[x1-1][q];
        				 playAreaNumber[x1-1][q-1]=playAreaNumber[x1-1][q];
        			 }
        			 for(int p=y2;p<column;p++){
        				 playArea[x2-1][p-2]=playArea[x2-1][p];
        				 playAreaNumber[x2-1][p-2]=playAreaNumber[x2-1][p];
        			 }
        			 playArea[x1-1][column-2]="    "; 
        			 playAreaNumber[x1-1][column-2]=0;count++;
        			 playArea[x1-1][column-1]="    ";
        			 playAreaNumber[x1-1][column-1]=0;count++;
        		 }
        		 else if (y1>y2) {
        			 for(int q=y2;q<y1;q++){
        				 playArea[x2-1][q-1]=playArea[x2-1][q];
        				 playAreaNumber[x2-1][q-1]=playAreaNumber[x2-1][q];
        			 }
        			 for(int p=y1;p<column;p++){
        				 playArea[x1-1][p-2]=playArea[x1-1][p];
        				 playAreaNumber[x1-1][p-2]=playAreaNumber[x1-1][p];
        			 }
        			 playArea[x1-1][column-2]="    "; 
        			 playAreaNumber[x1-1][column-2]=0;count++;
        			 playArea[x1-1][column-1]="    "; 
        			 playAreaNumber[x1-1][column-1]=0;count++;
        		 }
        	 }  		 
    	 }
     //********downwards向下
     if (state %5==4){
    	 mark(x1,y1,markS,playArea,patten);
    	 if (y1 !=y2){
    	 for (int q=x1-1;q>=1;q--){
    		 playArea[q][y1-1]=playArea[q-1][y1-1];
    		 playAreaNumber[q][y1-1]=playAreaNumber[q-1][y1-1];
    	  }
    	 playArea[0][y1-1]="    ";
    	 playAreaNumber[0][y1-1]=0;count++;
    	 for (int p=x2-1;p>=1;p--){
    		 playArea[p][y2-1]=playArea[p-1][y2-1];
    		 playAreaNumber[p][y2-1]=playAreaNumber[p-1][y2-1];
    	 }
    	 playArea[0][y2-1]="    "; 
    	 playAreaNumber[0][y2-1]=0;count++;
    	 }
    	 else {
    		 if (x1>x2){
    			 for(int q=x1-1;q>x2;q--){
    				 playArea[q][y1-1]=playArea[q-1][y1-1];
    				 playAreaNumber[q][y1-1]=playAreaNumber[q-1][y1-1];
    			 }
    			 for(int p=x2;p>=2;p--){
    				 playArea[p][y2-1]=playArea[p-2][y2-1];
    				 playAreaNumber[p][y2-1]=playAreaNumber[p-2][y2-1];
    			 }
    			 playArea[0][y1-1]="    ";
    			 playAreaNumber[0][y1-1]=0;count++;
    			 playArea[1][y1-1]="    "; 
    			 playAreaNumber[1][y1-1]=0;count++;
    		 }
    		 else if (x1<x2) {
    			 for(int q=x2-1;q>x1;q--){
    				 playArea[q][y2-1]=playArea[q-1][y2-1];
    				 playAreaNumber[q][y2-1]=playAreaNumber[q-1][y2-1];
    			 }
    			 for(int p=x1;p>=2;p--){
    				 playArea[p][y1-1]=playArea[p-2][y1-1];
    				 playAreaNumber[p][y1-1]=playAreaNumber[p-2][y1-1];
    			 }
    			 playArea[0][y2-1]="    "; 
    			 playAreaNumber[0][y2-1]=0;count++;
    			 playArea[1][y2-1]="    "; 
    			 playAreaNumber[1][y2-1]=0;count++;
    		 }
    	 }
    	 
     }
     //*****************rightwards向右的。
     if (state %5==0){
    	 mark(x1,y1,markS,playArea,patten);
    	 if (x1 !=x2){
    		 for (int q=y1-1;q>=1;q--){
        		 playArea[x1-1][q]=playArea[x1-1][q-1];
        		 playAreaNumber[x1-1][q]=playAreaNumber[x1-1][q-1];
        	  }
        	 playArea[x1-1][0]="    "; 
        	 playAreaNumber[x1-1][0]=0;count++;
        	 for (int p=y2-1;p>=1;p--){
        		 playArea[x2-1][p]=playArea[x2-1][p-1];
        		 playAreaNumber[x2-1][p]=playAreaNumber[x2-1][p-1];
        	 }
        	 playArea[x2-1][0]="    "; 
        	 playAreaNumber[x2-1][0]=0;count++;
        	 }
        	 else {
        		 if (y1<y2){
        			 for(int q=y2-1;q>y1-1;q--){
        				 playArea[x1-1][q]=playArea[x1-1][q-1];
        				 playAreaNumber[x1-1][q]=playAreaNumber[x1-1][q-1];
        			 }
        			 for(int p=y1;p>=2;p--){
        				 playArea[x2-1][p]=playArea[x2-1][p-2];
        				 playAreaNumber[x2-1][p]=playAreaNumber[x2-1][p-2];
        			 }
        			 playArea[x1-1][0]="    "; 
        			 playAreaNumber[x1-1][0]=0;count++;
        			 playArea[x1-1][1]="    ";
        			 playAreaNumber[x1-1][1]=0;count++;
        		 }
        		 else if (y1>y2) {
        			 for(int q=y1-1;q>y2-1;q--){
        				 playArea[x1-1][q]=playArea[x1-1][q-1];
        				 playAreaNumber[x1-1][q]=playAreaNumber[x1-1][q-1];
        			 }
        			 for(int p=y2;p>=2;p--){
        				 playArea[x2-1][p]=playArea[x2-1][p-2];
        				 playAreaNumber[x2-1][p]=playAreaNumber[x2-1][p-2];
        			 }
        			 playArea[x1-1][0]="    "; 
        			 playAreaNumber[x1-1][0]=0;count++;
        			 playArea[x1-1][1]="    ";
        			 playAreaNumber[x1-1][1]=0;count++;
        		 }
        	 }   		 
    	 }   
     //when the icons are all deleted.
     if (count==row*column){
    	 endCondition=true;
    	 JOptionPane.showMessageDialog(null,"恭喜你通過"+state+"關!^_^\n準備進入第"+(state+1)+"關.......","連連看--過關",JOptionPane.INFORMATION_MESSAGE);
    	 row=row+2;
    	 column=column+2;
    	 	}
     	}
     }
     }
   }  
   //*****************************************************************
   //****************************************************************
   /**other methods*/
   //*********************************************************************************************

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区三区激情| 国产不卡一区视频| 国精产品一区一区三区mba桃花| 精品亚洲成a人| 成人午夜免费视频| 欧美亚洲一区三区| 精品国产电影一区二区| 国产精品伦理在线| 天堂久久一区二区三区| 国产一区二区不卡| 色噜噜狠狠一区二区三区果冻| 欧美一区二区观看视频| 中文一区二区在线观看| 午夜视频在线观看一区| 国产精品一区专区| 欧美日韩中文一区| 国产三级精品视频| 日韩综合小视频| 成人高清视频在线观看| 91精品国产麻豆| 亚洲欧洲日韩在线| 久久国产精品色婷婷| av一区二区不卡| 日韩精品资源二区在线| 亚洲欧美日韩国产中文在线| 国内成人精品2018免费看| 欧美综合一区二区| 中文字幕乱码日本亚洲一区二区| 日日夜夜一区二区| 色视频欧美一区二区三区| 免费观看日韩电影| 91国在线观看| 亚洲国产精品成人综合色在线婷婷| 日韩主播视频在线| 日本韩国视频一区二区| 欧美经典三级视频一区二区三区| 日韩中文字幕一区二区三区| 色999日韩国产欧美一区二区| 久久久精品中文字幕麻豆发布| 午夜欧美大尺度福利影院在线看| 99久久精品国产一区二区三区| 精品精品国产高清一毛片一天堂| 亚洲一区二区中文在线| 北条麻妃一区二区三区| 久久亚洲影视婷婷| 日产国产欧美视频一区精品| 欧美午夜精品一区二区三区| 国产精品电影院| 国产不卡在线一区| 2023国产精品| 精品一区二区三区日韩| 欧美一区二区三区视频| 亚洲一级二级三级| 色综合久久99| 亚洲特黄一级片| av福利精品导航| 国产精品视频免费看| 国产成人自拍在线| 久久久久99精品一区| 久久精品国产一区二区| 在线观看91av| 污片在线观看一区二区| 欧美日韩免费高清一区色橹橹| 亚洲另类在线制服丝袜| 99久久久久久99| 亚洲女与黑人做爰| 91国产精品成人| 亚洲一区二区欧美| 欧美性做爰猛烈叫床潮| 亚洲午夜久久久久| 欧美三电影在线| 亚洲va欧美va国产va天堂影院| 精品污污网站免费看| 五月开心婷婷久久| 91精品啪在线观看国产60岁| 日本不卡123| 亚洲精品一区二区精华| 国产一区 二区 三区一级| 久久久久国产一区二区三区四区| 国产在线麻豆精品观看| 国产拍揄自揄精品视频麻豆| 不卡大黄网站免费看| 亚洲视频在线一区二区| 在线观看网站黄不卡| 亚洲一区二区视频在线观看| 欧美人与禽zozo性伦| 蜜臀久久99精品久久久久宅男 | 亚洲人一二三区| 91亚洲男人天堂| 一区二区三区日韩欧美| 欧美日韩免费电影| 久草这里只有精品视频| 国产清纯白嫩初高生在线观看91 | 色综合久久中文字幕综合网| 亚洲精品中文字幕乱码三区| 国产亚洲视频系列| 老司机精品视频一区二区三区| 91.xcao| 久久国产生活片100| 欧美激情一区二区三区四区| fc2成人免费人成在线观看播放| 亚洲精品va在线观看| 欧美日本一区二区在线观看| 老司机精品视频导航| 国产精品麻豆欧美日韩ww| 欧美少妇xxx| 激情五月激情综合网| 中文字幕日韩一区二区| 欧美精品免费视频| 国产一本一道久久香蕉| 亚洲天堂2016| 日韩欧美美女一区二区三区| eeuss鲁片一区二区三区在线观看| 亚洲影院久久精品| 欧美精品一区二区三区高清aⅴ | 欧美α欧美αv大片| 成人一区二区在线观看| 亚洲成人动漫精品| 久久久久88色偷偷免费| 欧美亚洲日本国产| 久久精品国产亚洲a| 国产精品不卡视频| 91精品免费在线观看| 99精品视频一区二区三区| 天天综合天天做天天综合| 国产欧美一二三区| 7777精品伊人久久久大香线蕉的 | 中文字幕一区二区三区蜜月| 欧美日韩国产经典色站一区二区三区 | 99国产欧美另类久久久精品| 首页国产欧美久久| 国产精品久久久久精k8 | 精品影视av免费| 亚洲精选一二三| 久久在线免费观看| 欧美在线一区二区三区| 国产成人在线观看| 日韩国产在线观看| 亚洲女女做受ⅹxx高潮| 国产午夜精品一区二区三区视频| 欧美日韩精品一区视频| 99re视频精品| 国内精品伊人久久久久av一坑 | 欧美一级片在线看| 91麻豆国产自产在线观看| 国内精品不卡在线| 日韩一区精品字幕| 成人h动漫精品一区二区| 蜜乳av一区二区| 亚洲国产欧美另类丝袜| 国产精品国产三级国产专播品爱网 | 亚洲黄色小视频| 亚洲国产精品国自产拍av| 精品精品国产高清a毛片牛牛| 欧美日韩一卡二卡三卡| 91亚洲永久精品| 成人精品国产一区二区4080 | 国产精品久久久久久久午夜片| 日韩欧美成人午夜| 在线观看91av| 欧美日韩在线播放一区| 91免费国产在线| 懂色av中文字幕一区二区三区| 国内精品嫩模私拍在线| 久久精品国产精品青草| 日韩中文字幕91| 天堂在线亚洲视频| 亚洲va国产天堂va久久en| 一区二区三区视频在线观看| 亚洲精品一二三四区| 自拍偷拍国产精品| 亚洲丝袜美腿综合| ㊣最新国产の精品bt伙计久久| 国产三级欧美三级日产三级99 | 久久精品国产久精国产爱| 日韩电影在线观看电影| 亚洲五月六月丁香激情| 一区二区三区四区视频精品免费| 国产精品美女www爽爽爽| 国产色产综合产在线视频| 国产欧美日韩在线视频| 亚洲国产精品国自产拍av| 国产精品国产三级国产普通话99 | 欧美中文字幕不卡| 欧美亚洲精品一区| 欧美无砖砖区免费| 欧美日韩一区成人| 欧美肥妇毛茸茸| 日韩欧美综合一区| 精品对白一区国产伦| 久久久久久久久久久99999| 国产婷婷色一区二区三区在线| 国产亚洲欧洲一区高清在线观看| 中文字幕av一区二区三区高| 中文字幕在线观看一区二区| 亚洲黄色性网站| 日韩激情一二三区| 九九久久精品视频| 懂色av一区二区三区蜜臀| 色伊人久久综合中文字幕|