M
mimm.m
Stamm-User
- 69
Hallo,
ich möchte im Rahmen eines Schulprojektes mehrere Spiele erstellen, bin mit einem Spiel auch schon fertig, doch beim 2. dem Rechenkönig feigelt es mich.
Das Problem, dass ich momentan habe, ist wie folgt:
Beim erstmaligen Erstellen der Activity kommt nur ein Screen mit 0null0=?
und wenn ich dann spiele bricht die App zusammen, dies aber nicht nach dem ersten richtigen Klick sondern nach dem 2. oder 3. Mal ....
Meine Rechenkönig class sieht momentan so aus:
im Anhang ist ein Bild mit dem "soll" und eines ganz am Anfang beim Starten der Activity ...
Und auch bei den Buttons habe ich ein wenig "gepfuscht" da ich mir keinen besseren Weg gesehen habe: xml-Dokument
Ich hoffe ihr könnt mir helfen, da mein androidwissen leider sehr klein ist und auch noch beim entwickeln ist
Ich entschuldige mich schon im Vorhinein für meine Rechtschreibung und meine Programmierweise und hoffe ihr habt Mitleid mit einem Schüler.
ich möchte im Rahmen eines Schulprojektes mehrere Spiele erstellen, bin mit einem Spiel auch schon fertig, doch beim 2. dem Rechenkönig feigelt es mich.
Das Problem, dass ich momentan habe, ist wie folgt:
Beim erstmaligen Erstellen der Activity kommt nur ein Screen mit 0null0=?
und wenn ich dann spiele bricht die App zusammen, dies aber nicht nach dem ersten richtigen Klick sondern nach dem 2. oder 3. Mal ....
Meine Rechenkönig class sieht momentan so aus:
Code:
package at.kom.schneenapp;
import java.util.Random;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class Rechenk extends Activity implements OnClickListener {
Random rnd = new Random(System.currentTimeMillis());
private Button Button1;
private Button Button2;
private Button Button3;
private Button Button4;
private TextView Display;
private TextView tvTime;
private long starttime = 0;
private long pausetime = 0;
private long endtime = 0;
// private long timeleft;
// private long playTime = 60000;
// private int secondsLeft;
@SuppressWarnings("unused")
private boolean timeIsUp = false;
int buttonzufall = 0;
int ergebnis = 0;
String rechenz;
int zufall1 = 0;
int zufall2 = 0;
int score = 0;
int t = 60000;
public int secoundsLeftt;
Thread backth;
public String secondsString;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.rechenk);
initialize();
initialize2();
game();
time();
}
@Override
protected void onPause() {
super.onPause();
pausetime = System.currentTimeMillis();
}
@Override
protected void onResume() {
super.onResume();
endtime = System.currentTimeMillis();
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button1:
if (buttonzufall == 1) {
score++;
initialize2();
game();
}
break;
case R.id.button2:
if (buttonzufall == 2) {
score++;
initialize2();
game();
}
break;
case R.id.button3:
if (buttonzufall == 3) {
score++;
initialize2();
game();
}
break;
case R.id.button4:
if (buttonzufall == 4) {
score++;
initialize2();
game();
}
break;
}
}
public void game() {
int rechenzeichen = rnd.nextInt(4);
if (rechenzeichen == 0) {
zufall1 = rnd.nextInt(100);
zufall2 = rnd.nextInt(100);
}
if (rechenzeichen == 1) {
do {
zufall1 = rnd.nextInt(50);
zufall2 = rnd.nextInt(50);
} while (zufall1 >= zufall1);
}
if (rechenzeichen == 2) {
zufall1 = rnd.nextInt(10);
zufall2 = rnd.nextInt(10);
}
if (rechenzeichen == 3) {
do {
zufall1 = rnd.nextInt(90);
zufall2 = rnd.nextInt(10);
} while (zufall1 % zufall2 == 0);
}
zufall1 = rnd.nextInt(50);
zufall2 = rnd.nextInt(50);
if (rechenzeichen == 0) {
ergebnis = zufall1 + zufall2;
rechenz = "+";
}
if (rechenzeichen == 1) {
ergebnis = zufall1 - zufall2;
rechenz = "-";
}
if (rechenzeichen == 2) {
ergebnis = zufall1 * zufall2;
rechenz = "*";
}
if (rechenzeichen == 3) {
ergebnis = zufall1 / zufall2;
rechenz = "/";
}
}
void initialize() {
Button1 = (Button) findViewById(R.id.button1);
Button1.setOnClickListener(this);
Button2 = (Button) findViewById(R.id.button2);
Button2.setOnClickListener(this);
Button3 = (Button) findViewById(R.id.button3);
Button3.setOnClickListener(this);
Button4 = (Button) findViewById(R.id.button4);
Button4.setOnClickListener(this);
Display = (TextView) findViewById(R.id.textView1);
tvTime = (TextView) findViewById(R.id.tvTime);
}
void initialize2() {
Display.setText(Integer.toString(zufall1) + rechenz
+ Integer.toString(zufall2) + "= ?");
buttonzufall = rnd.nextInt(4) + 1;
switch (buttonzufall) {
case 1:
Button1.setText(Integer.toString(ergebnis));
Button2.setText(Integer.toString(ergebnis - rnd.nextInt(100)));
Button3.setText(Integer.toString(ergebnis + rnd.nextInt(50)));
Button4.setText(Integer.toString(ergebnis + rnd.nextInt(10)));
break;
case 2:
Button2.setText(Integer.toString(ergebnis));
Button1.setText(Integer.toString(ergebnis - rnd.nextInt(100)));
Button4.setText(Integer.toString(ergebnis + rnd.nextInt(50)));
Button3.setText(Integer.toString(ergebnis + rnd.nextInt(10)));
break;
case 3:
Button3.setText(Integer.toString(ergebnis));
Button4.setText(Integer.toString(ergebnis - rnd.nextInt(100)));
Button1.setText(Integer.toString(ergebnis + rnd.nextInt(50)));
Button2.setText(Integer.toString(ergebnis + rnd.nextInt(10)));
break;
case 4:
Button4.setText(Integer.toString(ergebnis));
Button3.setText(Integer.toString(ergebnis - rnd.nextInt(100)));
Button2.setText(Integer.toString(ergebnis + rnd.nextInt(50)));
Button1.setText(Integer.toString(ergebnis + rnd.nextInt(10)));
break;
}
}
public void time() {
Log.i("mei log", "1");
backth = new Thread(new Runnable() {
// Setup the run() method that is called when the background thread
// is started.
public void run() {
for (int i = 0; i < 60; i++) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
secoundsLeftt = 60 - i;
secondsString = String.valueOf(secoundsLeftt);
tvTime.post(new Runnable() {
public void run() {
tvTime.setText(secondsString);
}
});
}
secondsString = String.valueOf(0);
tvTime.post(new Runnable() {
public void run() {
tvTime.setText(secondsString);
}
});
timeIsUp = true;
}
});
backth.start();
}
}
im Anhang ist ein Bild mit dem "soll" und eines ganz am Anfang beim Starten der Activity ...
Und auch bei den Buttons habe ich ein wenig "gepfuscht" da ich mir keinen besseren Weg gesehen habe: xml-Dokument
Code:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:gravity="bottom"
android:orientation="vertical"
tools:context=".Rechenk" >
<TextView
android:id="@+id/tvTime"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Time"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:id="@+id/textView1"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_gravity="center_vertical|top|center_horizontal"
android:layout_weight="1"
android:gravity="center_vertical|center_horizontal"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="60dp"
android:layout_weight="1"
android:text="Button 1" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="60dp"
android:layout_weight="1.00"
android:text="Button 2" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="60dp"
android:layout_weight="1"
android:text="Button 3" />
<Button
android:id="@+id/button4"
android:layout_width="wrap_content"
android:layout_height="60dp"
android:layout_weight="1.00"
android:text="Button 4" />
</LinearLayout>
</LinearLayout>
Ich hoffe ihr könnt mir helfen, da mein androidwissen leider sehr klein ist und auch noch beim entwickeln ist
Ich entschuldige mich schon im Vorhinein für meine Rechtschreibung und meine Programmierweise und hoffe ihr habt Mitleid mit einem Schüler.
Anhänge
Zuletzt bearbeitet: