剪刀、石头、布
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;
}
}
运行结果:
相关文章推荐
- 石头-剪刀-布
- 猜拳游戏(剪刀 石头 布)
- [ACM_水题] Yet Another Story of Rock-paper-scissors [超水 剪刀石头布]
- 2-sat(石头、剪刀、布)hdu4115
- BZOJ 2597 WC2007 剪刀石头布 费用流
- BZOJ 2597: [Wc2007]剪刀石头布|费用流
- 程序设计:剪刀、石头、布(二)
- Python实现石头-剪刀-布小游戏
- BZOJ 2597: [Wc2007]剪刀石头布 费用流
- 剪刀,石头,布
- 用户与计算机的几个简单交互游戏(猜数字、猜单词、剪刀石头布...)
- 2-sat(石头、剪刀、布)hdu4115
- bzoj1449: [JSOI2009]球队收益&&bzoj2597: [Wc2007]剪刀石头布
- 2597: [Wc2007]剪刀石头布 费用流
- bzoj2597: [Wc2007]剪刀石头布
- C_逻辑题: 石头,剪刀,布
- 【BZOJ2597】【WC2007】剪刀石头布
- △【OJ】(二)---J---剪刀石头布
- coj 1202: 剪刀石头布
- 石头剪刀