猜拳小游戏

来源:互联网 发布: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>

至此,就可以实现猜拳小游戏。



原创粉丝点击