當前位置:首頁 » 操作系統 » android紙牌游戲源碼

android紙牌游戲源碼

發布時間: 2023-08-14 23:59:51

A. 求講解安卓游戲的代碼的電子書

50個ASP電子書籍,有入門,也有實戰電子書,做成了一個下載目錄,歡迎大家下載。

《Android應用開發揭秘》源代碼推薦
Android Phone驅動
安卓(android)編程入門開發教程筆記
Android核心技術與實例詳解【源代碼】推薦
android視頻播放器源碼
【Android】開發的十個案例打包下載推薦
Android 開發的QQ程序源代碼推薦
10個經典的Android開源應用項目(源代碼)推薦
Android 移動開發案例精選集錦源代碼推薦
《Android游戲編程之從零開始》書籍源碼推薦
Android 水果連連看源碼
Android界面切換之動畫效果全匯總推薦
Android經典源碼實例匯總(27個)推薦
[騰訊微博Android客戶端開發]課程文檔及源碼
深入淺出Android教程+原碼程式--台灣Adrioid專家強烈推薦..推薦
Android示例大全(從培訓到工作所有的例子)推薦
Android視錄視頻示例代碼下載
Android通訊錄程序源碼推薦
《Google+Android開發入門與實戰》代碼
android十個大案例源碼(貪吃蛇源、播放器、文件瀏覽器、圖片瀏覽..
(Android)俄羅斯方塊游戲項目源代碼推薦
Android視頻監控源碼
完美版的Android 拼圖游戲APK和工程源碼
Android電子書閱覽器(含源碼)
40種功能項目android源代碼下載推薦
android平台的連連看代碼
foursquare android客戶端源代碼
Android源碼(基於Linux內核)推薦
Android無線點菜系統
10個Android開發應用案例(源碼)推薦
android鬥地主程序源代碼
Android桌面程序Launcher源碼
http://down.51cto.com/data/133881
Android的小游戲源代碼
android源碼--小說閱讀器源碼
Android 條碼掃描程序源碼
《Android/OPhone開發完全講義》源代碼推薦
android文件管理器源代碼
Android 文本閱讀器源代碼
新浪微博android客戶端源碼--終結版
基於Android編寫的MP3播放器源碼(帶卡拉OK字幕)..推薦
Android PDF 閱讀器源碼
Android打地鼠游戲
android 做的小游戲源代碼
android拼圖 游戲源碼
sipdroid(Android SIP client)java源碼推薦
《Android移動開發一本就夠》源碼推薦
Android 圖片瀏覽器源碼
Android 海賊王連連看游戲源碼
Google Android SDK開發範例大全源碼(第二版)推薦
Android 天氣預報加widget源碼

騰訊電腦管家是集「殺毒+管理」2合1,系統安全防護於一身,自帶系統修復引擎的殺毒軟體,可以在殺毒後自動修復系統文件

管家獨有的二代反病毒引擎,防護查殺更徹底,清理軟體建議使用騰訊電腦管家 --首頁全面體檢--殺毒--清理垃圾-電腦加速--電腦診所,殺毒清理高效徹底


電腦管家企業平台為您解答。

騰訊電腦管家企業平台:http://..com/c/guanjia/

B. 基於android系統的手機游戲的開發

如果你有興趣為Android平台開發游戲,有很多你需要了解的東西。如果你有過游戲開發經驗,那麼轉移到移動平台上來將不是特別困難。你主要只需學習其架構以及API就行了。如果你是一名游戲開發新手,我總結了一張列表,上面有你必需知道的東西,供你起步用。這些知識適用於很多類型的游戲,包括動作類、策略類、模擬類和益智類。Android是一個基於Java的環境。這對初學者來說是個好消息,因為相對於C,Java被廣泛認為是一門更容易上手的語言,它是移動開發的規范。Google也做了一件出色的工作,它將API文檔化並提供示例代碼供使用。其中有個叫做APIDemos的示例幾乎展示了所有API的功能。如果你熟悉Java並且用過Eclipse,要讓你的第一個應用跑起來那是相當簡單。如果你以前從沒寫過代碼,在你前進路上還要學習很多,但別氣餒。

獲取SDK

新手上路的第一步便是獲取AndroidSDK(軟體開發工具包)。SDK里有一個核心類庫,一個模擬器,一些工具和示例代碼。我強烈建議使用Eclipse和AndroidEclipse插件。如果你玩Android的話,EclipseIDE對Java開發者來說很好用。如果這是你第一次開發Java項目,你可能會需要下載全套JDK,它裡麵包括簽名和部署你的應用程序的一些工具。

學習應用程序架構

別急著一頭扎進開發的海洋里,理解Android應用程序架構是很重要的。如果你不學一下,你設計出來的游戲在線下將很難調試。你將需要理解、Activities、Intents以及它們怎樣相互聯系。Google提供了很多有用的架構信息。真正重要的是要理解為什麼你的游戲需要多於一個的Activity,以及什麼才是設計一個有良好用戶體驗的游戲。要理解這些,首先要了解什麼是Activity生命周期。

學習Activity生命周期

Activity生命周期由Android操作系統來管理。你的activity創建、恢復、暫停、銷毀都受操作系統的支配。正確處理這些事件是很重要的,這樣應用程序才能表現良好,做用戶認為正確的事。在你設計你的游戲之前了解所有這些是如何工作的是件好事,因為以後你可以為自己節省調試時間和昂貴的重新設計時間。對大多數應用來說,默認的設置將工作正常,但對於游戲,你可能需要考慮將標志打開。當設置為默認時,Android在它認為合適時會創建activity的新實例。對於游戲來說,你可森余能只需要一個游戲activity的實例。這對於你要怎樣管理事務的狀態有些影響,但對於我來說,這解決了一些資源管理的問題,應予以考慮。

主循環

根據你寫的游戲的類型敏春賣,你可能需要也可能不需要一個主循環。如果你的游戲不依賴於時間或者它僅僅對用戶所做的加以回應,並且不做任何視覺上的改變,永遠等待著用戶的輸入,那麼你就不需要主循環。如果你寫的是動作類游戲或者帶有動畫、定時器或任何自動操作的游戲,你應該認真考慮下使用主循環。

游戲的主循環以一個特定的順序通常盡可能多的在每秒鍾內「滴答」提醒子系統運行。你的主循環需要在它自己的線程里運行,原因是Android有一個主用戶界面線程,如果你不運行自己的線程,用戶界面線程將會被你的游戲所阻塞,這會導致Android操作系統無法正常的更新任務。執行的順序通常如下:狀態,輸入,人工智慧,物理,動畫,聲音,錄像。

更新狀態意思是管理狀態轉換,例如游戲的結束、人物的選擇或下一個級別。很多橋逗時候你需要在某個狀態上等上幾秒鍾,而狀態管理應該處理這種延遲,並且在時間過了之後設置成下一個狀態。

輸入是指用戶按下的任何鍵、對於滾動條的移動或者用戶的觸摸。在處理物理之前處理這些是很重要的,因為很多時候輸入會影響到物理層,因而首先處理輸入將會使游戲的反應更加良好。在Android里,輸入事件從主用戶界面線程而來,因此你必須寫代碼將輸入放入緩沖區,這樣你的主循環可以在需要的時刻就從緩沖區里取到它。這並非難事。首先為下一個用戶輸入定義一個域,然後將或函數設為接到一個用戶動作就放到那個域里,有這兩步就夠了。如果對於給定游戲的狀態,這是一個合法的輸入操作,那麼所有輸入需要在那一刻做的更新操作都已經定下來了,剩下來就讓物理去關心怎樣響應輸入吧。

人工智慧所做的類似於用戶在決定下一個要「按」哪個按鈕。學習怎樣寫人工智慧程序超出了這篇文章的范圍,但大體的意思是人工智慧會按照用戶的意圖來按按鈕。這些也有待物理去處理和響應吧。

物理可能是也可能不是真正的物理。對於動作類游戲來說,關鍵點是要考慮到上一次更新的時間、正在更新的當前時間、用戶輸入以及人工智慧,並且決定它們朝著什麼方向發展和是否會發生沖突。對於一個你可視化地抓取一些部件並滑動它們的游戲來說,物理就是這個游戲中滑動部件或者使之放入合適的位置的部分。對於一個小游戲來說,物理即使這個游戲中決定答案是錯還是對的部分。你可能將其命名為其他東西,但每個游戲都有一個作為游戲引擎的紅肉部分(譯者註:可能是主體部分的意思),在這篇文章里,我把這部分稱為物理。

動畫並非像在游戲里放入會動的gif圖片那樣簡單。你需要使得游戲能在恰當的時間畫出每一幀。這並沒有聽起來那麼困難。保留一些像isDancing、danceFrame和那樣的狀態域,那樣動畫更新便能決定是否可以切換到下一幀去了。動畫更新真正做的事就那麼多。真正來顯示動畫的變化是由錄像更新來處理的。

聲音更新要處理觸發聲音、停止聲音、音量變化以及音調變化。正常情況下當寫游戲的時候,聲音更新會產生一些傳往聲音緩沖區的位元組流,但是Android能夠管理自己的聲音,因而你的選擇將是使用SoundPool或者MediaPlayer。它們都需要小心處理以免出錯,但你要知道,因為一些底層實現細節,小型、低比特率的聲音文件將帶來最佳的性能和穩定性。

錄像更新要考慮游戲的狀態、角色的位置、分數、狀態等等,並將一切畫到屏幕上。如果使用主循環,你可能需要使用SurfaceView,並做一個「推」繪制。對於其他視圖,視圖本身能夠調用繪制操作,主循環不必處理。SurfaceView每秒產生的幀數最多,最適合於一些有動畫或屏幕上有運動部件的游戲。錄像更新所要做的工作是獲取游戲的狀態,並及時地為這個狀態繪制圖像。其他的自動化操作最好由不同的更新任務來處理。

3D還是2D?

在開始寫游戲之前,你要決定是做3D的還是2D的。2D游戲有一個低得多的學習曲線,一般更容易獲得良好的性能。3D游戲需要更深入的數學技能,並且如果你不在意的話會有性能問題產生。如果你打算畫比方框和圓圈更復雜的圖形,還需要會使用3DStudio和Maya那樣的建模工具。Android支持OpenGL用來3D編程,並且在OpenGL方面有很多很好的教程可供學習。

建立簡單、高質量的方法

上手時,要確保你整個游戲不要就用一個龐大而冗長的方法。如果你遵循我上面描述的主循環模式,這將相當簡單。每個你寫的方法應當完成一個非常特定的任務,並且它就應該無差錯地那樣做。舉例來說,如果你需要洗一副紙牌,你應該寫一個「」的方法,並且該方法就應該只做這一件事。

這是一個適用於任何軟體開發的編碼實踐,但對於游戲開發來說這尤為重要。在一個有狀態的、實時的系統里,調試將變得非常困難。使你的方法盡量的小,一般的經驗法則是每個方法有且僅有一個目的(譯者註:完成且僅完成一個功能)。如果你要為一個場景用編程方式畫一個背景,你可能需要一個叫做「」的方法。諸如此類的任務能夠很快完成,因而你可以按照搭積木的方法來開發你的游戲,而你能夠繼續添加你要的功能,並且不會使得這一切難以理解。

最重要的是效率!

性能是任何游戲的主要問題。我們的目標是使得游戲的反應越快越好,看起來越流暢越好。某些方法如Canvas.drawLine比較慢。並且要將屏幕大小的點陣圖畫到主畫布上,每一幀都是代價昂貴的。如何權衡對於達到最佳性能很有必要。確保管理好你的資源,使用技巧來以最少量的CPU資源完成你的任務。如果性能不好的話,即使是最好的游戲玩起來也沒勁。人們一般對於游戲卡或者響應慢幾乎難以容忍。

提示和技巧

看一下SDK中的示例LunarLander。它使用SurfaceView,這對於一個每秒需要處理最多幀的游戲來說是合適的。如果你要做3D,示例中有GLView可以處理3D顯示的很多初始化工作。對LightRacer來說,我不得不優化把所有東西都畫出來這種方法,否則幀率將會大大地降低。我只在視圖初始化的時候把背景畫進一個點陣圖里一次。路徑放在它們自己的點陣圖里,隨著車手的前進而更新。這兩個點陣圖在每一幀里都被畫進主畫布中去,車手畫在頂端,到最後會有一個爆炸。這種技術使得游戲運行在一個可以玩的程度。

如果適用的話,使得你的點陣圖的大小精確等於你打算畫到屏幕上的大小,這也是個好的實踐。這么做了以後就需要縮放,可以節省CPU資源。

在游戲中始終一致的點陣圖配置(如RGBA8888)。這將會通過減少不同格式之間轉換的時間來節省圖形庫的CPU時間。

如果你決定開發3D游戲但沒有3D方面的知識,你需要挑選一兩本3D游戲編程方面的書並學習線性代數。你最少要理解點積、叉積、向量、單元向量、法線、矩陣和變換。這方面我遇到的最好的書是叫《3D游戲編程和計算機圖形學數學》。

聲音文件要小而且低比特率。需要載入的越少,載入速度越快,游戲所需內存越少。

聲音使用OGG文件,圖片使用PNG文件。

確保釋放所有媒體播放器,當Activity銷毀時空出所有的資源。這能保證垃圾收集器清除了所有東西,也能保證在兩次游戲開始之間沒有內存泄露。

加入Android谷歌小組,尋求社區支持。這里有人可以在開發過程中給你幫助。

最重要的是,花時間測試再測試,確保每一小部分都如你所願地工作。改善游戲是整個開發中最耗時最困難的部分。如果你匆匆將其推向市場,你很可能會使用戶們失望,你會感到你的努力都白費了。你不可能使所有人都喜歡你寫的東西,但你至少要盡量發布你最高質量的作品。

C. 高分求java紙牌游戲源代碼

Araneid 蜘蛛紙牌游戲

詳細參考工程主頁: http://pub.idr.gov.cn/jid/projects/araneid

源代碼下載(或附件):
http://pub.idr.gov.cn/jid/projects/araneid/download/araneid-1.1.0-src.zip

二進制下載:
http://pub.idr.gov.cn/jid/projects/araneid/download/araneid-1.1.0.zip

運行時請先解壓縮,然後執行 classes 目錄下的 start.bat

D. 誰知道紙牌游戲的源碼(VB,Java)在哪下載

兄弟,好不容易才幫你找到VB類的紙牌游戲源碼http://code.knowsky.com/down/7724.html

更多的,你可以去這里看看,希望有你所需要的:

E. 游戲軟體怎麼查看源代碼

游戲都是進行過編譯加密的無法看到源代碼。如果你想查看的游戲是開源的,可以到游戲的開源網站進行查看。

查看APP應用的源代碼的具體方法步驟如下:

1、首先在電腦內下載並安裝獲取網頁源碼app。

2、然後單擊打開網頁源碼APP並在APP中的輸入框內輸入想要查看的網址,再在界面內找到GO選項單並單擊。

3、單擊後等待APP最後載入3秒就可以成功的獲取APP源代碼並查看了。

Android 系統源代碼多大

是指sdk的源碼,還是android操作系統的源碼,不過都有10G左右,另外sdk的源碼是用git管理的,一次下載後,用git check就可以切換到各個版本。

Android SDK是用於開發Android上JAVA應用程序的,另外發布Android NDK,可以添加一些C語言寫的鏈接庫,至於Linux代碼,可以在Android源代碼中找到(SDK程序中只有編譯好的測試映像)。

應用程序開發用不到Linux代碼(搞嵌入式開發才會用到,而SDK不負責底層開發)。

F. 誰知道安卓游戲源碼下載的網站

可以去易查、手游、手機樂園、等網站。進行相對應的機型綁定…就可以下載自己喜歡的游戲! 91里就應該有吧 這位朋友您好你在泡椒網安卓論壇上下載

G. 怎樣查看 Android APP源代碼

將apk文件拷貝至sdcard上。
命令順序如下:

進入Android sdk文件夾/tools目錄下
輸入adb shell
輸入su
輸入cd data
輸入cd app
這時就可以看到你安裝的所有的apk文件。輸入cp 空格 對應的apk 空格 /sdcard/
這樣就將apk文件拷貝出來了。
將apk文件後綴直接變成rar格式,可以看到熟悉的目錄結構了,

其中xml文件打開後都是二進制的,無法查看。
這時就用到了一個android4me的AXMLPrinter2工具。(請自行網路搜索)
輸入以下命令,將xml文件解析出來
java -jar AXMLPrinter2.jar showtimes_list.xml
此命令是在命令行中查看此showtimes_list.xml
將showtimes_list.xml生成xml文件,則輸入以下命令:
java -jar AXMLPrinter2.jar showtimes_list.xml > h.xml
目前進行到這一步,只能看到xml文件的內容,其工程中的java源文件還是看不到,看目錄結構下有一個classes.dex文件,我們需要將dex文件變為jar文件。
這里用到了另一個工具dex2jar。(自行搜索下載)
在Windows下解壓之後的目錄如下圖所示:

在命令行中,進入到此目錄下:
在Windows下,輸入以下命令:
dex2jar.bat c:classes.dex
運行完之後,在C盤會多一個classes.dex.dex2jar.jar文件,此文件就是我們需要的jar文件。
利用jd-gui,將jar文件反向工程為java代碼。(請自行搜索下載)
它分為Windows、Linux、和max三個版本,這里我下載的是Windows版本的。
解壓之後,雙擊運行exe文件,選擇classes.dex.dex2jar.jar文件,相應的jar文件中的Java文件就被反向工程顯示出來了!

H. 求一個安卓開發小游戲源代碼,臨時交作業用

package com.fiveChess;

import android.app.Activity;
import android.os.Bundle;
import android.view.Display;
import android.view.Menu;
import android.view.MenuItem;
import android.view.Window;
import android.view.WindowManager;

public class MainActivity extends Activity {
GameView gameView = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
Display display = this.getWindowManager().getDefaultDisplay();
gameView = new GameView(this,display.getWidth(),display.getHeight());
setContentView(gameView);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add("重新開始").setIcon(android.R.drawable.ic_menu_myplaces);
menu.add("退出");
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(item.getTitle().equals("重新開始")){
gameView.canPlay = true;
gameView.chess = new int[gameView.row][gameView.col];
gameView.invalidate();
}else if(item.getTitle().equals("退出")){
finish();
}
return super.onOptionsItemSelected(item);
}
}

