2008年3月16日 星期日

小丸子之暗棋連線 (Java版)

花了將近兩個星期終於完成了。由於對網路程式的部份比較不熟悉,一度覺得應該寫不出來了,好在,終於完成了,雖然還有很多地方不是寫的很完美。

程式下載區

為了讓遊戲畫面生動一點,所以就把我最喜歡的小丸子給加了進來。遊戲一進入時,就可以為自己選一個角色。最後那一張帥哥當然不是我,是我可愛的學弟,測試員獨享的權利。選完角色後,可以從遊戲選單選擇要當Server還是Client。



當兩方都連線時,即可看見對方所選的角色,如下圖。按兩下可以翻開棋子,移動或吃棋子只要先點一下自己再點目的地即可。最下面會顯示所吃掉對方的棋子。




每次寫程式都有個大毛病,就是邊寫邊想邊改。明明知道這是很沒效率的,應該要一開始先拿紙筆好好規畫後,再動筆。所以,每次看到自己寫的程式碼,真的是難看死了。

上次的踩地雷和這次的暗棋都是自己胡亂寫的,接下來就要開始好好研讀之前買的兩本遊戲設計的書,看可不可以寫出漂亮的程式囉~~~

4 意見:

匿名 提到...

大大你好...

我最近也是在寫有關暗棋的一些java程式..

我有點問題可以請教你嗎?...

Howard 提到...

說請教實在是不敢當,因為我的暗棋連線寫的很粗糙。
有問題可以一起討論討論阿~~

匿名 提到...

我是想請問阿...

就是我現在遇到兩個問題...

第一我的要怎麼樣去分辨我棋子的顏色.還有大小之分...

以下是我所寫的程式...

public boolean mouseDown(Event evt, int x, int y)
{
int i,j,k,l,z,c;

message = "Mouse_Click_Position: ("+x+","+y+")";
i=(x-98)/62;
j=(y-81)/62;
if(i>=0 && i<8 && j>=0 && j<4) {
op=op+1;
}
else {
op=0;
}

if(op==1) { //選取第一下
si=i;
sj=j;
}

if(op==2) { //選取第二下所做的判斷
if(A[si][sj]==0) {
if(i==si && j==sj) {
mode=1;
}
else {
mode=0;
}
}
else {
k=Math.abs(i-si);
l=Math.abs(j-sj);
k=k+l;
if(k==1 && A[si][sj]==1) {
mode=2;
}
else {
mode=0;
}
}
}
if(op==2) {
switch(mode)
{
case 1: //翻棋子
A[i][j]=1;
repaint();
op=0;
break;
case 2: //吃or移動
if(A[i][j]==1){
if(B[si][sj]==-1){
op=0;
break;
}
else{
A[i][j]=1;
B[i][j]=B[si][sj];
B[si][sj]=-1;
repaint();
op=0;
break;
}
}
else{
op=0;
break;
}
case 0:
op=0;
break;
}
}
return true;
}
這是我mousedown的地方...

Howard 提到...

比大小的話,我的寫法是每個棋子都是一個物件,屬性就會有顏色,很容易就可以得知。
至於大小的話,就要自己先建立好規則阿。