導航:首頁 > 源碼編譯 > 2048源碼html

2048源碼html

發布時間:2022-10-31 01:37:55

⑴ 求2048朝代版的源代碼

import javax.swing.*;
import java.awt.*;
@SuppressWarnings("serial")
public class Game_block extends JLabel {
private int value;
public Game_block() {
super("go!");
value = 0;
setFont(new Font("font", Font.PLAIN, 40));
setBackground(Color.black);
}
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
String Text = String.valueOf(value);
if (value != 0){
if(value == 2)
setText("夏");
}
if (value != 0){
if(value == 4)
setText("商");
}
if (value != 0){
if(value == 8)
setText("周");
}
if (value != 0){
if(value == 16)
setText("秦");
}
if (value != 0){
if(value == 32)
setText("漢");
}
if (value != 0){
if(value == 64)
setText("三國");
}
if (value != 0){
if(value == 128)
setText("南北朝");
}
if (value != 0){
if(value == 256)
setText("隋");
}
if (value != 0){
if(value == 1024)
setText("五代十國");
}
if (value != 0){
if(value == 2048)
setText("宋遼");
}
if (value != 0){
if(value == 4096)
setText("宋金");
}
if (value != 0){
if(value == 8192)
setText("元");
}
if (value != 0){
if(value == 16384)
setText("明");
}
if (value != 0){
if(value == 32768)
setText("清");
}
if (value != 0){
if(value == 65536)
setText("現代");
}
else
setText("2048");
setColor();
}
public void setColor() {
if (this.value == 0)
setBackground(Color.black);
else if (this.value == 2)
setBackground(new Color(238, 228, 218));
else if (this.value == 4)
setBackground(new Color(248, 232, 248));
else if (this.value == 8)
setBackground(new Color(243, 177, 116));
else if (this.value == 16)
setBackground(new Color(243, 177, 126));
else if (this.value == 32)
setBackground(new Color(248, 149, 90));
else if (this.value == 64)
setBackground(new Color(249, 94, 50));
else if (this.value == 128)
setBackground(new Color(239, 207, 108));
else if (this.value == 256)
setBackground(new Color(239, 207, 99));
else if (this.value == 512)
setBackground(new Color(239, 203, 82));
else if (this.value == 1024)
setBackground(new Color(239, 199, 57));
else if (this.value == 2048)
setBackground(new Color(239, 195, 41));
else if (this.value == 4096)
setBackground(new Color(255, 60, 57));
else if (this.value == 8192)
setBackground(new Color(258, 60, 59));
else if (this.value == 16384)
setBackground(new Color(262, 62, 59));
else if (this.value == 32768)
setBackground(new Color(262, 64, 62));
else if (this.value == 65536)
setBackground(new Color(264, 64, 66));
}
}

