国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

基于Java的2048小游戲的設計與實現(xiàn),附源碼+文檔,適合課程設計,包遠程安裝調(diào)試運行

這篇具有很好參考價值的文章主要介紹了基于Java的2048小游戲的設計與實現(xiàn),附源碼+文檔,適合課程設計,包遠程安裝調(diào)試運行。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1、項目介紹

本游戲采用Java語言編寫,使用Eclipse編譯器,jdk1.8編譯環(huán)境。游戲的UI主要運用Java圖形界面編程(AWT),實現(xiàn)窗口化可視化的界面。

游戲的后臺通過監(jiān)聽鍵盤方向鍵來移動數(shù)字方塊,運用隨機數(shù)的思想隨機產(chǎn)生一個2或4的隨機數(shù),顯示在隨機方塊中,運用二維數(shù)組存儲、遍歷查找等思想,在每次移動前循環(huán)查找二維數(shù)組相鄰的移動方向的行或列可以合并與否,如果沒有可以合并的數(shù)字方塊同時又沒有空余的空間產(chǎn)生新的數(shù)字則游戲宣告結束,同時,當檢測到合并的結果中出現(xiàn)2048,也宣告游戲結束。

游戲設計了非常簡單的交互邏輯,流程如下:

java簡單小游戲編程源代碼,計算機畢設,畢業(yè)設計,java項目源碼,java,課程設計,開發(fā)語言,數(shù)據(jù)庫,計算機畢設,畢業(yè)設計,2048小游戲

為了增加游戲的用戶體驗,后期加入了操作音效(音效文件提取自百度移動應用商店——2048),在移動和合并方塊時播放不同聲音。

2、技術框架

運行系統(tǒng):windows

編程語言:java

系統(tǒng)架構:gui界面

系統(tǒng)框架:Swing+AWT

數(shù)據(jù)庫:無

Maven項目:否

運行環(huán)境:JDK8+idea

3、演示視頻

基于Java的2048小游戲的設計與實現(xiàn)

4、項目截圖

java簡單小游戲編程源代碼,計算機畢設,畢業(yè)設計,java項目源碼,java,課程設計,開發(fā)語言,數(shù)據(jù)庫,計算機畢設,畢業(yè)設計,2048小游戲
java簡單小游戲編程源代碼,計算機畢設,畢業(yè)設計,java項目源碼,java,課程設計,開發(fā)語言,數(shù)據(jù)庫,計算機畢設,畢業(yè)設計,2048小游戲
java簡單小游戲編程源代碼,計算機畢設,畢業(yè)設計,java項目源碼,java,課程設計,開發(fā)語言,數(shù)據(jù)庫,計算機畢設,畢業(yè)設計,2048小游戲

5、文檔截圖

java簡單小游戲編程源代碼,計算機畢設,畢業(yè)設計,java項目源碼,java,課程設計,開發(fā)語言,數(shù)據(jù)庫,計算機畢設,畢業(yè)設計,2048小游戲
java簡單小游戲編程源代碼,計算機畢設,畢業(yè)設計,java項目源碼,java,課程設計,開發(fā)語言,數(shù)據(jù)庫,計算機畢設,畢業(yè)設計,2048小游戲
java簡單小游戲編程源代碼,計算機畢設,畢業(yè)設計,java項目源碼,java,課程設計,開發(fā)語言,數(shù)據(jù)庫,計算機畢設,畢業(yè)設計,2048小游戲

6、代碼示例文章來源地址http://www.zghlxwxcb.cn/news/detail-771933.html

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;



public class Game extends JFrame {

	/**
	 * KevinWu
	 */
	private static final long serialVersionUID = 1L;

	public static void main(String[] args) {
		Game UI = new Game();
		UI.IntUI();
	}

	// 用于存放數(shù)據(jù)的數(shù)組
	private int Numbers[][] = new int[4][4];

