2016-10-02 2 views
-2

Ich bin ein Anfänger nur für Android & Java. Ich versuche eine App zu erstellen, die dir sagen wird, ob du beim Martingale Glücksspiel gewinnst oder verlierst.Stucked auf Schleifen

Mein Konzept ist, können Sie Ihr Geld, Ziel und den Mindesteinsatz setzen.

zum Beispiel ist, wenn ich mein aktuelles Geld ist 1000, und mein Ziel ist 1100 zu bekommen, und der Mindesteinsatz ist 100, wird die App automatisch die Funktion zum Beispiel 10 mal laufen und berechnen die Win Rate.

jetzt bin ich stecken, auf wie man die App die Win-Rate berechnen, ich habe den Code unten versucht, aber es funktioniert nicht.

public int winPercentage(){ 
    int numberWin = 0; 
    for (int i = 0; i <= 10; i++) { 
    boolean win = calRate(double currentMoney, double theTarget, double minBet); 
    if (win) { 
     numberWin = numberWin + 1; 
    } 
    } 
    return numberWin; 
} 

mein voller Java-Code Hier

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()); 

    TextView textview = (TextView)findViewById(R.id.textView); 
    textview.setText("You " + winPercentage()); 
    } 

    public boolean 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){ 
     return true; 
     } 

    } 

    return false; 
    } 

    private boolean winRate() { 
    double d = Math.random(); 
    if (d < 0.5) 
     return true; 
    else 
     return false; 
    } 

    public int winPercentage(){ 
    int numberWin = 0; 
    for (int i = 0; i <= 10; i++) { 
     boolean win = calRate(double currentMoney, double theTarget, double minBet); 
     if (win){ 
     numberWin = numberWin + 1; 
     } 
    } 
    return numberWin; 
    } 
} 

bearbeiten

Nun, da ich, wie unten den Code zu ändern, das Androide Studio keinen Fehler zeigt, aber wenn ich versuche, es zu emulieren, es kann nicht geöffnet werden, weiterhin angezeigt werden (leider ist die App gestoppt)

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); 

    } 

    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()); 

    boolean findRate = calRate(currentMoney, theTarget, minBet); 


    public void seeRate(View view) { 


     TextView textview = (TextView)findViewById(R.id.textView); 
     textview.setText("You " + winPercentage()); 



    } 

    public boolean 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){ 
       return true; 
      } 

     } 

     return false; 
    } 

    private boolean winRate() { 
     double d = Math.random(); 
     if (d < 0.5) 
     return true; 
     else 
      return false; 

    } 

    public int winPercentage(){ 
     int numberWin = 0; 
     for (int i=0; i<=10; i++){ 
      boolean win = calRate(currentMoney, theTarget, minBet); 
      if (win){ 
       numberWin = numberWin + 1; 
      } 

     } 
     return numberWin/10*100; 
    } 
} 
+0

Was meinst du nicht? Können Sie erklären ? –

+0

boolean win = calRate (doppeltes currentMoney, double theTarget, double minBet); Für diesen Satz zeigt es weiterhin den Ausdruck expected & identifier expected – DouglasQ

+0

Ihr Edit sollte eine neue Frage sein. –

Antwort

0

Sie müssen Argumente an die Methode übergeben, wenn Sie sie aufrufen. Es ist nicht erforderlich, den Typ des Arguments anzugeben. Ändern Sie die Zeile zu

boolean win = calRate(double currentMoney,double theTarget,double minBet); 

zu

boolean win = calRate(currentMoney, theTarget, minBet); 

Dies funktioniert.

Edit:

Sie haben die Variablen zu definieren, currentMoney, theTarget und minBet in Ihrem Verfahren. Um dies zu tun, haben Sie zwei Möglichkeiten.

  1. Sie global machen: Definieren Sie die Variablen außerhalb der seeRate()-Methode und verwenden Sie sie.
  2. Übergeben Sie sie als Argumente an die Methode winPercentage().

Definieren Sie Ihre winPercentage() wie folgt:

public int winPercentage (double currentMoney, double theTarget, double minBet) { 
    int numberWin = 0; 
    for (int i=0; i<=10; i++){ 
    boolean win = calRate(currentMoney, theTarget, minBet); 
    if (win){ 
     numberWin = numberWin + 1; 
    } 

    } 
    return numberWin; 
} 
+0

Ich habe das auch versucht, aber ist Shows, kann nicht lösen Symbol "currentMoney", "theTarget" und "minBet" – DouglasQ

+0

Ja. Sie müssen die Variablen 'currentMoney',' theTarget' und 'minBet' haben. Ich kann nicht sehen, dass du sie irgendwo definiert hast. –

+0

Hallo, vielen Dank für Ihren Kommentar, jetzt, dass ich versuche, sie global zu machen, und das Android Studio zeigt keinen Fehler, aber es kann immer noch nicht geöffnet werden, es bleibt "leider App gestoppt", was ich falsch gemacht habe im Code? – DouglasQ