史萊姆論壇

史萊姆論壇 (http://forum.slime.com.tw/)
-   一般電腦疑難討論區 (http://forum.slime.com.tw/f17.html)
-   -   讓我對java再燃信心吧 > < (http://forum.slime.com.tw/thread9196.html)

gozanlo 2003-01-15 04:45 PM

讓我對java再燃信心吧 > <
 
我作得是發牌比大小 我想在比完後 秀出與電腦的戰積

如:
勝 敗
電腦 8 10
玩家 10 8

還要加那些指令啊?
可以用容易一點的指令教教我嗎? 太難的還不太會 thx



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;//卡片圖形長度
{
bgcolor=Color.white;
lab=new Label("抽牌比大小");
add(lab);
button=new 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;
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;
}
}
}

}

jasontseng 2003-01-15 10:00 PM

你應該寫出你現在問題卡在哪, 這樣大家想幫才比較容易幫你...
大概看了一下
你好像少了儲存你跟電腦贏的次數的變數, 設個廣域變數吧..

gozanlo 2003-01-15 10:49 PM

嗯 就是不清楚你說的"廣域變數"
要怎麼設?

現在只有每一場 每一場 勝敗的戰積
我想在最後結束時 來個勝敗總結

superantonio 2003-01-16 02:21 AM

我並無實際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;
}
}
}
}


所有時間均為台北時間。現在的時間是 03:43 PM

Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2025, Jelsoft Enterprises Ltd.

『服務條款』

* 有問題不知道該怎麼解決嗎?請聯絡本站的系統管理員 *


SEO by vBSEO 3.6.1