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

}
  • 7
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
创建一个简单石头剪子游戏可以遵循以下步骤: 1. 在局文件中创建三个按钮,分别代表石头,剪刀和。 2. 在MainActivity.java文件中编代码,处理按钮点击事件并生成计算机的选择。 3. 比较计算机的选择和玩家的选择并显示结果。 下面是一个简单的代码示例: ```java public class MainActivity extends AppCompatActivity implements View.OnClickListener { private Button buttonRock, buttonScissor, buttonPaper; private TextView textViewResult; private int playerChoice = -1; private int computerChoice = -1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); buttonRock = findViewById(R.id.button_rock); buttonScissor = findViewById(R.id.button_scissor); buttonPaper = findViewById(R.id.button_paper); textViewResult = findViewById(R.id.text_view_result); buttonRock.setOnClickListener(this); buttonScissor.setOnClickListener(this); buttonPaper.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.button_rock: playerChoice = 0; break; case R.id.button_scissor: playerChoice = 1; break; case R.id.button_paper: playerChoice = 2; break; } computerChoice = generateComputerChoice(); int result = compareChoices(playerChoice, computerChoice); String resultText = ""; switch (result) { case -1: resultText = "你输了!"; break; case 0: resultText = "平局!"; break; case 1: resultText = "你赢了!"; break; } textViewResult.setText(resultText); } private int generateComputerChoice() { Random random = new Random(); return random.nextInt(3); } private int compareChoices(int player, int computer) { if (player == computer) { return 0; } else if (player == 0 && computer == 1 || player == 1 && computer == 2 || player == 2 && computer == 0) { return 1; } else { return -1; } } } ``` 在此示例中,我们在局文件中创建了三个按钮,并在MainActivity中处理按钮的点击事件。 我们还使用了一个TextView来显示游戏的结果。 在onClick方法中,我们根据玩家的选择和计算机的选择,使用compareChoices方法进行比较。 最后,我们根据比较结果更新TextView以显示游戏结果。 generateComputerChoice方法用于生成计算机的选择。 它使用Java的Random类生成0到2之间的随机整数,对应于石头,剪刀和。 compareChoices方法比较玩家和计算机的选择,并返回1表示玩家赢,-1表示玩家输和0表示平局。 这是一个简单石头剪子游戏的实现。 你可以根据需要进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值