______________________________________________________
import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.*;
@SuppressWarnings("serial")
public class Game_my2048 extends JFrame implements KeyListener {
Game_block[] block;
JPanel panel;
boolean numFlag;
int moveFlag;
int a ;//a 的引入是為了防止連加的情況出現
public Game_my2048() {
numFlag = true;
moveFlag = 0;
block = new Game_block[16];
setTitle("2048朝代版");
setSize(400, 400);
setLocation(500, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
panel = (JPanel) getContentPane();
panel.setLayout(new GridLayout(4, 4, 5, 5));
addBlock();
for (int i = 0; i < 2; i++)
appearBlock();
this.addKeyListener(this);
this.setVisible(true);
}
public void addBlock() {
for (int i = 0; i < 16; i++) {
block[i] = new Game_block();
block[i].setHorizontalAlignment(JLabel.CENTER);
// 不透明
block[i].setOpaque(true);
panel.add(block[i]);
}
}
public void appearBlock() {
while(numFlag) {
int index = (int) (Math.random() * 16);
if (block[index].getValue() == 0) {
if (Math.random() < 0.5)
block[index].setValue(2);
else
block[index].setValue(4);
break;
}
}
}
public void judgeAppear() {
int sum = 0;
for (int i = 0; i < 16; i++) {
if (block[i].getValue() != 0)
sum++;
}
if (sum == 16)
numFlag = false;
}

public void upBlock() {
for (int i = 12; i < 16; i++) {
int index = i;
for (int j = i - 4; j >= i - 12; j -= 4) {
int valueI = block[index].getValue(), valueJ = block[j]
.getValue();
if (valueJ == 0) {
block[index].setValue(0);
block[j].setValue(valueI);
} else {
if (valueI == valueJ) {
block[index].setValue(0);
block[j].setValue(valueI + valueJ);
if (valueI + valueJ == 4096)
win();
numFlag = true;
moveFlag = 0;
} else if (numFlag == false)
moveFlag += 1;
}
index = j;
}
}
}
public void downBlock() {
for (int i = 0; i < 4; i++) {
a = 5;
int index = i;
for (int j = i + 4; j <= i + 12; j += 4) {
int valueI = block[index].getValue(), valueJ = block[j]
.getValue();
if (valueJ == 0) {
block[index].setValue(0);
block[j].setValue(valueI);
} else {
if (valueI == valueJ) {
block[index].setValue(0);
block[j].setValue(valueI + valueJ);
if (valueI + valueJ == 4096)
win();
numFlag = true;
moveFlag = 0;
} else if (numFlag == false)
moveFlag += 1;
}
index = j;
}
}
}
public void rightBlock() {
for (int i = 0; i <= 12; i += 4) {
int index = i;
for (int j = i + 1; j <= i + 3; j++) {
int valueI = block[index].getValue(), valueJ = block[j]
.getValue();
if (valueJ == 0) {
block[index].setValue(0);
block[j].setValue(valueI);
} else {
if (valueI == valueJ) {
block[index].setValue(0);
block[j].setValue(valueI + valueJ);
if (valueI + valueJ == 4096)
win();
numFlag = true;
moveFlag = 0;
} else if (numFlag == false)
moveFlag += 1;
}
index = j;
}
}
}
public void leftBlock() {
for (int i = 3; i <= 15; i += 4) {
int index = i;
for (int j = i - 1; j >= i - 3; j--) {
int valueI = block[index].getValue(), valueJ = block[j]
.getValue();
if (valueJ == 0) {
block[index].setValue(0);
block[j].setValue(valueI);
} else {
if (valueI == valueJ) {
block[index].setValue(0);
block[j].setValue(valueI + valueJ);
if (valueI + valueJ == 4096)
win();
numFlag = true;
moveFlag = 0;
} else if (numFlag == false)
moveFlag += 1;
}
index = j;
}
}
}
@Override
public void keyPressed(KeyEvent e) {
switch (e.getKeyCode()) {
case KeyEvent.VK_UP:
upBlock();
judgeAppear();
appearBlock();
over();
break;
case KeyEvent.VK_DOWN:
downBlock();
judgeAppear();
appearBlock();
over();
break;
case KeyEvent.VK_LEFT:
leftBlock();
judgeAppear();
appearBlock();
over();
break;
case KeyEvent.VK_RIGHT:
rightBlock();
judgeAppear();
appearBlock();
over();
break;
}
}
public void over() {
if (!numFlag && moveFlag >= 36) {
block[4].setText("G");
block[5].setText("A");
block[6].setText("M");
block[7].setText("E");
block[8].setText("O");
block[9].setText("V");
block[10].setText("E");
block[11].setText("R");

block[11].addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
reStart();
}
});
}
}

public void win() {

block[0].setText("Y");
block[1].setText("O");
block[2].setText("U");
block[13].setText("W");
block[14].setText("I");
block[15].setText("N");

block[15].addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
reStart();
}
});
}
public void reStart(){
numFlag=true;
moveFlag=0;
for(int i=0;i< 16;i++)
block[i].setValue(0);
for (int i = 0; i < 2; i++)
appearBlock();
}
@Override
public void keyTyped(KeyEvent e) {
}
@Override
public void keyReleased(KeyEvent e) {
}
public static void main(String args[]) {
JFrame.(true);
new Game_my2048();
}
}

__________________________________________________________________________
這個代碼卻少很多功能的

⑵ 2048的游戲規則是什麼

2048游戲共有16個格子,初始時初始數字由2或者4構成。

1、手指向一個方向滑動,所有格子會向那個方向運動。

2、相同數字的兩個格子,相撞時數字會相加。

