安卓小游戲源代碼下載
『壹』 安卓單機小游戲 安卓經典手機小游戲下載
去九游安卓網吧,地址是a.9game.cn
,九游是國內最大的安卓游戲資源網站,游戲有很多,分類也很齊全,即時、回合、角色、益智、動作、射擊、棋牌、策略、冒險、養成等等,去看看吧,用手機或電腦瀏覽器都可以登陸直接下載的
『貳』 求小游戲源代碼
貓版超級瑪麗游戲しょぼんのアクションBGMcastle.mp3
.......................................
geon.mp3
.......................................field.mp3
.......................................puyo.mp3
.......................................star4.mp3
....................................desktop.ini
....................................loadg.cpp
....................................main.cpp
....................................main.h
....................................RESrock.png
.......................................rock2.png
.......................................haikei.png
.......................................item.png
.......................................omake.png
.......................................omake2.png
.......................................player.png
.......................................syobon3.png
....................................... eki.png
....................................SE4-clear.mp3
......................................allclear.mp3
......................................rockbreak.mp3
......................................rockcoin.mp3
......................................rockkinoko.mp3
......................................coin.mp3
......................................death.mp3
......................................dokan.mp3
......................................gameover.mp3
......................................goal.mp3
......................................hintblock.mp3
......................................humi.mp3
......................................jump.mp3
......................................jumpblock.mp3
......................................kirra.mp3
......................................koura.mp3
......................................powerup.mp3
......................................pswitch.mp3
...................................... ekifire.mp3
.....................................YSapploc.msi
.......................................AppLoc.tmp
....................................しょぼんのアクション.exe
....................................リードミー.txt
....................................點我開始玩.cmd
....................................BGM
....................................RES
....................................SE
....................................SYS
................しょぼんのアクション
http://www.pudn.com/downloads385/sourcecode/game/detail1652652.html
http://www.pudn.com/downloads234/sourcecode/game/detail1099372.html
http://syobon.codeplex.com/releases/62191/download/214890
變態版http://download.csdn.net/download/lc19890326/861250
VF
- 表單(scx/sct)可以用類瀏覽器的ViewClassCode功能得到包括所有屬性和代碼的prg格式文本
報表(frx/frt)無法導出成prg格式
菜單(mnx/mnt)編譯時已自動生成了prg格式的文件mpr
注意「文件類型」一定要選擇「窗體」類型,否則「查看代碼」將處於隱藏狀態,無法看到原代碼,切記!!
1:如果只是想獲得網站的樣式,使用瀏覽器的「保存」功能就可以實現!關鍵是下載到CSS文件就可以了!
2:找到對方使用的整站程序
『叄』 求C++小游戲源代碼啊~
一個戀愛小測試賊靈驗哦
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,m,a,b,c,d,e,f,g,h,i,j,k,l,sum;
cout<<"歡迎來到戀愛指數測試器*>-<*"<<endl;
for(int i=1;i<=1000000000;i++)
l=i;
cout<<"獨家的哦*^0^*"<<endl;
for(int i=1;i<=1000000000;i++)
l=i;
cout<<"以下異性均為合適年齡"<<endl;
for(int i=1;i<=1000000000;i++)
l=i;
cout<<"下列問題如果是則輸入2,如果不是則輸入1,一點也沒感覺輸入0"<<endl;
for(int i=1;i<=1000000000;i++)
l=i;
cout<<"加油,面對你自己!*-o-*"<<endl;
for(int i=1;i<=1000000000;i++)
l=i;
cout<<"question one:"<<"你是否面對異性時有莫名心跳?"<<endl;
cin>>n;
cout<<endl;
cout<<"question two:"<<"你是否有看到異性被撩時很憤怒?"<<endl;
cin>>m;
cout<<endl;
cout<<"question three:"<<"你是否懼怕見到一位異性的家長"<<endl;
cin>>a;
cout<<endl;
cout<<"question four:"<<"你是否經常刷一位異性的QQ或其他軟體"<<endl;
cin>>b;
cout<<endl;
cout<<"question five:"<<"想不想真心和Ta用情頭?"<<endl;
cin>>c;
cout<<endl;
cout<<"question six:"<<"和Ta邂逅過嗎?"<<endl;
cin>>d;
cout<<endl;
cout<<"question seven:"<<"吃過同一個飯碗里的東西嗎?"<<endl;
cin>>e;
cout<<endl;
cout<<"question eight:"<<"有過一個人在夢里與Ta相遇嗎?"<<endl;
cin>>f;
cout<<endl;
cout<<"question nine:"<<"有為了等Ta一個人站在風雨中嗎?"<<endl;
cin>>g;
cout<<endl;
cout<<"question ten:"<<"想kissTa不,想摸Ta的頭發嗎?"<<endl;
cin>>h;
cout<<endl;
sum=n+m+a+b+c+d+e+f+g+h;
cout<<"正在測評中,請稍後..."<<endl;
for(int i=1;i<=1000000000;i++)
l=i;
if(sum>=16&&sum<=20)
cout<<"你的戀愛指數為:A。你是一個深深愛著Ta的人,你往往會走到最後^-^。"<<endl;
if(sum<=15&&sum>=12)
cout<<"你的戀愛指數為:B。你是一個矛盾卻又不失愛意的人,你的愛往往一波三折!-!。"<<endl;
if(sum<=11&&sum>=7)
cout<<"你的戀愛指數為:C。你是一個有點點情絲的人,你想表,卻又懼怕現實,你仍須努力o-o。"<<endl;
if(sum<=6&&sum>=0)
cout<<"你的戀愛指數為:D。你是一個無暇無垢,不食人間煙火的人,想一路踏歌,證道路上需佳人陪伴+-+。"<<endl;
if(sum>20||sum<0)
cout<<"你出格了喲ooo.ooo"<<endl;
cout<<"人生在世,恍如昨世,孤獨的身影終難走遠,你的那個Ta就在不遠方,就如漫天繁星,總有一顆屬於你!"<<endl;\
cout<<"快抓緊你身邊的那個Ta^-^oooooo"<<endl;
cout<<endl;
cout<<"作品創造者:yang sky one"<<endl;
cout<<"戀愛指數測試器已關閉,需重啟………………"<<endl;
return 0;
}
『肆』 求安卓2.3源代碼
一般來說,由開源社區開發並發行的開源軟體,即我們稱之為「開源項目(Open Source Program)」的開源軟體,一般都是「免費開源軟體」;而由企業(發行商,Enterprise or Distributor)進行二次開發並發行的開源軟體,即我們稱之為「開源產品(Open Source Program)」的開源軟體,一般是「付費開源軟體」。
必須指出,開源社區開發和發行的開源軟體,首先要體現自由/開源軟體的價值觀:開放、共享、協同、自由、無償、選擇;所謂開源軟體是「利他主義」(或「共產主義」,Altruism or Communism)與「利己主義」(或「資本主義」,Capitalism)矛盾的對立和統一(或平衡),即體現自由開源軟體價值觀與配置商業服務模式的平衡;企業開發和發行的開源軟體,是在繼承社區開發和發行的開源軟體(價值觀、開放源代碼、開源許可協議)的基礎上,進行再開發(二次開發),並採取相應的商業模式;商業模式是開源軟體得以持續發展,實行規模化、產業化的必要條件,開源軟體的商業模式是一種以服務為主要內容、實施低價銷售戰略的模式。
開源軟體商業版是基於社區版發展起來的,開源軟體商業版與社區版的關系,在實踐中可以歸納為如下各種主要類型:
1,雙授權模式
如MySQL。MySQL(社區版)執行自由/開源軟體許可協議(GPLv3),其源代碼開放,人們可從網上免費下載;MySQL(商業版)是基於MySQL(社區版)再開發的,軟體授權模式發生了變化,MySQL(商業版)是要收費的,或通過提供服務來收費。
又如Apache。Apache(社區、基金會)是一個非盈利性組織,Apache軟體基金會只向社會提供開源版本(可在網上免費下載),有一些企業如「春之源(Spring Source)」提供支持Apache服務或商業版本,但Apache基金會規定這些企業不能隨意使用Apache商標。如果某互聯網網站下載Apache軟體,安裝到伺服器(硬體)中,以建立網路/應用伺服器系統時,Apache基金會允許他們稱為Apache網路/應用伺服器,並在其網站上對外提及「Powered by Apache」。
還有如SugarCRM,也採用雙授權模式,其開放的軟體(佔80%)不收費,不開放的軟體(佔20%)要收費;另外,如Open Office.org與Star Office的關系,也可歸納為雙授權模式。
2,對開源軟體社區版進行工程化、產品化處理(二次開發)
如各種版本的Linux操作系統(產品)。一般由Linux發行商基於Linux(社區版),進行後續的工程化處理或再開發,完成或發布Linux(商業版或產品版);二次開發的工程化技術包含:① 優化內核,發行商發布的內核源代碼為Linux社區發布的「主幹(Official)源代碼」,允許與其實際執行而不公布的源代碼(即發行商的「分支源代碼」)有3-5%的偏差(這是通過測試和經驗來獲得的),②兼容性測試和質量認證,③ 對各種軟體模塊(在內核中約有1500個左右軟體模塊)的不同組合或配置(以提高效率),④ 回歸移植或降級處理(Bug Fix,Patch, back porting),⑤ 專用工具和插件,⑥ 本地化需求功能。社區開發的開源軟體(開源項目)是原創性技術,企業後續開發並完成的開源軟體(開源產品),是開源技術的成熟化過程或產品化過程(二次開發以促使開源軟體趨於穩定、優質、高效、成熟)。企業發行的Linux操作系統軟體(產品),繼承並開放由社區開發的源代碼,但企業開發的工程化技術是不開放的,含有自主創新因素和自主知識產權,這時Linux操作系統作為成型產品的整體軟體是要收費的,或通過服務來收費。
Red Hat的一位開源專家曾說:Red Hat Linux有兩種版本,一種是針對「1億人」的免費版本(或收1元成本費的基本免費版本),這是為大多數人免費提供的社區版,對這種版本,Red Hat不提供Bug Fix、Patch,也不向用戶提供支持、服務;另一種是針對「100個人」(這是指企業用戶),每戶收費「100萬元」(向企業提供若干套收費的版本,並向用戶提供Bug Fix、Patch,提供支持和服務)。
3,在開源軟體(社區版)上採取附加軟體模塊的方式
如國內開發的「銀河麒麟」操作系統,它是在Free BSD(開源軟體)基礎上再開發的(自行開發的主要是安全軟體,約占整個軟體的不足20%),等於在80%的開源軟體上附加上20%的閉源軟體模塊。這樣做的結果,連美國國家安全局(NSA)都認為,「銀河麒麟的研發使美國向中國軍網進行滲透變得無效」。
順便指出,基於開源軟體(社區版),採用附加專用軟體模塊方式,在二次開發後形成的整體軟體中,附加專用模塊的構成不得大於20%,這時整體軟體才還可稱為「開源軟體」。
4,定製模式
如Ubuntu。Ubuntu永遠是免費的,用戶可任意下載、自由使用和修改(這是指其發布的社區版);Ubuntu也有商業版,這是指由Ubuntu的發行商Canonical為用戶定製特別版Ubuntu,Canonical並向用戶提供支持和服務,這是要收費的。舉例來說,Ubuntu支持服務的收費標准為:桌面(每套)9ⅹ5,250美元;24ⅹ7,900美元;伺服器(每套)9ⅹ5,750美元;24ⅹ7,2750美元。
當然,如Linux內核(Kernel)等一些自由軟體,是沒有商業模式的。
在如上所述的基礎上,我要回答一些人對開源軟體認識的思想誤區(談一談開源軟體的是與非):
有人說:Linux都是免費的。不對!如上所述:Linux有免費的和付費的兩類;對其他開源軟體也如同Linux。
有人說:Linux的缺點是不為用戶提供支持和服務。不完全對。只有免費的社區版是如此;而對付費的商業版(或企業版、產品版),Linux發行商要為用戶提供在產品使用壽命周期內全程的支持和服務。
有人說:開源軟體不應是商業軟體,不應具商業模式。不對!上面說的很清楚了,開源軟體可以配置商業服務模式(只有社區版免費的開源軟體沒有商業模式)。
有人問:免費與付費的開源軟體在功能與服務上有什麼區別?其實,免費的開源軟體一般都是原創性的社區版,開源軟體(社區版)的性能尚不夠成熟,也不能完全滿足某些重要用戶的特殊需求,它可以免費獲得,但得不到開發者的技術支持和相應服務;而收費的開源軟體一般都是企業(發行商)後續開發的商業版(或產品版),此時性能趨於成熟(經工程化開發),能更好滿足某些用戶的需求(做好定製化開發工作),這時用戶雖然要付費,但發行商將為用戶提供在產品使用壽命周期內全程的技術支持和相應服務。
有人說:開源軟體的開發無國界,是全球志願者集體開發、合作創新的產物,不能把它限制在某一個企業或某一個國家來進行自主開發或自主創新。其實這說對了一半。開源社區對開源軟體進行的原創性開發,是適用於這種說法的,說的完全對!但要使開源軟體產品化,趨於成熟,更好地滿足用戶需求,還要進行工程化、定製化的後續開發工作,這些開發工作一般由企業(或發行商)來承擔,這時的二次開發工作當然體現自主開發創新的特點。對於企業(發行商)最終推出的更為完整的、更加成熟的、產品化的開源軟體版本(並配置商業服務模式),則可以稱之為某企業的版本(並冠以其商標),也可稱之為某地、某國的版本,所以,如果說到這種版本的「國產化」,我想也是可以的。
有人說:開源軟體既要體現自由軟體的價值觀,又要配置商業模式,這是不可調和的矛盾,只能取其一,不能合其二。我要說的是,請你體會一下上面談到的「開源軟體是『利他主義』與『利己主義』對立統一(平衡)的產物」這句哲學語言的深刻含義,再看一下上面所列的開源軟體社區版與商業版關系的各種類型,這時是否可以解答你的疑惑,而得出這樣的結論:不搞極端,做好統一或平衡是完全可能的。
關於開源和微軟的操作系統哪個安全的問題,現摘要5月12日《華盛頓時報》透露的9月30日美國國會聽證會的有關消息,就一目瞭然了。《華盛頓時報》發表的署名文章,題目是《中國阻止美國發動網路戰爭》,文中透露美國政府網路安全專家、國家情報及美國戰略司令部顧問凱文·G·科爾曼在美國國會(美中經濟與安全評估委員會)聽證會上的一些證詞,科爾曼說:「美國過去一直利用中國軍網和政府網路配備脆弱的操作系統(比如說微軟的系統)的伺服器的機會進行滲透,自從中國研發了名為銀河麒麟(Kylin)這個更加安全的操作系統並於2007年服役後,該系統強化了中國關鍵的伺服器,使美國軍方和情報機構再也無法實行滲透,致使美國網路防衛能力無效!」
當然,我在這里也要指出,如果只是配置完全開放、透明的開源操作系統軟體(社區版),也不足以保證我們網路的安全;網路安全呼喚能將自主創新包含於其中的開源軟體。
系統方面 不用向谷歌申請 好像
『伍』 求一個安卓開發小游戲源代碼,臨時交作業用
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,一個類文件,別把它當成一個文件了
『陸』 誰能給個小游戲的源代碼,謝謝!
應該不會有這種吧
『柒』 求一C++小游戲源代碼簡單點的!!謝謝
#include #include #include #define LEFT 0x4b00 #define RIGHT 0x4d00 #define DOWN 0x5000 #define UP 0x4800 #define ESC 0x011b int i,key; int score=0; int gamespeed=32000; struct Food /*食物的結構體*/ { int x; /*食物的橫坐標*/ int y; /*食物的縱坐標*/ int yes; /*食物是否出現的變數*/ }food; struct Snack /*蛇的結構體*/ { int x; int y; int node; /*蛇的節數*/ int direction; /*蛇的方向*/ int life; /*蛇的生命,0活著,1死亡*/ }snake; void Init(void); /*圖形驅動*/ void Close(void); /*關閉游戲函數*/ void DrawK(void); /*畫圖函數*/ void GameOver(void);/*輸出失敗函數*/ void GamePlay(); /*游戲控制函數 主要程序*/ void PrScore(void); /*分數輸出函數*/ DELAY(char ch)/*調節游戲速度*/ { if(ch=='3') { delay(gamespeed); /*delay是延遲函數*/ delay(gamespeed); } else if(ch=='2') { delay(gamespeed); } } Menu()/*游戲開始菜單*/ { char ch; printf("Please choose the gamespeed: "); printf("1-Fast 2-Normal 3-Slow "); printf(" Please Press The numbers.. "); do {ch=getch();} while(ch!='1'&&ch!='2'&&ch!='3'); clrscr(); return(ch); } /*主函數*/ void main(void) { int ch; ch=Menu(); Init(); DrawK(); GamePlay(ch); Close(); } void Init(void) { int gd=DETECT,gm; initgraph(&gd,&gm,"c:\tc"); cleardevice(); } void DrawK(void) { setcolor(11); setlinestyle(SOLID_LINE,0,THICK_WIDTH); for(i=50;i
『捌』 急需基於eclipse的JAVA小游戲源代碼!!!
單人版五子棋,不用導入,直接新建一個mywindow類就行,然後把一下代碼粘貼就Ok了。或者,直接用dos就可以了。。
---------------------
import
java.awt.*;
import
java.awt.event.*;
import
javax.swing.*;
class
mypanel
extends
Panel
implements
MouseListener
{
int
chess[][]
=
new
int[11][11];
boolean
Is_Black_True;
mypanel()
{
Is_Black_True
=
true;
for(int
i
=
0;i
<
11;i++)
{
for(int
j
=
0;j
<
11;j++)
{
chess[i][j]
=
0;
}
}
addMouseListener(this);
setBackground(Color.BLUE);
setBounds(0,
0,
360,
360);
setVisible(true);
}
public
void
mousePressed(MouseEvent
e)
{
int
x
=
e.getX();
int
y
=
e.getY();
if(x
<
25
||
x
>
330
+
25
||y
<
25
||
y
>
330+25)
{
return;
}
if(chess[x/30-1][y/30-1]
!=
0)
{
return;
}
if(Is_Black_True
==
true)
{
chess[x/30-1][y/30-1]
=
1;
Is_Black_True
=
false;
repaint();
Justisewiner();
return;
}
if(Is_Black_True
==
false)
{
chess[x/30-1][y/30-1]
=
2;
Is_Black_True
=
true;
repaint();
Justisewiner();
return;
}
}
void
Drawline(Graphics
g)
{
for(int
i
=
30;i
<=
330;i
+=
30)
{
for(int
j
=
30;j
<=
330;
j+=
30)
{
g.setColor(Color.WHITE);
g.drawLine(i,
j,
i,
330);
}
}
for(int
j
=
30;j
<=
330;j
+=
30)
{
g.setColor(Color.WHITE);
g.drawLine(30,
j,
330,
j);
}
}
void
Drawchess(Graphics
g)
{
for(int
i
=
0;i
<
11;i++)
{
for(int
j
=
0;j
<
11;j++)
{
if(chess[i][j]
==
1)
{
g.setColor(Color.BLACK);
g.fillOval((i
+
1)
*
30
-
8,
(j
+
1)
*
30
-
8,
16,
16);
}
if(chess[i][j]
==
2)
{
g.setColor(Color.WHITE);
g.fillOval((i
+
1)
*
30
-
8,
(j
+
1)
*
30
-
8,
16,
16);
}
}
}
}
void
Justisewiner()
{
int
black_count
=
0;
int
white_count
=
0;
int
i
=
0;
for(i
=
0;i
<
11;i++)//橫向判斷
{
for(int
j
=
0;j
<
11;j++)
{
if(chess[i][j]
==
1)
{
black_count++;
if(black_count
==
5)
{
JOptionPane.showMessageDialog(this,
"黑棋勝利");
Clear_Chess();
return;
}
}
else
{
black_count
=
0;
}
if(chess[i][j]
==
2)
{
white_count++;
if(white_count
==
5)
{
JOptionPane.showMessageDialog(this,
"白棋勝利");
Clear_Chess();
return;
}
}
else
{
white_count
=
0;
}
}
}
for(i
=
0;i
<
11;i++)//豎向判斷
{
for(int
j
=
0;j
<
11;j++)
{
if(chess[j][i]
==
1)
{
black_count++;
if(black_count
==
5)
{
JOptionPane.showMessageDialog(this,
"黑棋勝利");
Clear_Chess();
return;
}
}
else
{
black_count
=
0;
}
if(chess[j][i]
==
2)
{
white_count++;
if(white_count
==
5)
{
JOptionPane.showMessageDialog(this,
"白棋勝利");
Clear_Chess();
return;
}
}
else
{
white_count
=
0;
}
}
}
for(i
=
0;i
<
7;i++)//左向右斜判斷
{
for(int
j
=
0;j
<
7;j++)
{
for(int
k
=
0;k
<
5;k++)
{
if(chess[i
+
k][j
+
k]
==
1)
{
black_count++;
if(black_count
==
5)
{
JOptionPane.showMessageDialog(this,
"黑棋勝利");
Clear_Chess();
return;
}
}
else
{
black_count
=
0;
}
if(chess[i
+
k][j
+
k]
==
2)
{
white_count++;
if(white_count
==
5)
{
JOptionPane.showMessageDialog(this,
"白棋勝利");
Clear_Chess();
return;
}
}
else
{
white_count
=
0;
}
}
}
}
for(i
=
4;i
<
11;i++)//右向左斜判斷
{
for(int
j
=
6;j
>=
0;j--)
{
for(int
k
=
0;k
<
5;k++)
{
if(chess[i
-
k][j
+
k]
==
1)
{
black_count++;
if(black_count
==
5)
{
JOptionPane.showMessageDialog(this,
"黑棋勝利");
Clear_Chess();
return;
}
}
else
{
black_count
=
0;
}
if(chess[i
-
k][j
+
k]
==
2)
{
white_count++;
if(white_count
==
5)
{
JOptionPane.showMessageDialog(this,
"白棋勝利");
Clear_Chess();
return;
}
}
else
{
white_count
=
0;
}
}
}
}
}
void
Clear_Chess()
{
for(int
i=0;i<11;i++)
{
for(int
j=0;j<11;j++)
{
chess[i][j]=0;
}
}
repaint();
}
public
void
paint(Graphics
g)
{
Drawline(g);
Drawchess(g);
}
public
void
mouseExited(MouseEvent
e){}
public
void
mouseEntered(MouseEvent
e){}
public
void
mouseReleased(MouseEvent
e){}
public
void
mouseClicked(MouseEvent
e){}
}
class
myframe
extends
Frame
implements
WindowListener
{
mypanel
panel;
myframe()
{
setLayout(null);
panel
=
new
mypanel();
add(panel);
panel.setBounds(0,23,
360,
360);
setTitle("單人版五子棋");
setBounds(200,
200,
360,
383);
setVisible(true);
addWindowListener(this);
}
public
void
windowClosing(WindowEvent
e)
{
System.exit(0);
}
public
void
windowDeactivated(WindowEvent
e){}
public
void
windowActivated(WindowEvent
e){}
public
void
windowOpened(WindowEvent
e){}
public
void
windowClosed(WindowEvent
e){}
public
void
windowIconified(WindowEvent
e){}
public
void
windowDeiconified(WindowEvent
e){}
}
public
class
mywindow
{
public
static
void
main(String
argc
[])
{
myframe
f
=
new
myframe();
}
}
『玖』 用C++編寫的小游戲源代碼
五子棋的代碼:
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include <time.h>
using namespace std;
const int N=15; //15*15的棋盤
const char ChessBoardflag = ' '; //棋盤標志
const char flag1='o'; //玩家1或電腦的棋子標志
const char flag2='X'; //玩家2的棋子標志
typedef struct Coordinate //坐標類
{
int x; //代錶行
int y; //代表列
}Coordinate;
class GoBang //五子棋類
{
public:
GoBang() //初始化
{
InitChessBoard();
}
void Play() //下棋
{
Coordinate Pos1; // 玩家1或電腦
Coordinate Pos2; //玩家2
int n = 0;
while (1)
{
int mode = ChoiceMode();
while (1)
{
if (mode == 1) //電腦vs玩家
{
ComputerChess(Pos1,flag1); // 電腦下棋
if (GetVictory(Pos1, 0, flag1) == 1) //0表示電腦,真表示獲勝
break;
PlayChess(Pos2, 2, flag2); //玩家2下棋
if (GetVictory(Pos2, 2, flag2)) //2表示玩家2
break;
}
else //玩家1vs玩家2
{
PlayChess(Pos1, 1, flag1); // 玩家1下棋
if (GetVictory(Pos1, 1, flag1)) //1表示玩家1
break;
PlayChess(Pos2, 2, flag2); //玩家2下棋
if (GetVictory(Pos2, 2, flag2)) //2表示玩家2
break;
}
}
cout << "***再來一局***" << endl;
cout << "y or n :";
char c = 'y';
cin >> c;
if (c == 'n')
break;
}
}
protected:
int ChoiceMode() //選擇模式
{
int i = 0;
system("cls"); //系統調用,清屏
InitChessBoard(); //重新初始化棋盤
cout << "***0、退出 1、電腦vs玩家 2、玩家vs玩家***" << endl;
while (1)
{
cout << "請選擇:";
cin >> i;
if (i == 0) //選擇0退出
exit(1);
if (i == 1 || i == 2)
return i;
cout << "輸入不合法" << endl;
}
}
void InitChessBoard() //初始化棋盤
{
for (int i = 0; i < N + 1; ++i)
{
for (int j = 0; j < N + 1; ++j)
{
_ChessBoard[i][j] = ChessBoardflag;
}
}
}
void PrintChessBoard() //列印棋盤,這個函數可以自己調整
{
system("cls"); //系統調用,清空屏幕
for (int i = 0; i < N+1; ++i)
{
for (int j = 0; j < N+1; ++j)
{
if (i == 0) //列印列數字
{
if (j!=0)
printf("%d ", j);
else
printf(" ");
}
else if (j == 0) //列印行數字
printf("%2d ", i);
else
{
if (i < N+1)
{
printf("%c |",_ChessBoard[i][j]);
}
}
}
cout << endl;
cout << " ";
for (int m = 0; m < N; m++)
{
printf("--|");
}
cout << endl;
}
}
void PlayChess(Coordinate& pos, int player, int flag) //玩家下棋
{
PrintChessBoard(); //列印棋盤
while (1)
{
printf("玩家%d輸入坐標:", player);
cin >> pos.x >> pos.y;
if (JudgeValue(pos) == 1) //坐標合法
break;
cout << "坐標不合法,重新輸入" << endl;
}
_ChessBoard[pos.x][pos.y] = flag;
}
void ComputerChess(Coordinate& pos, char flag) //電腦下棋
{
PrintChessBoard(); //列印棋盤
int x = 0;
int y = 0;
while (1)
{
x = (rand() % N) + 1; //產生1~N的隨機數
srand((unsigned int) time(NULL));
y = (rand() % N) + 1; //產生1~N的隨機數
srand((unsigned int) time(NULL));
if (_ChessBoard[x][y] == ChessBoardflag) //如果這個位置是空的,也就是沒有棋子
break;
}
pos.x = x;
pos.y = y;
_ChessBoard[pos.x][pos.y] = flag;
}
int JudgeValue(const Coordinate& pos) //判斷輸入坐標是不是合法
{
if (pos.x > 0 && pos.x <= N&&pos.y > 0 && pos.y <= N)
{
if (_ChessBoard[pos.x][pos.y] == ChessBoardflag)
{
return 1; //合法
}
}
return 0; //非法
}
int JudgeVictory(Coordinate pos, char flag) //判斷有沒有人勝負(底層判斷)
{
int begin = 0;
int end = 0;
int begin1 = 0;
int end1 = 0;
//判斷行是否滿足條件
(pos.y - 4) > 0 ? begin = (pos.y - 4) : begin = 1;
(pos.y + 4) >N ? end = N : end = (pos.y + 4);
for (int i = pos.x, j = begin; j + 4 <= end; j++)
{
if (_ChessBoard[i][j] == flag&&_ChessBoard[i][j + 1] == flag&&
_ChessBoard[i][j + 2] == flag&&_ChessBoard[i][j + 3] == flag&&
_ChessBoard[i][j + 4] == flag)
return 1;
}
//判斷列是否滿足條件
(pos.x - 4) > 0 ? begin = (pos.x - 4) : begin = 1;
(pos.x + 4) > N ? end = N : end = (pos.x + 4);
for (int j = pos.y, i = begin; i + 4 <= end; i++)
{
if (_ChessBoard[i][j] == flag&&_ChessBoard[i + 1][j] == flag&&
_ChessBoard[i + 2][j] == flag&&_ChessBoard[i + 3][j] == flag&&
_ChessBoard[i + 4][j] == flag)
return 1;
}
int len = 0;
//判斷主對角線是否滿足條件
pos.x > pos.y ? len = pos.y - 1 : len = pos.x - 1;
if (len > 4)
len = 4;
begin = pos.x - len; //橫坐標的起始位置
begin1 = pos.y - len; //縱坐標的起始位置
pos.x > pos.y ? len = (N - pos.x) : len = (N - pos.y);
if (len>4)
len = 4;
end = pos.x + len; //橫坐標的結束位置
end1 = pos.y + len; //縱坐標的結束位置
for (int i = begin, j = begin1; (i + 4 <= end) && (j + 4 <= end1); ++i, ++j)
{
if (_ChessBoard[i][j] == flag&&_ChessBoard[i + 1][j + 1] == flag&&
_ChessBoard[i + 2][j + 2] == flag&&_ChessBoard[i + 3][j + 3] == flag&&
_ChessBoard[i + 4][j + 4] == flag)
return 1;
}
//判斷副對角線是否滿足條件
(pos.x - 1) >(N - pos.y) ? len = (N - pos.y) : len = pos.x - 1;
if (len > 4)
len = 4;
begin = pos.x - len; //橫坐標的起始位置
begin1 = pos.y + len; //縱坐標的起始位置
(N - pos.x) > (pos.y - 1) ? len = (pos.y - 1) : len = (N - pos.x);
if (len>4)
len = 4;
end = pos.x + len; //橫坐標的結束位置
end1 = pos.y - len; //縱坐標的結束位置
for (int i = begin, j = begin1; (i + 4 <= end) && (j - 4 >= end1); ++i, --j)
{
if (_ChessBoard[i][j] == flag&&_ChessBoard[i + 1][j - 1] == flag&&
_ChessBoard[i + 2][j - 2] == flag&&_ChessBoard[i + 3][j - 3] == flag&&
_ChessBoard[i + 4][j - 4] == flag)
return 1;
}
for (int i = 1; i < N + 1; ++i) //棋盤有沒有下滿
{
for (int j =1; j < N + 1; ++j)
{
if (_ChessBoard[i][j] == ChessBoardflag)
return 0; //0表示棋盤沒滿
}
}
return -1; //和棋
}
bool GetVictory(Coordinate& pos, int player, int flag) //對JudgeVictory的一層封裝,得到具體那個玩家獲勝
{
int n = JudgeVictory(pos, flag); //判斷有沒有人獲勝
if (n != 0) //有人獲勝,0表示沒有人獲勝
{
PrintChessBoard();
if (n == 1) //有玩家贏棋
{
if (player == 0) //0表示電腦獲勝,1表示玩家1,2表示玩家2
printf("***電腦獲勝*** ");
else
printf("***恭喜玩家%d獲勝*** ", player);
}
else
printf("***雙方和棋*** ");
return true; //已經有人獲勝
}
return false; //沒有人獲勝
}
private:
char _ChessBoard[N+1][N+1];
};
(9)安卓小游戲源代碼下載擴展閱讀:
設計思路
1、進行問題分析與設計,計劃實現的功能為,開局選擇人機或雙人對戰,確定之後比賽開始。
2、比賽結束後初始化棋盤,詢問是否繼續比賽或退出,後續可加入復盤、悔棋等功能。
3、整個過程中,涉及到了棋子和棋盤兩種對象,同時要加上人機對弈時的AI對象,即涉及到三個對象。
『拾』 android項目源碼下載
對於讀項目源代碼來說,可能對大多數人是件困難的事。首先,第一個障礙:看到項目,就已經放棄! 如果有十個人,可能有5個人以上會是上面這種情況,分析其想法:這么多的代碼,我要怎麼讀啊!我要讀好久啊!算了,還是看小Demo吧,所以這樣,他們也就只是把這個項目導入到eclipse中,點了幾下滑鼠,然後就沒有下文了。 解決辦法:其實他們終止的原因很簡單,就是嫌麻煩,那好吧,告訴你,這點麻煩都能對你造成影響,其實你的開發之路也可以終止了。任何東西,你要學到它,你就必須花時間、花精力、還要有面對困難的准備。想一步登天,有可能,除非你是天才,但畢竟天才太少了!對於開發,不是學習1+1,所以,先擺正心態吧,那要具備怎樣的心態呢?那就是:有面對困難的准備,也有解決苦難的信心。 心態問題解決了,那就是讀代碼的技巧了,很多人拿到一個項目不知道怎麼入手,乾脆就胡亂的一通看,看到一定時候發現,實在進行不下去了,又開始重新梳理自己的思路。這樣是很浪費時間的,其實對於讀一個項目,最好按照以下步驟進行(
個人意見,僅供參考
): 1、使用這個應用或者游戲,直到熟悉它的使用流程和功能 2、根據自己的體驗分析代碼實現(整體) 3、如果有條件和原作者請教項目思路 4、從最先啟動的Activity開始,弄懂每個Activity功能如何實現以及它的布局實現 5、遇到不懂的代碼,首先找搜索引擎(一般都能解決)。還不行就可以請教他人了 6、對新學到的知識點,一定要總結下來,並且定期的去回顧
7、最重要的一點:
我認為要自己動手寫,那怕是重新寫一遍這個項目,或者自己設計一個類似的,再或者只寫這個項目中的一部分。 為什麼要自己動手呢?大家都知道coder這個東西,那怕你理論學得再好,不動手,那也是毫無意義的!所以,動手寫一下,你會遇到問題,你就會解決問題,這樣,你才能學到更多。這就是經驗·······
以上回答你滿意么?