Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当玩家赢或输骰子游戏时,重置点值_Java_Android_Eclipse - Fatal编程技术网

Java 当玩家赢或输骰子游戏时,重置点值

Java 当玩家赢或输骰子游戏时,重置点值,java,android,eclipse,Java,Android,Eclipse,我试图在玩家赢或输后重置玩家的积分值,但我无法用我当前的代码找出最佳的方法。我尝试过在轮==0时重置pointValue.setText(“0”),但这只是将字符串设置为“0”,并且点从不重新初始化。我还尝试添加一个win和lose布尔值设置为false,在win或lost if语句中设置win或lose=true,然后在设置point=0的rollClicked()方法的末尾编写一个if语句。我所有的尝试都没有成功,我可能想得太多了。对于那些不知道如何玩骰子的人:如果第一次掷骰子的总和是4、5

我试图在玩家赢或输后重置玩家的积分值,但我无法用我当前的代码找出最佳的方法。我尝试过在
轮==0时重置
pointValue.setText(“0”)
,但这只是将字符串设置为“0”,并且
点从不重新初始化。我还尝试添加一个
win
lose
布尔值设置为false,在win或lost if语句中设置
win
lose=true
,然后在设置
point=0
rollClicked()
方法的末尾编写一个if语句。我所有的尝试都没有成功,我可能想得太多了。对于那些不知道如何玩骰子的人:如果第一次掷骰子的总和是4、5、6、8、9或10,那么这个总和将成为玩家的“点数”。要赢,玩家必须继续掷骰子,直到掷出点数为止。玩家在掷点之前掷7,输掉比赛

下面是我的MainActivity中使用上述失败的布尔值尝试的代码

public class MainActivity extends Activity
{
    // declarations
    private Button button1, button2;
    private ImageView dice1Image;
    private ImageView dice2Image;
    private TextView roll;
    private TextView point;
    private TextView results;
    private TextView betText;
    private TextView bankRollText;
    private String result;
    String betAmountString;
    String bankRollString;
    private Spinner bettingSpinner;

    int winNumber1 = 7;
    int winNumber2 = 11;
    int loseNumber1 = 2;
    int loseNumber2 = 3;
    int loseNumber3 = 12;

    int rounds = 0;
    int rollTotal = 0;
    int pointValue = 0;

    private int winsCounter = 0;
    private int loseCounter = 0;

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        // Get the view from activity_main.xml
        setContentView(R.layout.activity_main);

        // initialize objects
        dice1Image = (ImageView) findViewById(R.id.imageViewDie01);
        dice2Image = (ImageView) findViewById(R.id.imageViewDie02);
        roll = (TextView) findViewById(R.id.textViewRollTotal);
        point = (TextView) findViewById(R.id.textViewPoint);
        results = (TextView) findViewById(R.id.results);
        button1 = (Button) findViewById(R.id.howToPlayButton);
        button2 = (Button) findViewById(R.id.backToHomeButton);
        bettingSpinner = (Spinner) findViewById(R.id.betSpinner);
        betText = (TextView)findViewById(R.id.textViewBetAmount);
        bankRollText = (TextView)findViewById(R.id.textViewBuyInAmount);

        if (savedInstanceState == null) {
            results.setVisibility(View.GONE);
        }

        // get selected variable from spinner on HomeActivity
        TextView buyInText = (TextView)findViewById(R.id.textViewBuyInAmount);
        buyInText.setText(getIntent().getExtras().getString("buyInAmount"));