3、每次滑動時,空白處會隨機刷新出一個數字的格子。

4、當界面不可運動時(當界面全部被數字填滿時),游戲結束;當界面中最大數字是2048時,游戲勝利。

(2)2048源碼html擴展閱讀:

2048版本

1、傳統版

有16個格子,初始時會有兩個格子上安放了兩個數字2,每次可以選擇上下左右其中一個方向去滑動,每滑動一次,所有的數字方塊都會往滑動的方向靠攏外,系統也會在空白的地方隨即出現一個數字方塊,相同數字的方塊在靠攏、相撞時會相加。

2、漢服版

原版的數字由各種漢服形制的圖片替代,不斷的疊加最終拼湊出「玄端」這個漢服形制方塊就算成功。

3、朝代版

數字置換成中國自夏開始的各個朝代,就是兩個夏拼成一個商,兩個商拼成一個周……每次碰撞後便生成下一個朝代,以此類推直到中華人民共和國完成通關。

⑶ 有沒有android版的 2048(俄羅斯方塊版本、消消樂版本) 游戲的源代碼

你到CSDN上邊查一下,一大把,都是源碼。

⑷ vb做的2048怎麼介紹作法

好吧好吧,既然有人問到我這里來了,就簡單說一下吧。其實我是新人,所以說那個代碼寫的真的很亂。當時寫的時候都不會控制項數組,所以說很麻煩,內部操作需要一個2維數組(3,3)生成方塊不難,用循環遍歷數組,rnd函數表示生成。移動的時候稍微難一點,其實只要掌握了一個方向就ok了,其他的都是復制粘貼,我現在手上不方便看源碼,講不清楚。當然我看到大神做出來的時候才知道什麼叫做差距,我基本比大神多用了3倍的代碼,而且大神那個只要放一個label,一個picturebox,把代碼一粘貼就直接能用了。你可以去看看,貼吧里很多做2048的,而且我做的是vb。net版的,和vb6還有不少不一樣的地方。

⑸ 2048游戲鏈接地址。

如果你是安卓用戶,這是我個人收集的全部2048信息,望採納
360:
http://www.an.com/soft_1447875.html 可以保存的2048 (SL大法)
http://zhushou.360.cn/detail/index/soft_id/1607722?recrefer=SE_D_2048 2048六邊形 (= =! 和正方形感覺不一樣,很難死)
安智
http://www.wandoujia.com/apps/naozine.games.tv2048 (六邊形)
http://www.an.com/soft_1447876.html 5X5 2048(更加時間殺手)
http://www.an.com/soft_1447877.html 元素周期表 (學霸必備,本學渣淚目 T T)

海外黨の福利 (google play):
https://play.google.com/store/apps/details?id=com.GameCloud.tofesave 普通帶保存(還是SL)
https://play.google.com/store/apps/details?id=com.GameCloud.tofefib 斐波那契(for 數學愛好者)
https://play.google.com/store/apps/details?id=com.GameCloud.tofe5x5 5X5

python可以寫軟體么怎麼寫

22點24分准時推送,第一時間送達


編輯:技術君 | 來源:youerning



上一篇:

正文


前言

用 Python 寫安卓 APP 肯定不是最好的選擇,目前用Java和 kotlin 寫的居多,但是肯定也是一個很偷懶的選擇,而且實在不想學習 Java,再者,就編程而言已經會的就 Python與Golang(註:Python,Golang水平都一般),那麼久Google了一下Python 寫安卓的 APP 的可能性,還真行。

既然要寫個APP,那麼總得要有個想法吧。其實想做兩個APP來著,一個是自己寫著好玩的,一個是關於運維的。關於運維的APP,設計應該如下

可能長這樣

然後設計應該是這樣。

如果覺得可行的話,評論留言一下你覺得應該寫進這個APP的運維常用命令吧^_^,筆者暫時想到的是top,free -m,df –h,uptime,iftop,iotop,如果有什麼好的想法就狠狠的砸過來吧,筆者到時應該也會把這個寫成一個項目放到github上,大家一起用嘛,開源才是王道,哈哈。

開發安卓APP

