java吧 关注:1,236,059贴子:12,706,579
  • 10回复贴,共1

【求助!!!!!!】我写的猜数字游戏,为什么这个实现不了?

只看楼主收藏回复

我是初学者,求赐教!
比如谜底是9,第一次猜个8提示低了,第二次猜个10提示高了,第三次还猜8就没提示重复输入。可比如我第一次猜个8提示低了,第二次还猜8就提示重复输入了,这是为什么???
import javax.swing.JOptionPane;
public class CaiShu{
public static void main(String [] args){
int[] yiCaiGuo = new int[4];
int midi = (int)(System.currentTimeMillis()%21);
int shifoucaizhong = 0;
int cishu=0;
for (int i=0;i<4;i++){
String caishu = JOptionPane.showInputDialog(null,"请随机猜一个0~20之间的整数,只有4次机会噢!"+midi);
int shu=Integer.parseInt(caishu);
if(yiCaiGuo[cishu] == shu){
JOptionPane.showMessageDialog (null,"无语,怎么重复输入错的呀!");
i--;
}
if(shu>20 || shu <0){
JOptionPane.showMessageDialog (null,"输的数超出范围啦!");
i--;
}
if(shu == midi){
JOptionPane.showMessageDialog (null,"恭喜你,猜对了!");
shifoucaizhong = 1;
break;
}
if(shu > midi){
JOptionPane.showMessageDialog (null,"高了噢!还有"+(3-i)+"次机会!");
yiCaiGuo[cishu] = shu;
}
if(shu < midi){
JOptionPane.showMessageDialog (null,"低了噢!还有"+(3-i)+"次机会!"); yiCaiGuo[cishu] = shu;
}
}
if(shifoucaizhong==0)
JOptionPane.showMessageDialog (null,"智商也忒低了吧!游戏失败!不就是"+midi+"嘛!");}
}


1楼2012-11-18 18:44回复
    希望有人帮我解答呀


    2楼2012-11-18 18:57
    回复
      yiCaiGuo[cishu] == shu这句话只是判断猜过的最后一次的一个数,你因该吧已猜过的都判定一遍,已猜过的应该用**吧


      3楼2012-11-18 19:07
      收起回复


        4楼2012-11-18 19:33
        回复


          5楼2012-11-18 20:05
          回复


            6楼2012-11-18 20:22
            回复
              你猜过的数的个数是不确定的,而一个数组new出来长度就确定了所以用List<int> list =new Arraylist<int>();list.add(你已经才过的数);判断的时候for(int i=0;i<list.size();i++){
              if(list.get(i)==你输入的数){
              提示错误;
              break;
              }}


              7楼2012-11-18 20:57
              回复
                看看**和数组的区别


                8楼2012-11-18 20:58
                收起回复