	private void IntUI() {
		this.setTitle("2048小游戲");
		this.setLocation(450, 100);
		this.setSize(400, 500);
		this.setLayout(null);

		// 開始游戲按鈕
		ImageIcon imgicon = new ImageIcon("res/start.png");
		JButton bt = new JButton(imgicon);
		bt.setFocusable(false);
		bt.setBorderPainted(false);
		bt.setFocusPainted(false);
		bt.setContentAreaFilled(false);
		bt.setBounds(5, 10, 120, 30);// 設置按鈕的x,y坐標位置和寬度與高度
		this.add(bt);

		//后退一步按鈕
		ImageIcon backicon = new ImageIcon("res/backicon.png");
		JButton back = new JButton(backicon);
		back.setFocusable(false);
		back.setBorderPainted(false);
		back.setFocusPainted(false);
		back.setContentAreaFilled(false);
		back.setBounds(270, 10, 120, 30);// 設置按鈕的x,y坐標位置和寬度與高度
		this.add(back);

		// 關于按鈕
		ImageIcon imgicon2 = new ImageIcon("res/about.png");
		JButton about = new JButton(imgicon2);
		about.setFocusable(false);
		about.setBorderPainted(false);
		about.setFocusPainted(false);
		about.setContentAreaFilled(false);
		about.setBounds(160, 10, 70, 30);
		this.add(about);

		// 分數(shù)顯示
		JLabel lb = new JLabel("分數(shù):0");
		lb.setBounds(40, 45, 120, 30);
		lb.setFont(new Font("幼圓", Font.CENTER_BASELINE, 18));
		lb.setForeground(new Color(0x000000));
		this.add(lb);
		
		
		JCheckBox isSoundBox=new JCheckBox("靜音");
		isSoundBox.setBounds(290, 45, 120, 30);
		isSoundBox.setFont(new Font("幼圓", Font.CENTER_BASELINE, 18));
		isSoundBox.setFocusable(false);
		isSoundBox.setBorderPainted(false);
		isSoundBox.setFocusPainted(false);
		isSoundBox.setContentAreaFilled(false);
		this.add(isSoundBox);
		
		this.setDefaultCloseOperation(3);
		this.setResizable(false);
		this.setVisible(true);// 顯示界面

		// 創(chuàng)建事件處理類
		MyListener cl = new MyListener(this, Numbers, lb, bt, about,back,isSoundBox);
		bt.addActionListener(cl);
		about.addActionListener(cl);
		back.addActionListener(cl);
		isSoundBox.addActionListener(cl);
		this.addKeyListener(cl);

	}

