android简单石头剪子布游戏

运行效果:

主界面配置文件:activity_main.xml

<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"
    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/cmpShow"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="20dp"
        android:text="@string/cmpShow" />

    <TextView
        android:id="@+id/playerShow"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_marginRight="20dp"
        android:text="@string/playerShow" />

    <ImageButton
        android:id="@+id/btnRock"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@id/playerShow"
        android:layout_below="@id/playerShow"
        android:layout_marginTop="10dp"
        android:contentDescription="@string/rockDes"
        android:src="@drawable/rock" 
        android:layout_marginRight="20dp"/>

    <ImageButton
        android:id="@+id/btnPaper"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@id/btnRock"
        android:layout_below="@id/btnRock"
        android:layout_marginTop="10dp"
        android:contentDescription="@string/paperDes"
        android:src="@drawable/paper"
        android:layout_marginRight="20dp" />

    <ImageView
        android:id="@+id/viewCmp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@id/btnPaper"
        android:layout_below="@id/cmpShow"
        android:contentDescription="@string/cmpViewDes"
        android:layout_marginLeft="20dp" />

    <ImageButton
        android:id="@+id/btnSci"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@id/btnPaper"
        android:layout_below="@id/btnPaper"
        android:layout_marginTop="10dp"
        android:contentDescription="@string/scissorsDes"
        android:src="@drawable/scissors"
        android:layout_marginRight="20dp" />
    
    <TextView
        android:id="@+id/textResult"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@id/cmpShow"
        android:layout_below="@id/btnSci"
        android:layout_marginTop="20dp"
        android:text="@string/result"
        android:textColor="#0fffff"
        android:textSize="20sp" />

</RelativeLayout>

strings.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">石头剪子布</string>
    <string name="action_settings">Settings</string>
    <string name="cmpShow">计算机出拳:</string>
    <string name="playerShow">玩家出拳:</string>
    <string name="rockDes">石头</string>
    <string name="paperDes">剪刀</string>
    <string name="scissorsDes">布</string>
    <string name="cmpViewDes">电脑出拳</string>
    <string name="result">判定输赢:</string>
    <string name="result_win">恭喜您,您赢了!</string>
    <string name="result_lose">运气不好,再来一次!</string>
    <string name="result_draw">再努力一点!</string>

</resources>

res资源结构:

MainActivity.java文件:

package cn.yh.rpsgame;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;

public class MainActivity extends Activity {

 private ImageButton r_imgBtn, p_imgBtn, s_imgBtn;
 private ImageView cmp_imgView;
 private TextView reslut_tv;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  r_imgBtn = (ImageButton) findViewById(R.id.btnRock);
  p_imgBtn = (ImageButton) findViewById(R.id.btnPaper);
  s_imgBtn = (ImageButton) findViewById(R.id.btnSci);
  cmp_imgView = (ImageView) findViewById(R.id.viewCmp);
  reslut_tv = (TextView) findViewById(R.id.textResult);
  MyOnClickListener myOnClickListener = new MyOnClickListener();
  r_imgBtn.setOnClickListener(myOnClickListener);
  p_imgBtn.setOnClickListener(myOnClickListener);
  s_imgBtn.setOnClickListener(myOnClickListener);
 }

 private class MyOnClickListener implements OnClickListener {

  @Override
  public void onClick(View v) {
   // TODO Auto-generated method stub
   int randCmp = (int) (Math.random() * 3 + 1);
   switch (randCmp) {
   case 1:
    cmp_imgView.setImageResource(R.drawable.rock);
    switch (v.getId()) {
    case R.id.btnRock:
     reslut_tv.setText(getString(R.string.result)
       + getString(R.string.result_draw));
     break;
    case R.id.btnPaper:
     reslut_tv.setText(getString(R.string.result)
       + getString(R.string.result_win));
     break;
    case R.id.btnSci:
     reslut_tv.setText(getString(R.string.result)
       + getString(R.string.result_lose));
     break;
    }
    break;
   case 2:
    cmp_imgView.setImageResource(R.drawable.paper);
    switch (v.getId()) {
    case R.id.btnRock:
     reslut_tv.setText(getString(R.string.result)
       + getString(R.string.result_lose));
     break;
    case R.id.btnPaper:
     reslut_tv.setText(getString(R.string.result)
       + getString(R.string.result_draw));
     break;
    case R.id.btnSci:
     reslut_tv.setText(getString(R.string.result)
       + getString(R.string.result_win));
     break;
    }
    break;
   case 3:
    cmp_imgView.setImageResource(R.drawable.scissors);
    switch (v.getId()) {
    case R.id.btnRock:
     reslut_tv.setText(getString(R.string.result)
       + getString(R.string.result_win));
     break;
    case R.id.btnPaper:
     reslut_tv.setText(getString(R.string.result)
       + getString(R.string.result_lose));
     break;
    case R.id.btnSci:
     reslut_tv.setText(getString(R.string.result)
       + getString(R.string.result_draw));
     break;
    }
    break;
   }
  }
 }

 @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;
 }

}

版权声明:本文为yhcelebrite原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。