        // query the data, put it in the string-array and use ArrayAdapter constructor
        ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.bet, android.R.layout.simple_spinner_item);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_item);
        bettingSpinner.setAdapter(adapter);
        bettingSpinner.setOnItemSelectedListener(new function());

        // restores instanceState
        if (savedInstanceState != null) {
            onRestoreInstanceState(savedInstanceState);
        }

        // Capture button clicks
        button1.setOnClickListener(new OnClickListener()
        {
            public void onClick(View arg1)
            {

                // Start NewActivity.class
                Intent myIntent = new Intent(MainActivity.this,
                        NewActivity.class);
                //myIntent.putExtra("buyInAmount",buyInAmountGlobalVar);
                startActivity(myIntent);
            }
        }); // end setOnClickListener

        // Capture button clicks
        button2.setOnClickListener(new OnClickListener()
        {
            public void onClick(View arg2)
            {

                // Start HomeActivity.class
                Intent myIntent = new Intent(MainActivity.this,
                        HomeActivity.class);
                startActivity(myIntent);
            }
        }); // end setOnClickListener
    } // end onCreate method

    int d1, d2;
    int betInt, bankRollInt;
    boolean win = false;
    boolean lose = false;

    // initializes rollClicked method when ROLL button is clicked
    public void rollClicked(View v) {

        int dice1, dice2;
        betInt = Integer.valueOf(bettingSpinner.getSelectedItem().toString());
        bankRollInt = Integer.valueOf(bankRollText.getText().toString());

        Random rand1 = new Random();
        Random rand2 = new Random();
        dice1 = rand1.nextInt(6) + 1;
        dice2 = rand2.nextInt(6) + 1;

        // sets values for dice images
        if(dice1 == 1) {
            dice1Image.setImageResource(R.drawable.die1);
            d1 = 1;
        }
        else if(dice1 == 2) {
            dice1Image.setImageResource(R.drawable.die2);
            d1 = 2;
        }
        else if(dice1 == 3) {
            dice1Image.setImageResource(R.drawable.die3);
            d1 = 3;
        }
        else if(dice1 == 4) {
            dice1Image.setImageResource(R.drawable.die4);
            d1 = 4;
        }
        else if(dice1 == 5) {
            dice1Image.setImageResource(R.drawable.die5);
            d1 = 5;
        }
        else if(dice1 == 6) {
            dice1Image.setImageResource(R.drawable.die6);
            d1 = 6;
        }

        if(dice2 == 1) {
            dice2Image.setImageResource(R.drawable.die1);
            d2 = 1;
        }
        else if(dice2 == 2) {
            dice2Image.setImageResource(R.drawable.die2);
            d2 = 2;
        }
        else if(dice2 == 3) {
            dice2Image.setImageResource(R.drawable.die3);
            d2 = 3;
        }
        else if(dice2 == 4) {
            dice2Image.setImageResource(R.drawable.die4);
            d2 = 4;
        }
        else if(dice2 == 5) {
            dice2Image.setImageResource(R.drawable.die5);
            d2 = 5;
        }
        else if(dice2 == 6) {
            dice2Image.setImageResource(R.drawable.die6);
            d2 = 6;
        }

        // calculate sum of dice for each roll
        if (rounds >= 0)
        {
            rollTotal = sum(dice1, dice2);
            roll.setText(String.valueOf(rollTotal));
        }

        // win on first roll
        if((dice1 + dice2 == winNumber1 || (sum(dice1, dice2) == winNumber2)) && rounds == 0) {
            winsCounter++;
            bankRollInt =  bankRollInt + betInt;
            bankRollText.setText(String.valueOf(bankRollInt));
            results.setVisibility(View.VISIBLE);
            win = true;
        }
        // lose on first roll
        else if(rounds == 0 && (sum(dice1, dice2) == loseNumber1 || sum(dice1, dice2) == loseNumber2 || sum(dice1, dice2) == loseNumber3)){
            loseCounter++;
            bankRollInt =  bankRollInt - betInt;
            bankRollText.setText(String.valueOf(bankRollInt));
            results.setVisibility(View.VISIBLE);
            results.setText("House wins! You Lose.");
            lose = true;
        }
        // display round results if no win or lose on first roll
        else if(rounds == 0) {
            pointValue = sum(dice1, dice2);
            results.setVisibility(View.VISIBLE);
            point.setText(String.valueOf(pointValue));
            results.setText("Point established. It is " + pointValue + ". Roll Again.");
        }

        // lose if player hits 7 after first roll
        if(rounds > 0 && (sum(dice1, dice2) == 7)) {
            loseCounter++;
            bankRollInt =  bankRollInt - betInt;
            bankRollText.setText(String.valueOf(bankRollInt));
            results.setVisibility(View.VISIBLE);
            results.setText("House wins! You Lose.");
            lose = true;
        }
        // player wins if roll = pointValue after first roll
        else if(rounds > 0 && (sum(dice1, dice2) == pointValue)) {
            winsCounter++;
            bankRollInt =  bankRollInt + betInt;
            bankRollText.setText(String.valueOf(bankRollInt));
            results.setVisibility(View.VISIBLE);
            win = true;
        }
        // display round results if no win or lose after first roll
        else if(rounds > 0 && (sum(dice1, dice2) != pointValue && sum(dice1, dice2) != 7)){
            results.setVisibility(View.VISIBLE);
            results.setText("No one wins. Keep rolling Dice.");
        }

        rounds++;

        // reset point if player wins or loses
        if (win = true){
            point.setText("0");
        } else if (lose = true){
            point.setText("0");
        }
    } // end rollClicked method


    // calculate sum of dice
    public int sum(int num1, int num2) {
        return num1 + num2;
    } // end sum method

    // clear board for new game
    public void resetGame(View v)
    {
        point.setText("0");
        roll.setText("0");
        results.setText("");
        betText.setText("10");
        bankRollText.setText("100");
        // reset counter
        rounds = 0;
    } // end resetGame method

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    } // end onOptionsItemSelected

    @Override
    public void onSaveInstanceState(Bundle savedInstanceState) {
        super.onSaveInstanceState(savedInstanceState);

        // Save UI state changes to the savedInstanceState.
        // This bundle will be passed to onCreate if the process is
        // killed and restarted.
        result = results.getText().toString();
        bankRollString = bankRollText.getText().toString();
        betAmountString = betText.getText().toString();
        savedInstanceState.putInt("POINT_VALUE", pointValue);
        savedInstanceState.putInt("ROLL_TOTAL", rollTotal);
        savedInstanceState.putString("RESULTS", result);
        savedInstanceState.putInt("DIE_1", d1);
        savedInstanceState.putInt("DIE_2", d2);
        savedInstanceState.putString("BANK_ROLL", bankRollString);
        savedInstanceState.putString("BET_AMOUNT", betAmountString);
    } // end onSavedInstanceState method

    @Override
    public void onRestoreInstanceState(Bundle savedInstanceState) {
        super.onRestoreInstanceState(savedInstanceState);

        // Restore UI state from the savedInstanceState.
        // This bundle has also been passed to onCreate.
        pointValue = savedInstanceState.getInt("POINT_VALUE");
        rollTotal = savedInstanceState.getInt("ROLL_TOTAL");
        result = savedInstanceState.getString("RESULTS");
        d1 =  savedInstanceState.getInt("DIE_1");
        d2 =  savedInstanceState.getInt("DIE_2");
        bankRollString = savedInstanceState.getString("BANK_ROLL");
        betAmountString = savedInstanceState.getString("BET_AMOUNT");

        roll.setText(String.valueOf(rollTotal));
        point.setText(String.valueOf(pointValue));
        results.setText(String.valueOf(result));
        bankRollText.setText(String.valueOf(bankRollString));
        betText.setText(String.valueOf(betAmountString));

        // resets dice image values for onRestoreInstanceState
        if(d1 == 1) {
            dice1Image.setImageResource(R.drawable.die1);
        }
        else if(d1 == 2) {
            dice1Image.setImageResource(R.drawable.die2);
        }
        else if(d1 == 3) {
            dice1Image.setImageResource(R.drawable.die3);
        }
        else if(d1 == 4) {
            dice1Image.setImageResource(R.drawable.die4);
        }
        else if(d1 == 5) {
            dice1Image.setImageResource(R.drawable.die5);
        }
        else if(d1 == 6) {
            dice1Image.setImageResource(R.drawable.die6);
        }

        if(d2 == 1) {
            dice2Image.setImageResource(R.drawable.die1);
        }
        else if(d2 == 2) {
            dice2Image.setImageResource(R.drawable.die2);
        }
        else if(d2 == 3) {
            dice2Image.setImageResource(R.drawable.die3);
        }
        else if(d2 == 4) {
            dice2Image.setImageResource(R.drawable.die4);
        }
        else if(d2 == 5) {
            dice2Image.setImageResource(R.drawable.die5);
        }
        else if(d2 == 6) {
            dice2Image.setImageResource(R.drawable.die6);
        }
    } // end onRestoreInstanceState method

    public class function implements AdapterView.OnItemSelectedListener {
        public void onItemSelected(AdapterView<?> adapterView, View v, int pos, long l)
        {
            // passes selected spinner variable to textViewBetAmount
            String betString = adapterView.getItemAtPosition(pos).toString();
            betText.setText(betString);
        } // end onItemSelected method

        public void onNothingSelected(AdapterView<?> adapterView)
        {

        } // end onNothingSelected method
    } // end function inner class

} // end MainActivity class
公共类MainActivity扩展活动
{
//声明
私人按钮按钮1,按钮2;
私有图像查看Dice1图像;
私有图像视图2图像;
私有文本视图卷;
私人视角;
私有文本视图结果;
私有文本视图;
私有文本视图bankRollText;
私有字符串结果;
字符串betAmountString;
字符串倾斜字符串;
私人纺纱机;
int=1=7;
int=2=11;
int loseNumber1=2;
int loseNumber2=3;
int loseNumber3=12;
整数=0;
int rollTotal=0;
int pointValue=0;
私有int WinsCenter=0;
专用计数器=0;
@凌驾
创建时的公共void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
//从activity_main.xml获取视图
setContentView(R.layout.activity_main);
//初始化对象
dice1Image=(ImageView)findViewById(R.id.imageViewDie01);
dice2Image=(ImageView)findViewById(R.id.imageViewDie02);
roll=(TextView)findViewById(R.id.textViewRollTotal);
点=(TextView)findViewById(R.id.textViewPoint);
结果=(TextView)findViewById(R.id.results);
button1=(按钮)findViewById(R.id.howToPlayButton);
button2=(按钮)findViewById(R.id.backToHomeButton);
bettingSpinner=(微调器)findViewById(R.id.betSpinner);
betText=(TextView)findViewById(R.id.textViewBetAmount);
bankRollText=(TextView)findViewById(R.id.textViewBuyInAmount);
如果(savedInstanceState==null){
结果:setVisibility(View.GONE);
}
//从HomeActivity上的微调器获取所选变量
TextView buyInText=(TextView)findViewById(R.id.textViewBuyInAmount);
buyInText.setText(getIntent().getExtras().getString(“buyInAmount”));
//查询数据,将其放入字符串数组并使用ArrayAdapter构造函数
ArrayAdapter=ArrayAdapter.createFromResource(这个,R.array.bet,android.R.layout.simple\u微调器\u项);
setDropDownViewResource(android.R.layout.simple\u微调器\u项);
设置适配器(适配器);
bettingSpinner.setOnItemSelectedListener(新函数());
//还原instanceState
如果(savedInstanceState!=null){
onRestoreInstanceState(savedInstanceState);
}
//捕获按钮点击
button1.setOnClickListener(新的OnClickListener()
{
公共void onClick(视图arg1)
{
//启动NewActivity.class
Intent myIntent=新Intent(MainActivity.this,
新活动(课堂);
//myIntent.putExtra(“buyInAmount”,buyInAmountGlobalVar);
星触觉(myIntent);
}
});//结束setOnClickListener
//捕获按钮点击
button2.setOnClickListener(新的OnClickListener()
{
公共void onClick(视图arg2)
{
//启动HomeActivity.class
Intent myIntent=新Intent(MainActivity.this,
家庭活动(课堂);
星触觉(myIntent);
}
});//结束setOnClickListener
}//结束onCreate方法
int d1、d2;
int betInt,bankRollInt;
布尔赢=假;
布尔丢失=假;
//单击滚动按钮时初始化rollClicked方法
已单击的公共视图(视图v){
智力骰子1,骰子2;
betInt=Integer.valueOf(bettingSpinner.getSelectedItem().toString());
bankRollInt=Integer.valueOf(bankRollText.getText().toString());
Random rand1=新的Random();
Random rand2=新的Random();
dice1=rand1.nextInt(6)+1;
dice2=rand2.nextInt(6)+1;
//设置骰子图像的值
如果(1==1){
dice1Image.setImageResource(R.drawable.die1);
d1=1;
}
否则如果(1==2){
Dice1图像设置图像资源(R.drawable.die2);
d1=2;
}
否则如果(1==3){
Dice1图像设置图像资源(R.drawable.die3);
d1=3;
}
否则如果(1==4){
dice1Image.setImageResource(R.drawable.die4);
d1=4;
}
否则如果(1==5){
dice1Image.setImageResource(R.drawable.die5);
d1=5;
}
否则如果(1==6){
dice1Image.setImageResource(R.drawable.die6);
d1=6;
}
如果(2==1){
dice2Image.setImageResource(R.drawable.die1);
d2=1;
}
else if(dice2==2){
dice2Image.setImageResource(R.drawable.die2);
d2=2;
rounds++;

// reset point if player wins or loses
if (win = true){
    point.setText("0");
} else if (lose = true){
    point.setText("0");
}
// reset point if player wins or loses else keep playing
if(resetPointValue == true) {
                rounds = 0;
                pointValue = 0;
            }
            else {
                rounds++;
            }
private boolean resetPointValue = false;

    // initializes rollClicked method when ROLL button is clicked
    public void rollClicked(View v) {

        int dice1, dice2;

        betInt = Integer.valueOf(bettingSpinner.getSelectedItem().toString());
        Random rand1 = new Random();
        Random rand2 = new Random();
        dice1 = rand1.nextInt(6) + 1;
        dice2 = rand2.nextInt(6) + 1;

        // sets values for dice images
        if(dice1 == 1) {
            dice1Image.setImageResource(R.drawable.die1);
            d1 = 1;
        }
        else if(dice1 == 2) {
            dice1Image.setImageResource(R.drawable.die2);
            d1 = 2;
        }
        else if(dice1 == 3) {
            dice1Image.setImageResource(R.drawable.die3);
            d1 = 3;
        }
        else if(dice1 == 4) {
            dice1Image.setImageResource(R.drawable.die4);
            d1 = 4;
        }
        else if(dice1 == 5) {
            dice1Image.setImageResource(R.drawable.die5);
            d1 = 5;
        }
        else if(dice1 == 6) {
            dice1Image.setImageResource(R.drawable.die6);
            d1 = 6;
        }

        if(dice2 == 1) {
            dice2Image.setImageResource(R.drawable.die1);
            d2 = 1;
        }
        else if(dice2 == 2) {
            dice2Image.setImageResource(R.drawable.die2);
            d2 = 2;
        }
        else if(dice2 == 3) {
            dice2Image.setImageResource(R.drawable.die3);
            d2 = 3;
        }
        else if(dice2 == 4) {
            dice2Image.setImageResource(R.drawable.die4);
            d2 = 4;
        }
        else if(dice2 == 5) {
            dice2Image.setImageResource(R.drawable.die5);
            d2 = 5;
        }
        else if(dice2 == 6) {
            dice2Image.setImageResource(R.drawable.die6);
            d2 = 6;
        }

        // calculate sum of dice for each roll
        if (rounds >= 0)
        {
            rollTotal = sum(dice1, dice2);
            roll.setText(String.valueOf(rollTotal));
        }
        else {
            point.setText(String.valueOf(pointValue));
        }

        // win on first roll
        if((dice1 + dice2 == winNumber1 || (sum(dice1, dice2) == winNumber2)) && rounds == 0) {
            winsCounter++;
            bankRollInt = bankRollInt + betInt;
            bankRollText.setText(String.valueOf(bankRollInt));
            // display win result
            results.setVisibility(View.VISIBLE);
            resetPointValue = true;
        }
        // lose on first roll
        else if(rounds == 0 && (sum(dice1, dice2) == loseNumber1 || sum(dice1, dice2) == loseNumber2 || sum(dice1, dice2) == loseNumber3)){
            loseCounter++;
            bankRollInt = bankRollInt - betInt;
            bankRollText.setText(String.valueOf(bankRollInt));
            results.setVisibility(View.VISIBLE);
            results.setText("House wins! You Lose.");
            resetPointValue = true;
        }
        // display round results if no win or lose on first roll
        else if(rounds == 0) {
            pointValue = sum(dice1, dice2);
            results.setVisibility(View.VISIBLE);
            point.setText(String.valueOf(pointValue));
            bankRollText.setText(String.valueOf(bankRollInt));
            results.setText("Point established. It is " + pointValue + ". Roll Again.");
            resetPointValue = false;
        }

        // lose if player hits 7 after first roll
        if(rounds > 0 && (sum(dice1, dice2) == 7)) {
            loseCounter++;
            bankRollInt = bankRollInt - betInt;
            bankRollText.setText(String.valueOf(bankRollInt));
            results.setVisibility(View.VISIBLE);
            results.setText("House wins! You Lose.");
            resetPointValue = true;
        }
        // player wins if roll = pointValue after first roll
        else if(rounds > 0 && (sum(dice1, dice2) == pointValue)) {
            winsCounter++;
            bankRollInt = bankRollInt + betInt;
            bankRollText.setText(String.valueOf(bankRollInt));
            // display win result
            results.setVisibility(View.VISIBLE);
            resetPointValue = true;
        }
        // display round results if no win or lose after first roll
        else if(rounds > 0 && (sum(dice1, dice2) != pointValue && sum(dice1, dice2) != 7)){
            results.setVisibility(View.VISIBLE);
            bankRollText.setText(String.valueOf(bankRollInt));
            results.setText("No one wins. Keep rolling Dice.");
        }

        if(resetPointValue == true) {
            rounds = 0;
            pointValue = 0;
        }
        else {
            rounds++;
        }
    } // end rollClicked method

    // calculate sum of dice
    public int sum(int num1, int num2) {
        return num1 + num2;
    } // end sum method