fingergame_猜拳小游戏
2014-11-04 12:41
211 查看
游戏如图所示
首先附上MainActivity的布局
这里使用两个布局,其中有TableLayout(表格布局):以行列的形式管理子控件。
接下来就是MainActivity.java
接下来是SecondActivity.java
Ok~完工,一个简单易行的小游戏就完工啦!
----------晴天-----------
首先附上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~完工,一个简单易行的小游戏就完工啦!
----------晴天-----------