1. 程式人生 > >用java做一個2048小遊戲

用java做一個2048小遊戲

昨天,自己突發奇想,能不能在忙碌的學習裡抽一點時間來做一點事情,然後,我就有了一個要做一個2048小遊戲的想法。說真的,java我已經認真學習了一段時間了,現在也剛剛學到Swing,雖然做這個2048還有很多東西沒有學習過,但是,一邊學一邊做才是我們菜鳥的樣子吧。

做這個東西,自己沒有什麼經驗,我是這樣想的:先做個需求出來吧,然後就有了第一部分的需求了;再按照需求,把開始部分想法做出來。

package My2048;

import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class Text {
	public static void main(String[] args) {
		new Text();
	}

	/*
	 * 1.先做介面
	 * 2.做一個面板1,存放遊戲裡面移動的數字的地方(先用按鈕代替)
	 * 3.再做一個面板2,裡面是有開始,暫停,結束按鈕,遊戲分數,遊戲時間
	 */
	public Text() {
		JFrame frame = new JFrame();
		// 標題
		frame.setTitle("我的2048");
		// 窗體的大小
		frame.setSize(600, 600);
		//新增面板1
		frame.setContentPane(getPanel1());
		// 新增面板2
		//frame.setContentPane(getPanel2());
		// 關閉窗體
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		// 佈局
		//frame.setLayout(new GridLayout(4, 0));
		
		// 窗體可見
		frame.setVisible(true);
		//窗體居中顯示
		frame.setLocationRelativeTo(null);
	}
	
	//建立面板1
	private JPanel panel1 = null;
	private JLabel label = null;  //分數
	private JTextField jtf = null;//分數顯示
	private JLabel label2 = null;//時間
	private JTextField jtf2 = null;//顯示時間
	
	public JPanel getPanel1(){
		if(panel1 == null){
			panel1 = new JPanel();
			
			label = new JLabel("分數:");
			jtf = new JTextField(10);
			label2 = new JLabel("時間:");
			jtf2 = new JTextField(10);
			
			//新增元件
			panel1.add(getBeginButton());
			panel1.add(getStopButton());
			panel1.add(getEndButton());
			panel1.add(label);
			panel1.add(jtf);
			panel1.add(label2);
			panel1.add(jtf2);
			
			panel1.setLayout(new FlowLayout());
			
		}		
		return panel1;
		
	}
	//開始按鈕
	private JButton BeginButton = null;
	public JButton getBeginButton(){
		if(BeginButton == null){
			BeginButton = new JButton("開始遊戲");
		}
		
		return BeginButton;		
	}
	//暫停按鈕
	private JButton StopButton = null;
	public JButton getStopButton(){
		if(StopButton == null){
			StopButton = new JButton("暫停");
						
		}
		
		return StopButton;		
	}
	//結束按鈕
	private JButton EndButton = null;
	public JButton getEndButton(){
		if(EndButton == null){
			EndButton = new JButton("結束");
		}		
		return EndButton;		
	}
	
	// 建立面板2
	private JPanel panel2 = null;

	public JPanel getPanel2() {
		if (panel2 == null) {
			panel2 = new JPanel();
		
		panel2.add(getButton1());
		panel2.add(getButton2());
		panel2.add(getButton3());
		panel2.add(getButton4());
		panel2.add(getButton5());
		panel2.add(getButton6());
		panel2.add(getButton7());
		panel2.add(getButton8());
		panel2.add(getButton9());
		panel2.add(getButton10());
		panel2.add(getButton11());
		panel2.add(getButton12());
		panel2.add(getButton13());
		panel2.add(getButton14());
		panel2.add(getButton15());
		panel2.add(getButton16());

		panel2.setLayout(new GridLayout(4, 0));
		// panel2.setLayout(new FlowLayout());
		
		}
		return panel2;
	}

	// 按鈕1
	private JButton button1 = null;

	public JButton getButton1() {
		if (button1 == null) {
			button1 = new JButton("1");
			button1.addMouseListener(new MouseAdapter() {
				@Override
				public void mouseClicked(MouseEvent arg0) {

				}
			});

		}
		return button1;
	}

	// 按鈕2
	private JButton button2 = null;

	public JButton getButton2() {
		if (button2 == null) {
			button2 = new JButton("2");

			button2.addMouseListener(new MouseAdapter() {
				@Override
				public void mouseClicked(MouseEvent arg0) {

				}
			});
		}
		return button2;
	}
這就是我當時寫的,因為是晚上,而且第二天還要上課,寫到1點就不寫了,裡面有太多的bug,但是我的想法還是要做出最基礎的效果可視介面出來,所以就成這樣的了吐舌頭

當時還想了一下第二天要做的事情:

對元件位置的任意設定
雙面板的可視性
製作秒錶

唉,第一次想做這些東西,根本沒有一個全域性的概念,只要想到哪裡做那裡了。

還想上傳一點圖,然後自己第一次寫這個部落格,不知道上傳成功了沒有 >--<||

相關推薦

java一個2048遊戲

昨天,自己突發奇想,能不能在忙碌的學習裡抽一點時間來做一點事情,然後,我就有了一個要做一個2048小遊戲的想法。說真的,java我已經認真學習了一段時間了,現在也剛剛學到Swing,雖然做這個2048還有很多東西沒有學習過,但是,一邊學一邊做才是我們菜鳥的樣子吧。 做這個東

java一個簡單的打字遊戲

Java也是可以做桌面程式的。只不過需要執行在裝有JDK的電腦環境上,所以應用不是很廣泛,但是用來提高自身的程式碼邏輯還是可以的!偶有一天看到金山的打字通,就想起何不做個簡單的打字遊戲用來練練手。於是就有了下文 首先建一個類MyTyping,只有main方法   執行main方法

Step by Step,JAVA一個FLAPPYBIRD遊戲(三)

遊戲介面的滾動背景 上一篇我們講了如何製作開始選單,開始選單比較簡單,就只涉及了一個Entity,接下來幾篇,我們要一步步實現遊戲介面,對應的gameState為GAME_STATE_PLAYING。 這一篇,我們先講滾動的背景是怎麼做到的。 Flappy

【python學習】使用python寫一個2048遊戲

ast stc 遊戲 多少 wan nbsp 小遊戲 效果 參考 個人博客:jerwang.cn 沒有參考其他代碼,效果圖: 話不多少,源代碼: https://github.com/jerustc/Python/blob/master/2048.py【python學

原生js寫2048遊戲

gin 小遊戲 替換 上下 數位 免費學習 title index.php parseint <!DOCTYPE html> <html> <head> <title> 2048-game </title&g

使用JS和Canvas一個html5遊戲

這是一個很簡單的html5遊戲,通過學習原博文自己做了些改造, 這是遊戲的截圖: 1.有計算抓住的怪物的數量 2.有背景,英雄,怪物。 第一步:建立html檔案和js檔案 建立一個games資料夾,在資料夾中建立js資料夾,images資料夾,以

Java一個及時翻譯工具

                     平時看英文文件或者查詢資料的時候,遇到了不懂的單詞,就要去百度,然後就會很麻煩。於是就想到用Java寫一個及時翻譯的小工具!預期的實現效果: 雙擊選中一個單詞,按下Ctrl+C進行復制 然後馬上顯示出對應單詞的中文翻譯首先基本思路是這樣的:    首先獲取系統剪下板的

java一個簡單的萬年曆

一個簡單的萬年曆製作 簡單介紹萬年曆的各功能實現: 1.首先鍵盤輸入查詢的年份和月份 Scanner sc = new Scanner(System.in); System.ou

lua實現一個2048遊戲

用lua寫了個在consle上執行的2048,這裡簡單說下是如何實現的。(原始碼地址:http://download.csdn.net/detail/c_boy_lu/9393255) 1.實現一

Java寫貪吃蛇遊戲

1 package snake; 2 3 import java.awt.Color; 4 import java.awt.Font; 5 import java.awt.Graphics; 6 import java.awt.event.ActionEvent; 7 impor

java一個簡單的英文翻譯程式

1.功能簡介 將文字檔案中的英文轉換為對應的中文 詞庫如下: 原始檔: 翻譯後的檔案: 輸入原始檔路徑,將翻譯後的內容輸出到result.txt檔案中。 2.重要技術 (1)如何載入詞庫檔案  

手把手教你Python完成一個控制檯遊戲

很多人想學Python程式設計或者已經瞭解過一點Python程式設計基礎,卻沒辦法開發出一個專案

java一個簡單的視訊轉碼器

用java做一個視訊轉碼器 本Markdown編輯器使用[StackEdit][6]修改而來,用它寫部落格,將會帶來全新的體驗哦: 用java做一個視訊轉碼器,首先實現視訊格式轉換,需要用到兩個軟體”ffmpeg”和”mencoder”話不多說,直接上程式碼

C#一個簡單紙牌遊戲的程式

小子不才學C#沒多久,想做個窗體紙牌遊戲玩,但是窗體應用懂得不多,只能在控制命令臺上進行遊戲設計,希望有大神能幫我設計這個窗體程式,或者推薦好的窗體設計資料,謝謝了,控制命令臺程式如下: namespace BasicCardsGame {     class OutOfR

基於java製作一個飛機遊戲(學習心得)

emmm,第一篇部落格 用了這麼久的csdn,都是在觀摩大佬們發帖,一隻小萌新瑟瑟發抖,不敢說話,甚 至連程式碼也不能完全讀懂。假期在b站自學(可以說是複習)了java課程,尚學堂的 2018版。連結如下:https://www.bilibili.com

construct2飛機射擊遊戲

首先開啟一個空白專案,雙擊空白處,插入sprite,可以自己畫個,也可以從其他地方找圖片,我是自己畫的,畫完再調一下大小就可以了,如下: 遊戲方式我用的是touch(可以用滑鼠託著的) 第一個event可以讓滑鼠用左鍵拖著飛機走,第二個event就是

動手JAVA遊戲--貪吃蛇

轉眼在大學蹲了快三個春秋,在這幾年裡我可謂是經歷過了大學的“風風雨雨”,逃課、泡女、通宵打機......種種的種種!還有一年就畢業了,回首過去,說實在的還真有點後悔,畢竟看到別人被大公司提前錄用而自己還在碌碌無為在此我想給那些剛進大學的朋友一個忠告:大學真的真的不是給你來玩

Java 個“你畫手機猜”的遊戲

> 本文適合有 Java 基礎的人群 ![](https://img2020.cnblogs.com/blog/759200/202009/759200-20200923184426141-1352914100.gif) 作者:**DJL-Lanking** HelloGitHub 推出的[《講

[Python] python一個遊戲輔助指令碼,完整思路

一、說明   簡述:本文將以4399小遊戲《寵物連連看經典版2》作為測試案例,通過識別小圖示,模擬滑鼠點選,快速完成配對。對於有興趣學習遊戲指令碼的同學有一定的幫助。   執行環境:Win10/Python3.5。   主要模組:win32gui(識別視窗、視窗置頂等操作)、PIL(螢幕截圖)、nump

cocos creator微信遊戲截圖

核心程式碼: var canvas = cc.game.canvas; var width = cc.winSize.width; var height = cc.