我們使用kivy開發安卓APP,Kivy是一套專門用於跨平台快速應用開發的開源框架,使用Python和Cython編寫,對於多點觸控有著非常良好的支持,不僅能讓開發者快速完成簡潔的交互原型設計,還支持代碼重用和部署,絕對是一款頗讓人驚艷的NUI框架。

因為跨平台的,所以只寫一遍代碼,就可以同時生成安卓及IOS的APP,很酷吧。

本文會帶大家寫一個Hello world並瞧一瞧 Python 版的2048的代碼

kivy安裝

環境說明:筆者在用的是Python2.7.10

這里僅介紹windows平台安裝

所有平台參考: https://kivy.org/#download

更新pip,setuptools

python -m pip install --upgrade pip wheel setuptools

然後是安裝所需要的依賴

python -m pip install docutils pygmentspypiwin32 kivy.deps.sdl2 kivy.deps.glew
kivy.deps.gstreamer --extra-index-url https://kivy.org/downloads/packages/simple/

值得注意的是,上面的安卓需要訪問Google,所以請自備梯子,而且kivy.deps.gstreamer這個包比較大(95MB),可以單獨本地安裝,http://pan..com/s/1o7mlxNk

然後就是安裝kivy了

python -m pip install kivy

至此,安裝就已經完畢了,值得注意的是64位系統沒有開啟虛擬化支持,在導入kivy的時候會報錯,如果是64位系統就設置一下機器的BIOS,開啟虛擬化支持吧。

註:這里只是kivy的運行環境,這樣我就能直接在windows機器上直接調試了,怎麼將代碼編譯成APK文件我們會在後面講到。

如果kivy在python中應該就能導入了。

按照世界慣例,我們」hello」一下吧。

新建一個.py文件

from kivy.app import Appfrom kivy.uix.button importButton
class TestApp(App):
def build(self):
return Button(text='Hello,kivy')
TestApp().run()

運行

然後會彈出一個框,大概如下,點擊」hello,kivy」會變顏色

點擊窗口並按「F1」會這個窗口的一些屬性

然後我們回過頭看一看代碼。

##導入App,然後讓TestApp這個類繼承
from kivy.app import App##導入一個Button,運維有這個button,當你點擊的時候才會有所反應
from kivy.uix.button
importButton
###定義類,名字必須是xxxAppclass TestApp(App):
###build一個Button
def build(self):
###返回一個Button,文字內容是「Hello,kivy」
return Button(text='Hello,kivy')
##運行,因為繼承了App,所以才有的run這個方法TestApp().run()

上面就是我們的Hello了

在windows上運行當然沒有什麼太大的意義,怎麼在安卓手機上運行才是我們想要的,

這時我們需要一個編譯環境。

官方說明的環境,如下:

You』ll need:


⑺ 急求游戲2048源代碼,要求使用C++和HGE編寫,充分體現面向對象編程的特點。

一看就知道是作業,具體代碼還是自己寫吧,我可以給一些思路。
構建一個類來存儲矩陣的狀態,以及操作(上下左右)的代碼,一個簡單的實現方案是只需要寫向一個方向移動的代碼,然後通過轉換矩陣的方向來實現其他的方向。
面向對象嘛你,可以父類定義N*N矩陣,只實現一個移動方向,子類通過繼承實現4*4矩陣,和各個移動方向。

⑻ 請問2048游戲是怎麼玩的有方法嗎

更多義項

更多圖片(7張)
《2048》是比較流行的一款數字游戲。原版2048首先在GitHub上發布,原作者是Gabriele Cirulli。它是基於《1024》和《小3傳奇》的玩法開發而成的新型數字游戲。

中文名:2048
原版名稱:2048
游戲類型:益智
游戲平台:安卓系統、IOS系統、PC
所屬系列:手機游戲
發行日期:2014/3/20
製作人:flyfish
玩家人數:單人
分享
研發歷程

2014年Gabriele Cirulli利用周末的時間寫2048這個游戲的程序,僅僅只是好玩而已。他想用一種不同的視覺展現效果和更快速的動畫來創造屬於我自己的游戲版本

AsherVollmer和GregWohlwend作為Threes的開發者,他們在開發這款游戲的時候投入了大量的時間和精力。在製作2048的過程中,他決定把項目託管到Github上去,並且通過Github完成項目。完成了這個游戲之後,通過GithubPages發布,並發表在DesignerNews上。