	// 重寫窗體
	@Override
	public void paint(Graphics g) {
		super.paint(g);
		g.setColor(new Color(0xBBADA0));
		g.fillRoundRect(15, 110, 370, 370, 15, 15);// 大矩形框

		g.setColor(new Color(0xCDC1B4));
		for (int i = 0; i < 4; i++) {
			for (int j = 0; j < 4; j++) {
				g.fillRoundRect(25 + i * 90, 120 + j * 90, 80, 80, 15, 15);// 小矩形框
			}
		}

		// 調(diào)整數(shù)字的位置并上色
		for (int i = 0; i < 4; i++) {
			for (int j = 0; j < 4; j++) {
				if (Numbers[j][i] != 0) {
					int FontSize = 30;
					int MoveX = 0, MoveY = 0;
					switch (Numbers[j][i]) {
					case 2:
						g.setColor(new Color(0xeee4da));
						FontSize = 30;
						MoveX = 0;
						MoveY = 0;
						break;
					case 4:
						g.setColor(new Color(0xede0c8));
						FontSize = 30;
						MoveX = 0;
						MoveY = 0;
						break;
					case 8:
						g.setColor(new Color(0xf2b179));
						FontSize = 30;
						MoveX = 0;
						MoveY = 0;
						break;
					case 16:
						g.setColor(new Color(0xf59563));
						FontSize = 29;
						MoveX = -5;
						MoveY = 0;
						break;
					case 32:
						g.setColor(new Color(0xf67c5f));
						FontSize = 29;
						MoveX = -5;
						MoveY = 0;
						break;
					case 64:
						g.setColor(new Color(0xf65e3b));
						FontSize = 29;
						MoveX = -5;
						MoveY = 0;
						break;
					case 128:
						g.setColor(new Color(0xedcf72));
						FontSize = 28;
						MoveX = -10;
						MoveY = 0;
						break;
					case 256:
						g.setColor(new Color(0xedcc61));
						FontSize = 28;
						MoveX = -10;
						MoveY = 0;
						break;
					case 512:
						g.setColor(new Color(0xedc850));
						FontSize = 28;
						MoveX = -10;
						MoveY = 0;
						break;
					case 1024:
						g.setColor(new Color(0xedc53f));
						FontSize = 27;
						MoveX = -15;
						MoveY = 0;
						break;
					case 2048:
						g.setColor(new Color(0xedc22e));
						FontSize = 27;
						MoveX = -15;
						MoveY = 0;
						break;
					default:
						g.setColor(new Color(0x000000));
						break;
					}

					g.fillRoundRect(25 + i * 90, 120 + j * 90, 80, 80, 15, 15);// 小矩形框上色
					g.setColor(new Color(0x000000));
					g.setFont(new Font("Kristen ITC", Font.PLAIN, FontSize));
					g.drawString(Numbers[j][i] + "", 25 + i * 90 + 30 + MoveX,
							120 + j * 90 + 50 + MoveY);
				}
			}
		}
	}

}

