我正在尝试建立一个应用程序,如果您在赌博上赢得或失去了鞅,我会告诉您。
我的理念是这样,你可以设定你的金钱,目标和最低赌注。
例如,我设置的当前金额是1000,我的目标是获得1100,最小赌注是100,应用程序将告诉我是否赢了。其实我的想法是构建这个应用程序来计算这个的赢率,但我不知道如何,因此我只是尝试构建更简单的应用程序,并进一步修改,如果我能得到它。
但是当我尝试运行应用程序时,应用程序一直显示“你输了”,即使我尝试创建一个我失去的机会很少的情况,它仍然显示我“你输了”。
我的Java代码
package com.example.android.gambling;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.Editable;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void seeRate(View view) {
EditText cMoney = (EditText) findViewById(R.id.money);
double currentMoney = Double.parseDouble(cMoney.getText().toString());
EditText target = (EditText) findViewById(R.id.target);
double theTarget = Double.parseDouble(target.getText().toString());
EditText bet = (EditText) findViewById(R.id.bet);
double minBet = Double.parseDouble(bet.getText().toString());
String findRate = calRate(currentMoney, theTarget, minBet);
TextView textview = (TextView)findViewById(R.id.textView);
textview.setText("You " + findRate);
}
public String calRate(double currentMoney, double theTarget, double minBet) {
while (currentMoney>minBet){
boolean win = winRate();
if (win){
currentMoney += minBet;
minBet = minBet;
}
else {
currentMoney -= minBet;
minBet *= 2;
}
if (currentMoney>=theTarget){
break;
}
}
return "Lose";
}
private boolean winRate() {
double d = Math.random();
if (d < 0.5)
return true;
else
return false;
}
}
并且xml在这里
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.android.gambling.MainActivity">
<EditText
android:id="@+id/money"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="15dp"
android:hint="Current Money"
android:width="300dp"/>
<EditText
android:id="@+id/target"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/money"
android:layout_centerHorizontal="true"
android:layout_marginTop="15dp"
android:hint="Target"
android:width="300dp"/>
<EditText
android:id="@+id/bet"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/target"
android:layout_centerHorizontal="true"
android:layout_marginTop="15dp"
android:hint="Minimun Bet per Time"
android:width="300dp"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Check Rate"
android:id="@+id/button"
android:layout_centerHorizontal="true"
android:onClick="seeRate"
android:layout_marginTop="32dp"
android:layout_below="@+id/bet" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Result Here"
android:id="@+id/textView"
android:layout_alignParentBottom="true"
android:layout_alignEnd="@+id/button"
android:layout_marginBottom="60dp" />
</RelativeLayout>
答案 0 :(得分:0)
更改您的代码:
public String calRate(double currentMoney, double theTarget, double minBet) {
while (currentMoney > minBet) {
boolean win = winRate();
if (win) {
currentMoney += minBet;
} else {
currentMoney -= minBet;
}
if (currentMoney >= theTarget) {
return "Won";
}
}
return "Lose";
}