猜拳小游戏
来源:互联网 发布:mac 网站压力测试 编辑:程序博客网 时间:2024/04/28 06:37
猜拳小游戏的效果图如下,实现的方法有些繁琐:
第一步:先对界面进行布局,编写activity_guessgame.xml中的代码,如下:
<LinearLayout 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:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="@dimen/padding_medium" android:text="@string/title" tools:context=".GuessgameActivity" android:textSize="20sp"/> <RadioGroup android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <RadioButton android:id="@+id/stone" android:text="@string/stone"/> <RadioButton android:id="@+id/dao" android:text="@string/dao"/> <RadioButton android:id="@+id/bu" android:text="@string/bu"/> </RadioGroup> <Button android:id="@+id/submit" android:text="@string/submit" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="submit"/></LinearLayout>
第二步:因为要跳转到另一个页面,编写activity_another.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" > <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="@dimen/padding_medium" tools:context=".AnotherActivity" /></RelativeLayout>
第三步:编写电脑类和玩家类,两个类的代码如下:
package com.bzu.guessgame.entity;public class Computer {private String stone="石头";private String dao="剪刀";private String bu="布";public String getStone() {return stone;}public String getDao() {return dao;}public String getBu() {return bu;}public String getWord(int num){if(num==0){return getStone();}if(num==1){return getDao();}if(num==2){return getBu();}return null;}}
package com.bzu.guessgame.entity;public class Player {private String stone="石头";private String dao="剪刀";private String bu="布";public String getStone() {return stone;}public String getDao() {return dao;}public String getBu() {return bu;}public String getWord(int num){if(num==0){ return getStone();}if(num==1){return getDao();}if(num==2){return getBu();}return null;}}
第四步:编写比较类,比较谁赢谁输,代码如下(有点繁琐):
package com.bzu.guessgame.biz;import java.util.Random;import com.bzu.guessgame.entity.Computer;import com.bzu.guessgame.entity.Player;public class Compare { Player player=new Player(); Computer computer=new Computer(); String compare=""; public int getNum(){Random random=new Random();int num=random.nextInt(2);return num;} public String getCompare(int play){ int compute=getNum(); if(compute==0){ if(play==2){ compare="玩家:"+player.getWord(play)+" VS 电脑:"+computer.getWord(compute)+"\n玩家赢!"; return compare; } if(play==1){ compare="电脑:"+computer.getWord(compute)+" VS 玩家:"+player.getWord(play)+"\n电脑赢!"; return compare; } if(play==0){ compare="玩家:"+player.getWord(play)+" VS 电脑:"+computer.getWord(compute)+"\n平局!"; return compare; } } if(compute==1){ if(play==0){ compare="玩家:"+player.getWord(play)+" VS 电脑:"+computer.getWord(compute)+"\n玩家赢!"; return compare; } if(play==2){ compare="电脑:"+computer.getWord(compute)+" VS 玩家:"+player.getWord(play)+"\n电脑赢!"; return compare; } if(play==1){ compare="玩家:"+player.getWord(play)+" VS 电脑:"+computer.getWord(compute)+"\n平局!"; return compare; } } if(compute==2){ if(play==1){ compare="玩家:"+player.getWord(play)+" VS 电脑:"+computer.getWord(compute)+"\n玩家赢!"; return compare; } if(play==0){ compare="电脑:"+computer.getWord(compute)+" VS 玩家:"+player.getWord(play)+"\n电脑赢!"; return compare; } if(play==2){ compare="玩家:"+player.getWord(play)+" VS 电脑:"+computer.getWord(compute)+"\n平局!"; return compare; } }return null; }}
第五步:编写GuessGameActivity类,代码如下:
package com.bzu.guessgame.activity;import com.bzu.guessgame.biz.Compare;import android.os.Bundle;import android.app.Activity;import android.content.Intent;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.RadioButton;import android.support.v4.app.NavUtils;public class GuessgameActivity extends Activity { Compare compare=new Compare(); String message; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_guessgame); } public void submit(View v){ RadioButton stone=(RadioButton) this.findViewById(R.id.stone); RadioButton dao=(RadioButton) this.findViewById(R.id.dao); RadioButton bu=(RadioButton) this.findViewById(R.id.bu); int num; if(stone.isChecked()){ num=0; message=compare.getCompare(num); } if(dao.isChecked()){ num=1; message=compare.getCompare(num); } if(bu.isChecked()){ num=2; message=compare.getCompare(num); } Intent intent=new Intent(GuessgameActivity.this, AnotherActivity.class); Bundle bundle=new Bundle(); bundle.putString("message", message); intent.putExtras(bundle); startActivity(intent); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_guessgame, menu); return true; } }
第六步:因为要跳转到另一个activity,进行传值,接下来编写AnotherActivity类,代码如下:
package com.bzu.guessgame.activity;import android.os.Bundle;import android.app.Activity;import android.content.Intent;import android.view.Menu;import android.view.MenuItem;import android.widget.TextView;import android.support.v4.app.NavUtils;public class AnotherActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_another); TextView text=(TextView) this.findViewById(R.id.text); Intent intent=this.getIntent(); Bundle bundle=intent.getExtras(); String message=bundle.getString("message"); text.setText(message); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_another, menu); return true; } }
其他:strings.xml中代码如下:
<resources> <string name="app_name">GuessGame</string> <string name="title">请您选择要出的拳:</string> <string name="stone">石头</string> <string name="dao">剪刀</string> <string name="bu">布</string> <string name="submit">出拳</string> <string name="menu_settings">Settings</string> <string name="title_activity_guessgame">猜拳小游戏</string> <string name="hello_world">Hello world!</string> <string name="title_activity_another">显示结果</string></resources>
至此,就可以实现猜拳小游戏。
- 猜拳小游戏
- 猜拳小游戏
- 猜拳小游戏
- 猜拳小游戏
- 猜拳小游戏
- 猜拳小游戏
- 猜拳小游戏
- 猜拳小游戏
- 猜拳小游戏
- 猜拳小游戏
- 猜拳小游戏
- 猜拳小游戏
- 猜拳小游戏
- 猜拳小游戏
- 猜拳小游戏
- 猜拳小游戏
- 猜拳小游戏
- 猜拳小游戏
- 在路上
- C51: CHECKING FOR STACK UNDERFLOW AT RUNTIME
- html5:过去,现在和未来
- java5,java6新特性
- 一起学DNS系列(十)图、例详解DNS递归和迭代查询原理及过程 (1)
- 猜拳小游戏
- C51: WARNING 259 POINTER: DIFFERENT MSPACE
- Java字符串跟ASCII码互转 收藏
- 老爸的计策要成功了
- uC/OS II Extend Test
- 【insigma】interceptor拦截器的配置和应用
- hdu 3634 City Planning
- Java中值传递探讨
- cas 服务器端配置