到了這里,關于基于Java的2048小游戲的設計與實現(xiàn),附源碼+文檔,適合課程設計,包遠程安裝調(diào)試運行的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • python小游戲 2048小游戲設計與實現(xiàn)

    python小游戲 2048小游戲設計與實現(xiàn)

    ?? Hi,各位同學好呀,這里是L學長! ??今天向大家分享一個今年(2022)最新完成的畢業(yè)設計項目作品 python小游戲畢設 2048小游戲設計與實現(xiàn) (源碼) ?? 學長根據(jù)實現(xiàn)的難度和等級對項目進行評分(最低0分,滿分5分) 難度系數(shù):3分 工作量:3分 創(chuàng)新點:4分 今天我們用python實現(xiàn)

    2024年02月11日
    瀏覽(18)
  • 【C/C++小游戲】2048 大作戰(zhàn)?。ɑ贓asyx圖形窗口實現(xiàn))

    【C/C++小游戲】2048 大作戰(zhàn)?。ɑ贓asyx圖形窗口實現(xiàn))

    寫在前面 游戲簡介 Easyx 圖形庫 編寫游戲 預編譯代碼 第一步:初始化棋盤 第二步:繪制棋盤 第三步:用戶操作 第四步:封裝函數(shù) 完整代碼 效果展示 大家好! 本人是一個12歲六年級小學生,今年9月開始學習C++,曾經(jīng)學過1年Python。 這是我的第一篇博客,決定分享一個游戲

    2024年02月10日
    瀏覽(52)
  • 2048小游戲成品源碼

    2048小游戲成品源碼

    2048小游戲,可以自選背景顏色,方框顏色,音樂播放。 還可以展示當前玩家的排名,動態(tài)排名,及歷史玩家的排名。 前期需求: 使用pygame加載目錄音樂。MP3文件: 看下運行后的效果圖: =========參數(shù)設置: =========背景設置: =========方塊設置: ==========源碼分享:

    2024年02月16日
    瀏覽(29)
  • 【C語言】2048小游戲【附源碼】

    【C語言】2048小游戲【附源碼】

    歡迎來到英杰社區(qū) https://bbs.csdn.net/topics/617804998 ????????2048是一款數(shù)字益智類游戲,玩家需要使用鍵盤控制數(shù)字方塊的移動,合并相同數(shù)字的方塊,最終達到數(shù)字方塊上出現(xiàn)“2048”的目標。 ????????每次移動操作,所有數(shù)字方塊會朝著指定方向同時滑動,并在靠近邊

    2024年04月15日
    瀏覽(18)
  • MFC學習之2048小游戲程序源碼

    MFC學習之2048小游戲程序源碼

    2048游戲的開發(fā)原理相對簡單,它基于一個4x4的方格,通過控制數(shù)字方塊的移動來合成相同的數(shù)字方塊,并生成新的數(shù)字方塊。 具體實現(xiàn)過程如下: 確定需求:首先需要明確游戲的功能需求,如產(chǎn)生隨機數(shù)字方塊、控制數(shù)字方塊的移動、檢測碰撞等。 界面設計:設計游戲的界

    2024年02月16日
    瀏覽(28)
  • 基于C#的2048小游戲

    基于C#的2048小游戲

    最近在玩過2048這個小游戲后感覺很有意思,想著正在學C#的winfrom的我能不能自己寫一個2048游戲呢?于是就有了這個: ? 目錄 1.實現(xiàn)思路; 2.代碼實現(xiàn); 1.初始化地圖表示的數(shù)組; 2.繪制游戲的邊框; 3.設置每個數(shù)值對應的顏色(可省略); 4.添加控件; 5.四個方向的移動;

    2024年02月08日
    瀏覽(22)
  • 2048小游戲 java版(代碼+注釋)

    2048小游戲 java版(代碼+注釋)

    ????????一個純純小白,想寫點什么,也想學習一下怎么在這里寫東西,就簡單的寫個2048小游戲。寫的不好,大佬就不用看了,希望和大家交流學習,有寫的不好或有更好的建議也歡迎提出來。(需要用的可直接粘貼復制)(輕噴) 目錄 游戲展示 講解? 代碼 ???????

    2024年02月09日
    瀏覽(34)
  • 用JAVA寫一個2048的小游戲。

    用JAVA寫一個2048的小游戲。

    如圖所示: 使用軟件:eclipse2021-12版 JDK版本:JDK15.0.1 鏈接:https://pan.baidu.com/s/1NVWaklg9K2wRmBOLew6iMQ 提取碼:ts08 1. Client.java: 2.Constant.java 3.Block.java 4.BlockLoader.java 5.Drawable.java 6.Moveable.java 7.MyFrame.java 提示:代碼寫的有些臃腫,其中也有一些BUG,理解源碼以后可以修正。 鏈接:

    2024年02月10日
    瀏覽(19)
  • python快速實現(xiàn)2048小游戲

    python快速實現(xiàn)2048小游戲

    《2048》是一款比較流行的數(shù)字游戲,最早于2014年3月20日發(fā)行。原版2048首先在GitHub上發(fā)布,原作者是Gabriele Cirulli,后被移植到各個平臺。這款游戲是基于《1024》和《小3傳奇》的玩法開發(fā)而成的新型數(shù)字游戲。 操作指南: 每次可以選擇上下左右其中一個方向去滑動,每滑動

    2024年02月11日
    瀏覽(24)
  • python小游戲 滑雪小游戲設計與實現(xiàn) (源碼)

    python小游戲 滑雪小游戲設計與實現(xiàn) (源碼)

    ?? Hi,各位同學好呀,這里是L學長! ??今天向大家分享一個今年(2022)最新完成的畢業(yè)設計項目作品 python小游戲畢設 滑雪小游戲設計與實現(xiàn) (源碼) ?? 學長根據(jù)實現(xiàn)的難度和等級對項目進行評分(最低0分,滿分5分) 難度系數(shù):3分 工作量:3分 創(chuàng)新點:4分 我們利用python制作

    2024年02月04日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包