Android简单实现猜拳游戏
MainActivity类:
package com.mcm.fingerplay;
import android.os.Bundle;
import android.app.Activity;
import android.graphics.Color;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.TextView;
public class MainActivity extends Activity {
private RadioGroup leftRadioGroup;
private RadioGroup rightRadioGroup;
private RadioButton leftStoneButton;
private RadioButton leftScissorsButton;
private RadioButton leftClothButton;
private RadioButton rightStoneButton;
private RadioButton rightScissorsButton;
private RadioButton rightClothButton;
private Button button;
private TextView resultTextView;
static int flag = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
resultTextView = (TextView) findViewById(R.id.resultTextView);
resultTextView.setBackgroundColor(Color.YELLOW);
leftRadioGroup = (RadioGroup) findViewById(R.id.leftRadioGroup);
rightRadioGroup = (RadioGroup) findViewById(R.id.rightRadioGroup);
leftRadioGroupLister l = new leftRadioGroupLister();
leftRadioGroup.setOnCheckedChangeListener(l);
rightRadioGroupLister r = new rightRadioGroupLister();
rightRadioGroup.setOnCheckedChangeListener(r);
button = (Button) findViewById(R.id.button);
ButtonLister buttonLister = new ButtonLister();
button.setOnClickListener(buttonLister);
leftStoneButton = (RadioButton) findViewById(R.id.leftStoneButton);
leftScissorsButton = (RadioButton) findViewById(R.id.leftScissorsButton);
leftClothButton = (RadioButton) findViewById(R.id.leftClothButton);
rightStoneButton = (RadioButton) findViewById(R.id.rightStoneButton);
rightScissorsButton = (RadioButton) findViewById(R.id.rightScissorsButton);
rightClothButton = (RadioButton) findViewById(R.id.rightClothButton);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
class ButtonLister implements OnClickListener{
@Override
public void onClick(View v) {
//显示猜拳结果
System.out.println("显示猜拳结果");
System.out.println(flag);
if(flag == 1){
resultTextView.setText("左方胜!");
}else if(flag == 2){
resultTextView.setText("右方胜!");
}else{
resultTextView.setText("平局!");
}
flag = 0;
}
}
class leftRadioGroupLister implements OnCheckedChangeListener{
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
System.out.println("leftRadioGroupLister进来了");
if(group.getId() == leftRadioGroup.getId()){
if(leftStoneButton.isChecked()){//左边出石头
if(rightScissorsButton.isChecked()){//右边剪刀
flag = 1;
}else if(rightClothButton.isChecked()){//右边出布
flag = 2;
}
}else if(leftScissorsButton.isChecked()){//左边出剪刀
if(rightStoneButton.isChecked()){//右边石头
flag = 2;
}else if(rightClothButton.isChecked()){//右边出布
flag = 1;
}
}else{//左边出布
if(rightStoneButton.isChecked()){//右边石头
flag = 1;
}else if(rightScissorsButton.isChecked()){//右边出剪刀
flag = 2;
}
}
}
}
}
class rightRadioGroupLister implements OnCheckedChangeListener{
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
System.out.println("rightRadioGroupLister进来了");
if(group.getId() == rightRadioGroup.getId()){
if(rightStoneButton.isChecked()){//右边出石头
if(leftScissorsButton.isChecked()){//左边剪刀
flag = 2;
}else if(leftClothButton.isChecked()){//左边出布
flag = 1;
}
}else if(rightScissorsButton.isChecked()){//右边出剪刀
if(leftStoneButton.isChecked()){//左边石头
flag = 1;
}else if(leftClothButton.isChecked()){//左边出布
flag = 2;
}
}else{//右边出布
if(rightStoneButton.isChecked()){//左边石头
flag = 2;
}else if(rightScissorsButton.isChecked()){//左边出剪刀
flag = 1;
}
}
}
}
}
}
activity_main.xml文件:
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="20dp"
>
android:layout_height="wrap_content"
android:text="猜拳游戏"
android:textSize="50sp"
android:gravity="center"/>
android:layout_width="200dp"
android:layout_height="100dp"
android:src="@drawable/fight"
android:background="#00FF00"
android:layout_gravity="center_horizontal"/>
android:layout_height="wrap_content"
android:orientation="horizontal">
android:layout_width="150dp"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="left"
>
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="石头"/>
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="剪刀"/>
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="布"/>
android:layout_width="150dp"
android:layout_height="wrap_content"
android:orientation="vertical"
>
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="石头"/>
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="剪刀"/>
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="布"/>