android---猜拳小游戏

本文介绍了一个简单的石头剪刀布游戏应用开发过程,包括MainActivity类定义、UI布局设计、Computer类实现电脑出拳随机性、User类转换用户输入、Game类判断输赢逻辑以及ResultActivity展示游戏结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MainActivity.java:

package com.activity;

import com.model.Computer;
import com.model.Game;
import com.model.User;

import android.widget.RadioGroup.OnCheckedChangeListener;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
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;

public class MainActivity extends Activity {

	//第一组件
	private RadioGroup radioGroup;
	private RadioButton shiTou,jianDao,bu;
	private Button button;
	
	Computer c = new Computer();
	User u = new User();
	Game g = new Game();
	
	String userAct;
	String str = null;
	String success;
	String computerAct;
	
	private void setStr(){
		int computer = c.computers();
		switch (computer) {
		case 0:
			computerAct = "石头";
			break;
		case 1:
			computerAct = "剪刀";
			break;
		case 2:
			computerAct = "布";
			break;
		}
		
		str = "玩家 "+userAct + " VS " +"电脑 "+computerAct;
		success = g.pk(u.users(userAct), computer);
	}
	
	//查找组件
	private void findViews(){
		button = (Button) findViewById(R.id.chuQuan);
		radioGroup = (RadioGroup) findViewById(R.id.radio);
		shiTou = (RadioButton) findViewById(R.id.shiTou);
		jianDao = (RadioButton) findViewById(R.id.jianDao);
		bu = (RadioButton) findViewById(R.id.bu);
	}
	
	//添加事件监听
	private void setListeners(){
		
		radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {
			public void onCheckedChanged(RadioGroup group, int checkedId) {
				if(checkedId == R.id.jianDao){
					userAct = "剪刀";
				}else if(checkedId == R.id.shiTou){
					userAct = "石头";
				}else if(checkedId == R.id.bu){
					userAct = "布";
				}
			}
		});
		
		button.setOnClickListener(new OnClickListener() {
			public void onClick(View v) {
				setStr();
				Intent intent = new Intent();
				intent.setClass(MainActivity.this, ResultActivity.class);
				intent.putExtra("str", str);
				intent.putExtra("success", success);
				startActivity(intent);
			}
		});
	
	}
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        findViews();
        setListeners();
        
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
}

布局文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
    
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="请选择你要出的拳"
        tools:context=".MainActivity" />
    
    <RadioGroup 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:id="@+id/radio"
        >
        <RadioButton 
            android:text="石头"
            android:id="@+id/shiTou"
            />
        <RadioButton 
            android:text="剪刀"
            android:id="@+id/jianDao"
            />
        <RadioButton 
            android:text="布"
            android:id="@+id/bu"
            />
    </RadioGroup>
    
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="出拳"
        android:id="@+id/chuQuan"
        />

</LinearLayout>

Computer.java:

package com.model;

import java.util.Random;

public class Computer {
	public int computers(){
		Random r = new Random();
		return r.nextInt(3);
		
	}
}

User.java:

package com.model;


public class User {
	public int users(String str) {
		int a = -1;
		if(str.equals("石头")){
			a = 0;
		}else if(str.equals("剪刀")){
			a = 1;
		}else if(str.equals("布")){
			a = 2;
		}
		return a;
	}
}

Game.java:判断输赢的

package com.model;

public class Game {
	public String pk(int user,int computer){
		if(user - computer == -1 || user - computer == 2){
			return "玩家 赢";
		}else if(user - computer == 0){
			return "平局";
		}else {
			return "电脑 赢";
		}
	}
}


显示结果的:Result.java:

package com.activity;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.widget.TextView;

public class ResultActivity extends Activity {
	private TextView textView;
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_result);
        textView = (TextView) findViewById(R.id.text);
        Intent intent = this.getIntent();
        String str = intent.getStringExtra("str");
        String success = intent.getStringExtra("success");
        String result = str+"\n"+success;
        textView.setText(result);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_result, menu);
        return true;
    }
}

布局文件:

<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" >

    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world"
        tools:context=".ResultActivity" />

</RelativeLayout>



评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值