您的位置:首页 > 其它

剪刀、石头、布

2013-03-30 13:24 363 查看



1、布局设计_Mainactivity
使用线性布局之间的嵌套
<LinearLayoutxmlns: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:background="@drawable/bj"
android:orientation="vertical"
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">

<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal">

<RadioGroup
android:id="@+id/check"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">

<RadioButton
android:id="@+id/scissor"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/scissor"/>

<RadioButton
android:id="@+id/stone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/stone"/>

<RadioButton
android:id="@+id/cloth"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/cloth"/>
</RadioGroup>
</LinearLayout>

<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal">

<Button
android:id="@+id/Game"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/chuanquan"/>
</LinearLayout>

</LinearLayout>
2、布局设计_SecondActivity


<LinearLayoutxmlns: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:background="@drawable/bj"
android:orientation="vertical"
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=".SecondActivity">

<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">

<TextView
android:id="@+id/txtPerson"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/NULL"
android:textSize="20sp"/>
<TextView
android:id="@+id/txtComputer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/NULL"
android:textSize="20sp"/>

</LinearLayout>

<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">

<TextView
android:id="@+id/txtWinner"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/NULL"
android:textSize="20sp"/>
</LinearLayout>

<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">

<Button
android:id="@+id/click"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/click"/>
</LinearLayout>

</LinearLayout>
3、代码实现功能:
packagecn.bzu.random_game.Controller;

importcom.bzu.Random_Game.Model.Computer;
importcom.bzu.Random_Game.Model.Game;
importcom.bzu.Random_Game.Model.Person;

importandroid.os.Bundle;
importandroid.app.Activity;
importandroid.app.AlertDialog;
importandroid.content.Intent;
importandroid.view.Menu;
importandroid.view.MenuInflater;
importandroid.view.MenuItem;
importandroid.view.View;
importandroid.widget.Button;
importandroid.widget.Checkable;
importandroid.widget.RadioButton;
importandroid.widget.RadioGroup;
importandroid.widget.RadioGroup.OnCheckedChangeListener;
importandroid.widget.Toast;

publicclassMainActivityextendsActivity{

privateRadioButtonscissorRadio;
privateRadioButtonstoneRadio;
privateRadioButtonclothRadio;
privateRadioGroupCheckRadio;
privateButtonbtnChuquan;
privateStringstrRadio;
privateStringresultPersonStr;
privateStringresultComputerStr;
privateStringresultCompare;
privateintCom_ranNumber;

@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/*
*
*为了防止两次调用电脑类中的方法造成产生的随机数结果不一致,要把产生随机数的算法写在这里
*/
Com_ranNumber=(int)(Math.random()*10)%3+1;
Intity();
Bundlebundle=this.getIntent().getExtras();
/*Intentintent=this.getIntent();
strRadio=intent.getStringExtra("PersonCheck");*/
if(bundle!=null){
strRadio=bundle.getString("PersonCheck");

if(strRadio!=null&&strRadio.equals("剪刀")){
scissorRadio.setChecked(true);
}
if(strRadio!=null&&strRadio.equals("石头")){
stoneRadio.setChecked(true);
}
if(strRadio!=null&&strRadio.equals("布")){
clothRadio.setChecked(true);
}
}

/*
*设置单选按钮的选择
*/
CheckRadio.setOnCheckedChangeListener(newOnCheckedChangeListener(){

@Override
publicvoidonCheckedChanged(RadioGroupgroup,intcheckedId){

if(checkedId==scissorRadio.getId()){

strRadio=scissorRadio.getText().toString();

}
if(checkedId==stoneRadio.getId()){

strRadio=stoneRadio.getText().toString();
}
if(checkedId==clothRadio.getId()){

strRadio=clothRadio.getText().toString();
}

}
});
btnChuquan.setOnClickListener(newButton.OnClickListener(){

@Override
publicvoidonClick(Viewv){

resultPersonStr=Person.Person_Game(strRadio);
resultComputerStr=Computer.Computer_Game(Com_ranNumber);
//刚开始的时候,又重新调用了一次随机分配,所以会造成前后判断不一致
resultCompare=Game.PersonComputer_Game(resultPersonStr,
Com_ranNumber);

/*
*Toast.makeText(MainActivity.this,"你选择的是:"+
*resultPersonStr+"\n电脑的选择是:"
*+resultComputerStr+"\n赢家是:"+resultCompare,
*Toast.LENGTH_LONG).show();
*/
Intentintent=newIntent();
Bundlebundle=newBundle();
bundle.putString("person",resultPersonStr);
bundle.putString("computer",resultComputerStr);
bundle.putString("result",resultCompare);
intent.putExtras(bundle);
intent.setClass(MainActivity.this,SecondActivity.class);
startActivity(intent);

}
});

}

publicvoidIntity(){

scissorRadio=(RadioButton)this.findViewById(R.id.scissor);
stoneRadio=(RadioButton)this.findViewById(R.id.stone);
clothRadio=(RadioButton)this.findViewById(R.id.cloth);
CheckRadio=(RadioGroup)this.findViewById(R.id.check);
btnChuquan=(Button)this.findViewById(R.id.Game);

}