package com.fiveChess;

import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.Style;
import android.view.MotionEvent;
import android.view.View;

public class GameView extends View {
Context context = null;
int screenWidth,screenHeight;
String message = "";//提示輪到哪個玩家
int row,col; //劃線的行數和列數
int stepLength = 30;//棋盤每格間距
int[][] chess = null;//0代表沒有棋子,1代表是黑棋,2代表白旗
boolean isBlack = true;
boolean canPlay = true;
public GameView(Context context,int screenWidth,int screenHeight) {
super(context);
this.context = context;
this.screenWidth = screenWidth;
this.screenHeight = screenHeight;
this.message = "黑棋先行";
row = (screenHeight-50)/stepLength+1;
col = (screenWidth-10)/stepLength+1;
chess = new int[row][col];

}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint paint = new Paint();
paint.setColor(Color.WHITE);
canvas.drawRect(0, 0, screenWidth, screenHeight, paint);//畫背景
paint.setColor(Color.BLUE);
paint.setTextSize(25);
canvas.drawText(message, (screenWidth-100)/2, 30, paint);//畫最頂層的字
paint.setColor(Color.BLACK);
//畫棋盤
for(int i=0;i<row;i++){
canvas.drawLine(10, 50+i*stepLength, 10+(col-1)*stepLength, 50+i*stepLength, paint);
}
for(int i=0;i<col;i++){
canvas.drawLine(10+i*stepLength,50,10+i*stepLength,50+(row-1)*stepLength, paint);
}

for(int r=0;r<row;r++){
for(int c=0;c<col;c++){
if(chess[r][c] == 1){
paint.setColor(Color.BLACK);
paint.setStyle(Style.FILL);
canvas.drawCircle(10+c*stepLength, 50+r*stepLength, 10, paint);
}else if(chess[r][c] == 2){
//畫白棋
paint.setColor(Color.WHITE);
paint.setStyle(Style.FILL);
canvas.drawCircle(10+c*stepLength, 50+r*stepLength, 10, paint);

paint.setColor(Color.BLACK);
paint.setStyle(Style.STROKE);
canvas.drawCircle(10+c*stepLength, 50+r*stepLength, 10, paint);
}
}
}
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if(!canPlay){return false;}
float x = event.getX();
float y = event.getY();
int r = Math.round((y-50)/stepLength);
int c = Math.round((x-10)/stepLength);
if(r<0 || r>row-1 || c<0 || c>col-1){return false;}
if(chess[r][c]!=0){return false;}//若有棋子則不再畫棋子了
if(isBlack){
chess[r][c] = 1;
isBlack = false;
message = "輪到白棋";
}else{
chess[r][c] = 2;
isBlack = true;
message = "輪到黑棋";
}
invalidate();
if(judge(r, c,0,1)) return false;
if(judge(r, c,1,0)) return false ;
if(judge(r, c,1,1)) return false;
if(judge(r, c,1,-1)) return false;

return super.onTouchEvent(event);
}
private boolean judge(int r, int c,int x,int y) {//r,c表示行和列,x表示在y方向上的偏移,y表示在x方向上的偏移
int count = 1;
int a = r;
int b = c;
while(r>=0 && r<row && c>=0 && c<col && r+x>=0 && r+x<row && c+y>=0 && c+y<col && chess[r][c] == chess[r+x][c+y]){
count++;
if(y>0){
c++;
}else if(y<0){
c--;
}
if(x>0){
r++;
}else if(x<0){
r--;
}
}
while(a>=0 && a<row && b>=0 && b<col && a-x>=0 && a-x<row && b-y>=0 && b-y<col && chess[a][b] == chess[a-x][b-y]){
count++;
if(y>0){
b--;
}else if(y<0){
b++;
}
if(x>0){
a--;
}else if(x<0){
a++;
}
}
if(count>=5){
String str = "";
if(isBlack){
str = "白棋勝利";
}else{
str = "黑棋勝利";
}
new AlertDialog.Builder(context).setTitle("游戲結束").setMessage(str).setPositiveButton("重新開始", new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
chess = new int[row][col];
invalidate();

}
}).setNegativeButton("觀看棋局", new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
canPlay = false;

}
}).show();
return true;
}

return false;
}
}
PS:五子棋,無需圖片,直接在程序里畫出來的。注意我發的是兩個文件,一個activity,一個類文件,別把它當成一個文件了

熱點內容
公司郵箱收發件伺服器怎麼填 發布:2025-03-11 01:20:30 瀏覽:137
雲主機怎麼配置雲桌面 發布:2025-03-11 01:17:39 瀏覽:207
c語言tinyxml 發布:2025-03-11 01:12:39 瀏覽:823
資料庫inner 發布:2025-03-11 01:06:55 瀏覽:900
ice解壓 發布:2025-03-11 00:54:50 瀏覽:379
網址批量訪問 發布:2025-03-11 00:40:38 瀏覽:750
粉紅視頻腳本 發布:2025-03-11 00:39:56 瀏覽:446
伺服器名稱或ip從哪裡看 發布:2025-03-11 00:35:44 瀏覽:493
日本細菌戰資料庫 發布:2025-03-11 00:29:34 瀏覽:425
釣魚直播用什麼配置 發布:2025-03-11 00:28:39 瀏覽:417