![]() |
讓我對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; } } } } |
你應該寫出你現在問題卡在哪, 這樣大家想幫才比較容易幫你...
大概看了一下 你好像少了儲存你跟電腦贏的次數的變數, 設個廣域變數吧.. |
嗯 就是不清楚你說的"廣域變數"
要怎麼設? 現在只有每一場 每一場 勝敗的戰積 我想在最後結束時 來個勝敗總結 |
我並無實際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.
『服務條款』
* 有問題不知道該怎麼解決嗎?請聯絡本站的系統管理員 *