/*设置菜单menu*/
@Override
publicbooleanonCreateOptionsMenu(Menumenu){

MenuInflaterinflater=this.getMenuInflater();
inflater.inflate(R.menu.main,menu);
returntrue;
}

@Override
publicbooleanonOptionsItemSelected(MenuItemitem){

switch(item.getItemId()){
caseR.id.about:
AlertDialog.Builderbuilder=newAlertDialog.Builder(this);
builder.setTitle(R.string.about)
.setMessage("欢迎来到随机猜拳游戏\n您可以和电脑进行简单的猜拳游戏\n"+"预祝您玩的愉快")
.create().show();
break;
caseR.id.exit:
this.finish();
break;
}

returnsuper.onOptionsItemSelected(item);
}

}
packagecn.bzu.random_game.Controller;

importandroid.os.Bundle;
importandroid.app.Activity;
importandroid.app.AlertDialog;
importandroid.content.Intent;
importandroid.view.Menu;
importandroid.view.MenuInflater;
importandroid.view.MenuItem;
importandroid.view.View;
importandroid.widget.Button;
importandroid.widget.TextView;

publicclassSecondActivityextendsActivity{

privateTextViewPersonMessage;
privateTextViewComputerMessage;
privateTextViewWinnerMessage;
privateButtonbtnCick;
privateStringperson;

@Override
protectedvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
Intity();
Bundlebundle=this.getIntent().getExtras();
person=bundle.getString("person");
StringComputer=bundle.getString("computer");
StringWinner=bundle.getString("result");
PersonMessage.setText("玩家出牌:"+person);
ComputerMessage.setText("电脑出牌:"+Computer);
WinnerMessage.setText("结果为: "+Winner);
btnCick.setOnClickListener(newButton.OnClickListener(){

@Override
publicvoidonClick(Viewv){
Intentintent=newIntent();
Bundlebundle=newBundle();
bundle.putString("PersonCheck",person);
//利用bundle传值的时候要在前面记住判空条件,否则将会出错
				//intent.putExtra("PersonCheck",person);
intent.setClass(SecondActivity.this,MainActivity.class);
startActivity(intent);

}
});

}

publicvoidIntity(){
PersonMessage=(TextView)this.findViewById(R.id.txtPerson);
ComputerMessage=(TextView)this.findViewById(R.id.txtComputer);
WinnerMessage=(TextView)this.findViewById(R.id.txtWinner);
btnCick=(Button)this.findViewById(R.id.click);
}

/*设置菜单menu*/
@Override
publicbooleanonCreateOptionsMenu(Menumenu){

MenuInflaterinflater=this.getMenuInflater();
inflater.inflate(R.menu.main,menu);
returntrue;
}

@Override
publicbooleanonOptionsItemSelected(MenuItemitem){

switch(item.getItemId()){
caseR.id.about:
AlertDialog.Builderbuilder=newAlertDialog.Builder(this);
builder.setTitle(R.string.about)
.setMessage("欢迎来到随机猜拳游戏\n您可以和电脑进行简单的猜拳游戏\n"+"预祝您玩的愉快")
.create().show();
break;
caseR.id.exit:
this.finish();
break;
}

returnsuper.onOptionsItemSelected(item);
}
}



实现类:

电脑类:

packagecom.bzu.Random_Game.Model;

publicclassComputer{

publicstaticStringstr;
publicstaticStringComputer_Game(intrandomNumber){

//Math.random();//返回0.0-1.0

switch(randomNumber){
case1:
str="剪刀";
break;
case2:
str="石头";
break;
case3:
str="布";
break;
}
returnstr;

}

}

Person类:
packagecom.bzu.Random_Game.Model;

publicclassPerson{
publicstaticStringstrText;
/*publicstaticStringscissorText;//用户选择剪刀
publicstaticStringstoneText;//用户选择石头
publicstaticStringclothText;//用户选择布
*/
publicstaticStringPerson_Game(Stringstr){

if(str.equals("剪刀"))
{
strText="剪刀";
}
if(str.equals("石头"))
{
strText="石头";
}
if(str.equals("布"))
{
strText="布";
}

returnstrText;
}

}


Game类:
packagecom.bzu.Random_Game.Model;

publicclassGame{

publicstaticStringResult;

publicstaticStringPersonComputer_Game(StringP_str,intCom_ranNumber){

Stringp_result=Person.Person_Game(P_str);
Stringc_result=Computer.Computer_Game(Com_ranNumber);

if(((p_result.equals("剪刀"))&&(c_result.equals("布")))
||((p_result.equals("布"))&&(c_result.equals("石头")))
||((p_result.equals("石头"))&&(c_result.equals("剪刀")))){//剪刀>布,石头>剪刀,布>石头
Result="玩家赢";
}elseif(p_result.equals(c_result)){//剪刀->剪刀,石头->石头布->布
Result="平局";
}else{
Result="电脑赢";
}

returnResult;
}
}


运行结果:







                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: