猜拳小游戏
2014-04-27 07:41
351 查看
猜拳小游戏
根据以前学的知识,我们首先分析一下猜拳小游戏的布局! 和所需要的控件!以前学的页面跳转。
效果图:
一. 我们不用硬编码的方式,我们在res文件夹values文件夹里面的string.xml。
[html] view
plaincopy
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">caiquan</string>
<string name="action_settings">Settings</string>
<string name="hello_world">Hello world!</string>
<string name="lable_main">请选择你要出的拳:</string>
<string name="ra_shitou">石头</string>
<string name="ra_jiandao">剪刀</string>
<string name="ra_bu">布</string>
<string name="button_main">出拳</string>
<string name="title_activity_show">ShowActivity</string>
</resources>
二. 然后再res文件夹中layout文件里面activity_main.xml定义布局!强调一点(RadioGroup控件把RadioButton单选框包围起来,意思就是把RadioButton单选框控件实现出来!如果不用RadioGroup控件包围RadioButton单选框,那RadioButton单选框无法实现单选效果!就变成多选了)。
[html] view
plaincopy
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/BT"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/lable_main" />
<RadioGroup
android:id="@+id/radiogroupe"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<RadioButton
android:id="@+id/BU"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/CQ"
android:layout_below="@+id/JD"
android:layout_marginTop="24dp"
android:text="@string/ra_bu" />
<RadioButton
android:id="@+id/JD"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/BU"
android:layout_below="@+id/ST"
android:layout_marginTop="16dp"
android:text="@string/ra_jiandao" />
<RadioButton
android:id="@+id/ST"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/BT"
android:layout_below="@+id/BT"
android:text="@string/ra_shitou" />
</RadioGroup>
<Button
android:id="@+id/CQ"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/ST"
android:layout_below="@+id/BU"
android:layout_marginTop="14dp"
android:text="@string/button_main" />
</LinearLayout>
三. 然后再res文件夹中layout文件里面activity_show.xml定义布局!这个布局页面主要是显示从activity_main 里面的数据传过来并接受显示在activity_show 的标签上。
[html] view
plaincopy
<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"
>
<TextView
android:id="@+id/show"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
四. 在MainActivity.java里面获取布局页面里面的ID地址,并定义属性。
[java] view
plaincopy
package edu.bzu.caiquan;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.RadioGroup;
public class MainActivity extends Activity {
private RadioGroup radioGroup;
private Button button;
private OnClickListener listener=new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId()){
case R.id.CQ:
int id=radioGroup.getCheckedRadioButtonId();
int quan=0;
switch(id){
case R.id.ST:
quan=1;
break;
case R.id.JD:
quan=2;
break;
case R.id.BU:
quan=3;
break;
default:
break;
}
Intent intent = new Intent();
intent.setClass(MainActivity.this, ShowActivity.class);
intent.putExtra("quan", quan);
startActivity(intent);
break;
default:
break;
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
radioGroup=(RadioGroup)findViewById(R.id.radiogroupe);
button=(Button)findViewById(R.id.CQ);
button.setOnClickListener(listener);
}
@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;
}
}
五. 在ShowActivity.java里面计算人和电脑随机出拳,谁是赢家!
[java] view
plaincopy
package edu.bzu.caiquan;
import java.util.Random;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.widget.TextView;
public class ShowActivity extends Activity {
private TextView tView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_show);
tView=(TextView) findViewById(R.id.show);
//得到人出的拳
Intent intent=getIntent();
Bundle bundle=intent.getExtras();
int ren=bundle.getInt("quan");
//电脑出的拳
Random random=new Random();
int cpu=random.nextInt(3-1)+1;
//比较结果 得出胜负
String show=compare(ren,cpu);
tView.setText(show);
}
private String compare(int ren, int cpu) {
// TODO Auto-generated method stub
StringBuffer sbf=new StringBuffer("结果:\n"+"人 "+convert(ren)+" VS "+convert(cpu)+" 电脑\n");
if (ren==cpu) {
sbf.append("平局,再接再励!");
}else if(ren==1 && cpu==3){
sbf.append("电脑胜,很遗憾!下次努力!");
}else if(ren==3 && cpu==1){
sbf.append("人胜,继续努力!");
}else if(ren<cpu){
sbf.append("人胜,继续努力!");
}else if(ren>cpu){
sbf.append("电脑胜,很遗憾!下次努力!");
}
return sbf.toString();
}
private String convert(int id){
switch (id) {
case 1:
return "石头";
case 2:
return "剪刀";
case 3:
return "布";
default:
break;
}
return null;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.show, menu);
return true;
}
}
六. AndroidManifest.xml.声明
[html] view
plaincopy
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="edu.bzu.caiquan"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="18" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="edu.bzu.caiquan.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="edu.bzu.caiquan.ShowActivity"
android:label="@string/title_activity_show" >
</activity>
</application>
</manifest>
根据以前学的知识,我们首先分析一下猜拳小游戏的布局! 和所需要的控件!以前学的页面跳转。
效果图:
一. 我们不用硬编码的方式,我们在res文件夹values文件夹里面的string.xml。
[html] view
plaincopy
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">caiquan</string>
<string name="action_settings">Settings</string>
<string name="hello_world">Hello world!</string>
<string name="lable_main">请选择你要出的拳:</string>
<string name="ra_shitou">石头</string>
<string name="ra_jiandao">剪刀</string>
<string name="ra_bu">布</string>
<string name="button_main">出拳</string>
<string name="title_activity_show">ShowActivity</string>
</resources>
二. 然后再res文件夹中layout文件里面activity_main.xml定义布局!强调一点(RadioGroup控件把RadioButton单选框包围起来,意思就是把RadioButton单选框控件实现出来!如果不用RadioGroup控件包围RadioButton单选框,那RadioButton单选框无法实现单选效果!就变成多选了)。
[html] view
plaincopy
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/BT"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/lable_main" />
<RadioGroup
android:id="@+id/radiogroupe"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<RadioButton
android:id="@+id/BU"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/CQ"
android:layout_below="@+id/JD"
android:layout_marginTop="24dp"
android:text="@string/ra_bu" />
<RadioButton
android:id="@+id/JD"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/BU"
android:layout_below="@+id/ST"
android:layout_marginTop="16dp"
android:text="@string/ra_jiandao" />
<RadioButton
android:id="@+id/ST"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/BT"
android:layout_below="@+id/BT"
android:text="@string/ra_shitou" />
</RadioGroup>
<Button
android:id="@+id/CQ"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/ST"
android:layout_below="@+id/BU"
android:layout_marginTop="14dp"
android:text="@string/button_main" />
</LinearLayout>
三. 然后再res文件夹中layout文件里面activity_show.xml定义布局!这个布局页面主要是显示从activity_main 里面的数据传过来并接受显示在activity_show 的标签上。
[html] view
plaincopy
<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"
>
<TextView
android:id="@+id/show"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
四. 在MainActivity.java里面获取布局页面里面的ID地址,并定义属性。
[java] view
plaincopy
package edu.bzu.caiquan;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.RadioGroup;
public class MainActivity extends Activity {
private RadioGroup radioGroup;
private Button button;
private OnClickListener listener=new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId()){
case R.id.CQ:
int id=radioGroup.getCheckedRadioButtonId();
int quan=0;
switch(id){
case R.id.ST:
quan=1;
break;
case R.id.JD:
quan=2;
break;
case R.id.BU:
quan=3;
break;
default:
break;
}
Intent intent = new Intent();
intent.setClass(MainActivity.this, ShowActivity.class);
intent.putExtra("quan", quan);
startActivity(intent);
break;
default:
break;
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
radioGroup=(RadioGroup)findViewById(R.id.radiogroupe);
button=(Button)findViewById(R.id.CQ);
button.setOnClickListener(listener);
}
@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;
}
}
五. 在ShowActivity.java里面计算人和电脑随机出拳,谁是赢家!
[java] view
plaincopy
package edu.bzu.caiquan;
import java.util.Random;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.widget.TextView;
public class ShowActivity extends Activity {
private TextView tView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_show);
tView=(TextView) findViewById(R.id.show);
//得到人出的拳
Intent intent=getIntent();
Bundle bundle=intent.getExtras();
int ren=bundle.getInt("quan");
//电脑出的拳
Random random=new Random();
int cpu=random.nextInt(3-1)+1;
//比较结果 得出胜负
String show=compare(ren,cpu);
tView.setText(show);
}
private String compare(int ren, int cpu) {
// TODO Auto-generated method stub
StringBuffer sbf=new StringBuffer("结果:\n"+"人 "+convert(ren)+" VS "+convert(cpu)+" 电脑\n");
if (ren==cpu) {
sbf.append("平局,再接再励!");
}else if(ren==1 && cpu==3){
sbf.append("电脑胜,很遗憾!下次努力!");
}else if(ren==3 && cpu==1){
sbf.append("人胜,继续努力!");
}else if(ren<cpu){
sbf.append("人胜,继续努力!");
}else if(ren>cpu){
sbf.append("电脑胜,很遗憾!下次努力!");
}
return sbf.toString();
}
private String convert(int id){
switch (id) {
case 1:
return "石头";
case 2:
return "剪刀";
case 3:
return "布";
default:
break;
}
return null;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.show, menu);
return true;
}
}
六. AndroidManifest.xml.声明
[html] view
plaincopy
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="edu.bzu.caiquan"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="18" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="edu.bzu.caiquan.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="edu.bzu.caiquan.ShowActivity"
android:label="@string/title_activity_show" >
</activity>
</application>
</manifest>
相关文章推荐
- JAVA语言实现人机猜拳小游戏
- Android-->猜拳小游戏
- c 语言 猜拳小游戏
- 最常见的猜拳小游戏Android代码实现
- java简单的人机猜拳小游戏
- 今天做了一个小游戏 猜拳游戏 大家可以看看玩玩
- 猜拳小游戏
- Java猜拳小游戏
- 用java写小游戏:猜拳 &&随机数的应用
- Java小游戏之猜拳游戏
- android 简易的猜拳小游戏
- 完成猜拳小游戏
- Android基础综合案例(八)猜拳小游戏
- C#猜拳小游戏
- [java小程序]-猜拳小游戏-初学
- 基于控制台的人机猜拳小游戏
- 人机猜拳小游戏(面向对象的方法)
- C语言猜拳小游戏,课堂设计
- android---猜拳小游戏
- java 小游戏人机猜拳 关键代码