fingergame_猜拳小游戏

游戏如图所示




首先附上MainActivity的布局

这里使用两个布局,其中有TableLayout(表格布局):以行列的形式管理子控件。


<TableLayout 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:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <TextView
        android:id="@+id/tv"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textSize="8pt"
        android:text="@string/tv" 
        android:gravity="center"
        />
   
    <RadioGroup 
        android:id="@+id/rg"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:gravity="center_horizontal"
        
        
        >
    <RadioButton 
        android:id="@+id/rg1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:text="剪刀"
        android:checked="true"//默认选择剪刀
        />
        
        
    <RadioButton 
        android:id="@+id/rg2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:text="拳头"
        
        />
    <RadioButton 
        android:id="@+id/rg3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:text="布子"
        
        />
    </RadioGroup>
<RelativeLayout >

    <ImageView
        android:id="@+id/iv1"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_below="@+id/bt"
        android:layout_marginTop="16dp" 
        />

    <ImageView
        android:id="@+id/iv3"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_alignBottom="@+id/iv1"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="24dp" 
        android:src="@drawable/vs"
        
        />

    <Button
        android:id="@+id/bt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="26dp"
        android:text="确定" />

    <ImageView
        android:id="@+id/iv2"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_alignParentRight="true"
        android:layout_alignTop="@+id/iv1" />
    
    </RelativeLayout>
    <TextView 
        android:id="@+id/tv1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="16pt"
        
        />

</TableLayout>

接下来就是MainActivity.java

package com.example.game_fingergame;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;

public class MainActivity extends Activity {
	String TAG="";
	 private ImageView iv1;//用户
	 private ImageView iv2;//电脑
	 private RadioButton rg1;
	 private RadioButton rg2;
	 private RadioButton rg3;
	 private TextView tv1;
	 private RadioGroup rg;
	 int count=0;//计算次数
	 int win=0;
	 int lose=0;
	 int draw=0;//平手
	 int a;
	 Intent intent;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    	super.onCreate(savedInstanceState);
    	setContentView(R.layout.activity_main);
    	
    	
        Log.i(TAG, "1");//插入断点
        Button bt=(Button)this.findViewById(R.id.bt);
        iv1=(ImageView)this.findViewById(R.id.iv1);//用户
        iv2=(ImageView)this.findViewById(R.id.iv2);//电脑
        tv1=(TextView)this.findViewById(R.id.tv1);
        rg = (RadioGroup)this.findViewById(R.id.rg);
        rg1=(RadioButton)this.findViewById(R.id.rg1);//剪刀
        rg2=(RadioButton)this.findViewById(R.id.rg2);//拳头
        rg3=(RadioButton)this.findViewById(R.id.rg3);//布
        Log.i(TAG,"2");//插入断点
        
        
        
        bt.setOnClickListener(new OnClickListener() {
        	
			
			
			public void onClick(View v) {//点击事件
				int i;
		        i=(int)(Math.random()*3);//产生0-2的随机整数
				int id=rg.getCheckedRadioButtonId();
				if(rg.getCheckedRadioButtonId()==R.id.rg1){a=0;}//剪刀
				if(rg.getCheckedRadioButtonId()==R.id.rg2){a=1;}//拳头
				if(rg.getCheckedRadioButtonId()==R.id.rg3){a=2;}//布
				switch(a){
				case 0:					//用户选择剪刀
					iv1.setBackgroundResource(R.drawable.jiandao);
					if(i==a){iv2.setBackgroundResource(R.drawable.jiandao);
						tv1.setText("平手!");draw++;
					}//i=0,a=0均为剪刀
					if(i==a+1){iv2.setBackgroundResource(R.drawable.quantou);
					tv1.setText("你输了!");lose++;
					}//i=1为拳头,a=0为剪刀
					if(i==a+2) {iv2.setBackgroundResource(R.drawable.bu);
					tv1.setText("你赢了!");win++;
					}//i=2为布,a=0为剪刀
					count++;
					break;
				
				case 1:			 //用户选择拳头
					iv1.setBackgroundResource(R.drawable.quantou);
					if(i==a){iv2.setBackgroundResource(R.drawable.quantou);
					tv1.setText("平手!");draw++;
					}//i=1,a=1均为拳头
					if(i==a+1){iv2.setBackgroundResource(R.drawable.bu);
					tv1.setText("你输了!");lose++;
					}//i=2为布,a=1为拳头
					if(i==a-1){iv2.setBackgroundResource(R.drawable.jiandao);
					tv1.setText("你赢了!");win++;
					}//i=0为剪刀,a=1为拳头
					count++;
					break;
				case 2:			 //用户选择布
					iv1.setBackgroundResource(R.drawable.bu);
					if(i==a){iv2.setBackgroundResource(R.drawable.bu);
					tv1.setText("平手!");draw++;
					}//i=2,a=2均为布
					if(i==a-1){iv2.setBackgroundResource(R.drawable.quantou);
					tv1.setText("你赢了!");win++;
					}//i=1为拳头,a=2为布
					if(i==a-2){iv2.setBackgroundResource(R.drawable.jiandao);
					tv1.setText("你输了!");lose++;
					}//i=0为剪刀,a=2为布
					count++;
					break;
				default:break;
				}
				if(count==5){
				intent =new Intent();
				intent.putExtra("draw", draw);//传值
				intent.putExtra("win", win);
				intent.putExtra("lose", lose);
				intent.setClass(MainActivity.this, SecondActivity.class);
				MainActivity.this.startActivity(intent);//跳转
				}
			}
			});
        
    }
    }


接下来是SecondActivity.java 

package com.example.game_fingergame;

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

public class SecondActivity extends Activity {
	private TextView tv;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_second);
		tv=(TextView)this.findViewById(R.id.tv);
		Intent i=getIntent();
		int draw=i.getIntExtra("draw", 0);
		int win=i.getIntExtra("win", 0);
		int lose=i.getIntExtra("lose", 0);
		if(win>=3){
			tv.setText("恭喜你过关了,你一共赢了"+win+"盘");
		}
		else{
			tv.setText("很遗憾你没有过关,你输了"+lose+"盘,平了"+draw+"盘");
		}
	}
}


Ok~完工,一个简单易行的小游戏就完工啦!


----------晴天-----------


        




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值