Ich habe die Gewinn- / Verlustzahl und die Gewinnrate zu den Basis-Janken hinzugefügt. Je mehr Sie tun, desto näher liegt die Gewinnrate natürlich bei 33,3%.
MainActivity.java
package to.msn.wings.janken;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import java.util.Random;
public class MainActivity extends AppCompatActivity {
/*
TextView:
player(Spielertext),playerRes (Spielerhand)
com(Com Text), comRes(Com Hand)
Ergebnis (Gewinn / Verlust-Ergebnis)
winCnt (Gewinnrate),loseCnt,drawCnt (Anzahl der Ziehungen)
totalCnt,winPer (Gewinnrate)
button:
gu, tyoki, pa
*/
private int totalCnt; //Gesamtzahl der Schlachten
private int drawCnt; //Anzahl der Ziehungen
private int loseCnt; //Anzahl der Verluste
private int winCnt; //Anzahl der Siege
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void btn_onclick(View view){
//Spielerseitenhand
TextView txt = (TextView)findViewById(R.id.playerRes);
int player_hand = 0;
//view.Beurteilen Sie den mit getId geklickten Button
// 0:gu, 1:tyoki, 2:par
switch (view.getId()){
case R.id.gu:
txt.setText("Schmiere");
player_hand = 0;
break;
case R.id.tyoki:
txt.setText("Choki");
player_hand = 1;
break;
case R.id.pa:
txt.setText("Par");
player_hand = 2;
}
//Hand auf der Com-Seite
TextView com = (TextView)findViewById(R.id.comRes);
//Setze com Hand mit zufällig
Random random = new Random();
int n = random.nextInt(3);
int com_hand = 0;
// 0:gu, 1:tyoki, 2:par
if (n == 0){
com.setText("Schmiere");
com_hand = n;
} else if (n == 1){
com.setText("Choki");
com_hand = n;
} else if (n == 2){
com.setText("Par");
com_hand = n;
}
//Zählen Sie die Gesamtzahl der Übereinstimmungen auf
TextView total = (TextView) findViewById(R.id.totalCnt);
totalCnt++;
total.setText("Gesamtzahl:" + String.valueOf(totalCnt));
//Urteil über Sieg oder Niederlage von Janken
TextView result = (TextView) findViewById(R.id.result);
int judge = (player_hand - com_hand + 3)%3;
if (judge == 0) {
//In diesem Fall
TextView draw = (TextView) findViewById(R.id.drawCnt);
drawCnt++;
draw.setText("Anzahl der Ziehungen:" + String.valueOf(drawCnt));
result.setText("Aiko");
} else if (judge == 1) {
//Wenn du verlierst
TextView lose = (TextView) findViewById(R.id.loseCnt);
loseCnt++;
lose.setText("Anzahl der Verluste:" + String.valueOf(loseCnt));
result.setText("Deine Niederlage");
} else if (judge == 2){
//Wenn du gewinnst
TextView win = (TextView) findViewById(R.id.winCnt);
winCnt++;
win.setText("Anzahl der Siege:" + String.valueOf(winCnt));
result.setText("Dein Gewinn");
}
//Gewinnratenberechnung
TextView per = (TextView) findViewById(R.id.winPer);
double winPer = (double) winCnt / (double) totalCnt * 100; //Explizit in double konvertieren und berechnen
per.setText("Gewinnrate:" + String.format("%.2f", winPer) + "%"); //format("%.2f", winPer)Nach dem zweiten Dezimalpunkt abschneiden
}
}