查看單個文章
舊 2003-01-16, 02:21 AM   #4 (permalink)
superantonio
榮譽勳章

勳章總數
UID -
在線等級:
文章: n/a
精華:
預設

我並無實際run過...
偶最重要的應是我有打上//*的地方
縮排一下比較易看
變數宣告最好是開頭小寫,其餘大寫,如:cardX,最好不要是cardx,如有在多則是
cardRowValue,cardColValue這樣是比較符合編程規則
而副程式最好是開頭都大寫,public void PickCard(),而不是開頭小寫

不要怪我歸毛~~習慣了~~且許多書都這樣寫....

有空可參考:入門 java2程式設計範例教本 陳會安 著
進階 Thinking in Java 候捷 譯
這兩本書都很不錯.....共勉之~~

import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class hw11 extends Applet implements ActionListener
{
Image img;
int cardx=73;//卡片圖形寬度
int cardy=96;//卡片圖形長度
Image img;
int cardx=73;//卡片圖形寬度
int cardy=96;//卡片圖形長度
Image img;
int cardx=73;//卡片圖形寬度
int cardy=96;//卡片圖形長度
int a,b; //*新加入~最重要是這一行

public void init() //*這裡不知是不是你漏了個init
{
bgcolor=Color.white;
lab=new Label("抽牌比大小"); //*建議:最好前面還是寫個Label
add(lab);
button=new Button("發牌"); //*同上,最好加Button
button.addActionListener(this);
add(button);
pickCard();
}

public void paint(Graphics g)
{
int recWidth=getSize().width;
int recHeight=getSize().height;
g.drawRect(0,0,recWidth-1,recHeight-1);
g.drawString("電腦",20,50);
g.drawString("玩家",20,150);
g.setColor(bgcolor);
button.paint(button.getGraphics());
img=getImage(getDocumentBase(),"poker/" + a + ".png");
g.drawImage(img,cardx,50,this);
img=getImage(getDocumentBase(),"poker/" + b + ".png");
g.drawImage(img,cardx,150,this);
}

public void actionPerformed(ActionEvent e)
{
if (e.getSource()==button)
{
pickCard();
repaint();//重新顯示一次

if(a>b)
JOptionPane.showMessageDialog(null,"你輸了");
else if(a<b)
JOptionPane.showMessageDialog(null,"你贏了");
else
JOptionPane.showMessageDialog(null,"平手");
}
}

public void pickCard()
{
int sel,i;
a=0; //a,b並沒有宣告,且要宣告在開頭,這樣a,b一離開就消失了
b=0; //這裡初始化應該沒有問題
for(i=1;i<=2;i++)//發兩張牌
{
sel=(int)(Math.random()*52)+1;
if (i==1)
{
a=sel;
}
else if (i==2)
{
b=sel;
}
}
}
}
 
送花文章: 0, 收花文章: 0 篇, 收花: 0 次
回覆時引用此帖