真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java實(shí)現(xiàn)連連看游戲

本文實(shí)例為大家分享了java實(shí)現(xiàn)連連看游戲的具體代碼,供大家參考,具體內(nèi)容如下

在蒙陰等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專(zhuān)注、極致的服務(wù)理念,為客戶(hù)提供做網(wǎng)站、成都網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作定制網(wǎng)站建設(shè),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),成都全網(wǎng)營(yíng)銷(xiāo)推廣,外貿(mào)網(wǎng)站制作,蒙陰網(wǎng)站建設(shè)費(fèi)用合理。

代碼會(huì)實(shí)現(xiàn)共享的,這個(gè)是截圖

java實(shí)現(xiàn)連連看游戲

代碼:

package com.lr.bean;
import java.util.Scanner;
import java.util.Random;
import com.lr.bean.Point;
 
public class Link{
 public static void main(String[] args){
 Scanner sc=new Scanner(System.in);
 System.out.println("==========================");
 System.out.println("\t\t連連看小游戲");
 System.out.println("\t\t版權(quán):lr");
 System.out.println("==========================");
 
 System.out.println("請(qǐng)先輸入圖片數(shù)量(難度系數(shù) 1~9):");
 int picnum=sc.nextInt();
 
 System.out.println("請(qǐng)輸入棋盤(pán)的行數(shù):");
 int rows=sc.nextInt();
 
 int cols=0; //列數(shù)
 int count=0; //計(jì)數(shù)器
 do{
 if (count>0){
 System.out.println("輸入有誤,列數(shù)必須大于0!");
 }
 System.out.println("請(qǐng)輸入棋盤(pán)列數(shù):");
 cols=sc.nextInt();
 count++;
 }while( cols<1 || cols%2!=0);
 //創(chuàng)建二維數(shù)組,生成棋盤(pán),列數(shù)+2的原因:做出邊框的效果 數(shù)組剛剛生成時(shí),每個(gè)元素都是0
 int[][] chessboard=new int[ rows+2 ][ cols+2];
 
 //隨機(jī)生成的圖片數(shù)值存入這個(gè)二維數(shù)組中,注意:邊框不存值,任為0
 initBoard( chessboard ,picnum);
 System.out.println("初始化后的棋盤(pán)為:");
 showBoard2( chessboard);
 //打亂棋盤(pán)
 shuffle( chessboard );
 //輸出
 System.out.println("打亂后的棋盤(pán)為:");
 showBoard2( chessboard);
 
 //實(shí)現(xiàn)消除業(yè)務(wù)
 // 1.定義兩個(gè)Point對(duì)象
 Point p1=new Point();
 Point p2=new Point();
 // 2.游戲狀態(tài) isGameOver
 boolean isGameOver=false;
 do{
 // 3.循環(huán)輸入兩個(gè)點(diǎn) do...while
 System.out.println("請(qǐng)輸入兩個(gè)點(diǎn)的坐標(biāo)");
 p1.x=sc.nextInt();
 p1.y=sc.nextInt();
 p2.x=sc.nextInt();
 p2.y=sc.nextInt();
 // 4.判斷這兩個(gè)數(shù)是否可以消除
 if( isErazeOk( chessboard,p1,p2)){
 //如果可以消除,將這兩個(gè)點(diǎn)在chessboard 中的值都設(shè)為0
 chessboard[p1.x][p1.y]=0;
 chessboard[p2.x][p2.y]=0;
 if( checkGameOver( chessboard )){
 isGameOver=true;
 }
 }
 //顯示消除后的棋盤(pán)
 showBoard2( chessboard );
 }while( !isGameOver );
 System.out.println("游戲結(jié)束!");
 }
 
 //判斷是否能消除的業(yè)務(wù)
 public static boolean isErazeOk(int[][] chessboard ,Point p1,Point p2){
 // 1.兩個(gè)點(diǎn)不是同一個(gè)
 if( p1.equals( p2) ){
 System.out.println("輸入的兩個(gè)點(diǎn)位置不能相同!");
 }
 // 2。兩個(gè)點(diǎn)的值是否相等
 if(chessboard[p1.x][p1.y] !=chessboard[p2.x][p2.y]){
 System.out.println("輸入的兩個(gè)點(diǎn)值不相同!請(qǐng)重新輸入");
 return false;
 }
 // 3.判斷兩個(gè)點(diǎn)的連線(xiàn)情況
 if( doOneLine(chessboard,p1,p2) || doTwoLine(chessboard,p1,p2) || doThreeLine(chessboard,p1,p2)){
 return true;
 }
 return false;
 }
 
 // 1連線(xiàn)
 public static boolean doOneLine(int[][] chessboard,Point p1,Point p2){
 //定義最大值和最小值
 int max=0;
 int min=0;
 //判斷是循環(huán)行還是循環(huán)列
 if( p1.x==p2.x){
 //找y的最大值、找y的最小值、循環(huán)從 min+1 至 max-1、判斷是否為0、如果中間有一個(gè)不為0,則返回 false
 max=p1.y>p2.y?p1.y:p2.y;
 min=p1.yp2.x?p1.x:p2.x;
 min=p1.x

Point類(lèi)沒(méi)有寫(xiě)出來(lái)了,比較簡(jiǎn)單,里面就存了兩個(gè)數(shù)據(jù),表示數(shù)字的行和列,就不上圖了。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。


標(biāo)題名稱(chēng):java實(shí)現(xiàn)連連看游戲
網(wǎng)站URL:http://weahome.cn/article/ihdehc.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部