-
大小: 2.29MB文件類型: .rar金幣: 2下載: 0 次發(fā)布日期: 2023-11-16
- 語(yǔ)言: Java
- 標(biāo)簽: 24點(diǎn)游戲??
資源簡(jiǎn)介
用java編24點(diǎn)游戲,完全圖形化界面,整個(gè)游戲又四個(gè)不同的版塊構(gòu)成,最后集成到一塊,非常棒的游戲源碼,值得參考。

代碼片段和文件信息
//import?javax.swing.JOptionPane; //測(cè)試時(shí)使用正式編譯時(shí)無(wú)用
import?java.util.StringTokenizer;
import?java.util.Arrays;
public?class?Calculateexpression?{
private?String?expression;
private?boolean?isCorrect;
private?double?result;
/**?該對(duì)象擁有3個(gè)私有變量因經(jīng)常需使用故在此定義
expression用于記錄表達(dá)式
isCorrect表示表達(dá)式是否規(guī)范
result表達(dá)式計(jì)算結(jié)果
其次該對(duì)象擁有以下方法供外部調(diào)用
setexpression(String<表達(dá)式>)
輸入表達(dá)式無(wú)返回
getexpression()
返回表達(dá)式類型為String
isCorrect()
返回表達(dá)式是否規(guī)范類型為boolean
isCorrect(int<數(shù)字個(gè)數(shù)>)
返回表達(dá)式是否規(guī)范此時(shí)式中的數(shù)字個(gè)數(shù)也為判斷依據(jù)類型為boolean
getNumbers()
返回表達(dá)式中數(shù)字類型為int[]
getResult()
返回表達(dá)式的計(jì)算結(jié)果類型為int
getDoubleResult()
返回表達(dá)式的計(jì)算結(jié)果類型為double
compareNumbers(int[]<需對(duì)比的數(shù)組>)
比較表達(dá)式中的數(shù)字是否與給出的數(shù)相同返回類型為boolean
最后該對(duì)象擁有以下私有方法
check()
判斷表達(dá)式是否規(guī)范并自動(dòng)修正返回類型為boolean
(左右括號(hào)必須對(duì)齊不可省略)
calStep1()calStep2()calStep3()
計(jì)算表達(dá)式結(jié)果的三步返回類型均為double
*/
/**?用于測(cè)試的main方法正式編譯時(shí)無(wú)用?**
public?static?void?main(String[]?args)?{
Calculateexpression?n=new?Calculateexpression();
String?s=JOptionPane.showInputDialog(null“請(qǐng)輸入表達(dá)式““Test2“JOptionPane.QUESTION_MESSAGE);
if?(s==null)?{
System.exit(0);
}
n.setexpression(s);
//JOptionPane.showMessageDialog(nulln.getexpression()“Test2“JOptionPane.INFORMATION_MESSAGE);
if?(!n.isCorrect())
//if?(!n.isCorrect(4))
JOptionPane.showMessageDialog(null“表達(dá)式有誤““Test2“JOptionPane.INFORMATION_MESSAGE);
//int[]?num=n.getNumbers();
//JOptionPane.showMessageDialog(null““+num[0]+““+num[1]+““+num[2]+““+num[3]“Test2“JOptionPane.INFORMATION_MESSAGE);
//int?result=n.getResult();
double?result=n.getDoubleResult();
JOptionPane.showMessageDialog(null“計(jì)算式的答案為“+result“Test2“JOptionPane.INFORMATION_MESSAGE);
}
*/
/**?初始化對(duì)象Calculateexpression()?*/
public?Calculateexpression()?{
expression=““;
isCorrect=false;
}
/**?setexpression(String<表達(dá)式>)輸入表達(dá)式?*/
public?void?setexpression(String?input)?{
expression=input;
isCorrect=check();
//JOptionPane.showMessageDialog(nullexpression“Test2“JOptionPane.INFORMATION_MESSAGE);
if?(isCorrect)?{
result=calStep1();
}?else
result=0;
}
/**?getexpression()輸出表達(dá)式?*/
public?String?getexpression()?{
return?expression;
}
/**?check()判斷表達(dá)式規(guī)范與否并自動(dòng)修正?*/
private?boolean?check()?{
char?ttt=expression.charAt(0);
int?sum=0add=0; //計(jì)算左右括號(hào)計(jì)算修正位數(shù)
boolean?hasNum=false;
StringBuffer?s=new?StringBuffer(expression);
if?(tt==‘+‘?||?tt==‘-‘?||?tt==‘.‘)?{
s.insert(0‘0‘);
add++;
}?else
if?(tt==‘)‘?||?tt==‘*‘?||?tt==‘/‘)?{
return?false;
}
for?(int?i=0;?ipression.length();?i++)?{
t=tt;
if?(i!=expression.length()-1)?{
tt=expression.charAt(i+1);
}?else?tt=‘E‘;
if?(t>=‘0‘?&&?t<=‘9‘)?{
hasNum=true;
if?(tt==‘(‘)?{
s.insert(i+add+1‘*‘);
add++;
}
}?else
if?(t==‘(‘)?{
sum++;
if?(tt==‘.‘?||?tt==‘+‘?||?tt==‘-‘)?{
s.insert(i+add+1‘0‘);
add++;
}?else
if?(tt==‘*‘?||?tt==‘
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
-----------?---------??----------?-----??----
??????????????2644939????????????????????177
評(píng)論
共有 條評(píng)論