游戲規則

每次可以選擇上下左右其中一個方向去滑動,每滑動一次,所有的數字方塊都會往滑動的方向靠攏外,系統也會在空白的地方亂數出現一個數字方塊,相同數字的方塊在靠攏、相撞時會相加。不斷的疊加最終拼湊出2048這個數字就算成功。

主要版本

傳統版
有16個格子,初始時會有兩個格子上安放了兩個數字2,每次可以選擇上下左右其中一個方向去滑動,每滑動一次,所有的數字方塊都會往滑動的方向靠攏外,系統也會在空白的地方隨即出現一個數字方塊,相同數字的方塊在靠攏、相撞時會相加。


2048傳統版

六邊形版 六邊形方塊版地2048


朝代版本 數字置換成中國自夏開始的各個朝代,就是兩個夏拼成一個商,兩個商拼成一個周……每次碰撞後便生成下一個朝代,以此類推直到中華人民共和國完成通關。

2048朝代版本

2048 3D中文版 2048 3D中文版的界面突破性的採用純3D環境,方塊之間的碰撞和交互更加刺激直觀,支持360並無死角的視角旋轉、移動及縮放,玩法新穎獨特。

2048 3D中文版

查看完整表格
游戲技巧

1、最大數盡可能放在角落。
2、數字按順序緊鄰排列。
3、首先滿足最大數和次大數在的那一列/行是滿的。
4、時刻注意活動較大數(32以上)旁邊要有相近的數。
5、以大數所在的一行為主要移動方向
6、不要急於「清理桌面」。

游戲評價

Gabriele Cirulli把源代碼對外開放。使得更新了編譯語言意味著游戲更好的普適性,可以支持更多平台,視覺上的美化使得它即便在山寨作品中也是令人賞心悅目的佼佼者,而開放了源代碼,更意味著使用者們可以根據自己的喜好開發出更五花八門的2048版本。

* 詞條由網民創作並享有版權,請保護版權歸屬
了解更多 2048 的討論  用網路知道
-
-

⑼ 數字消除湊出2048的那個游戲叫什麼名字,到哪兒下

如果你是安卓用戶
360:
http://www.an.com/soft_1447875.html 可以保存的2048 (SL大法)
http://zhushou.360.cn/detail/index/soft_id/1607722?recrefer=SE_D_2048 2048六邊形 (= =! 和正方形感覺不一樣,很難死)
安智
http://www.wandoujia.com/apps/naozine.games.tv2048 (六邊形)
http://www.an.com/soft_1447876.html 5X5 2048(更加時間殺手)
http://www.an.com/soft_1447877.html 元素周期表 (學霸必備,本學渣淚目 T T)

海外黨の福利 (google play):
https://play.google.com/store/apps/details?id=com.GameCloud.tofesave 普通帶保存(還是SL)
https://play.google.com/store/apps/details?id=com.GameCloud.tofefib 斐波那契(for 數學愛好者)
https://play.google.com/store/apps/details?id=com.GameCloud.tofe5x5 5X5

閱讀全文

與2048源碼html相關的資料

熱點內容
匯編編譯後 瀏覽:472
php和java整合 瀏覽:827
js中執行php代碼 瀏覽:439
國產單片機廠商 瀏覽:56
蘋果手機怎麼設置不更新app軟體 瀏覽:283
轉行當程序員如何 瀏覽:491
蘋果id怎麼驗證app 瀏覽:863
查看手機命令 瀏覽:952
抖音反編譯地址 瀏覽:224
如何加密軟體oppoa5 瀏覽:232
java從入門到精通明日科技 瀏覽:93
拆解汽車解壓視頻 瀏覽:596
新版百度雲解壓縮 瀏覽:591
android上下拉刷新 瀏覽:879
centos可執行文件反編譯 瀏覽:836
林清玄pdf 瀏覽:270
黑馬程序員java基礎 瀏覽:283
awss3命令 瀏覽:358
百度店鋪客戶訂單手機加密 瀏覽:501
釘釘班群文件夾怎麼上傳文件 瀏覽:749