package com.example.gatest39;
public abstract class JinLing {
int HP;//精灵的生命值
int SP;//精灵的体力
String name;
String strID;
String strAllInfo;
enum strList{
普通攻击,
电闪雷鸣,
蓄力攻击,
恢复小血,
终极必杀
}
String GJFS[]={"普通攻击:100",
"电闪雷鸣:400",
"蓄力攻击:0",
"恢复小血:100",
"终极必杀:1000"};
/**
*精灵的构造函数
*/
public JinLing() {
// TODO Auto-generated constructor stub
}
/**
* @param hP
* @param sP
* @param name
*/
public JinLing(int hP, int sP, String name) {
super();
HP = hP;
SP = sP;
this.name = name;
}
public String getGJZhi(String str1)
{
String str2 = "";
switch(strList.valueOf(str1.toLowerCase()))
{
case 普通攻击:
str2="100";
break;
case 电闪雷鸣:
str2="400";
break;
case 蓄力攻击:
break;
case 恢复小血:
break;
case 终极必杀:
str2="1000";
break;
}
return str2;
}
public int gongjiHP(String str1)
{
//System.out.println("gongjiHP");
//System.out.println(str1);
int HHP = 0;
String strTmp1;
String strTmp2;
switch(strList.valueOf(str1.toLowerCase()))
{
case 普通攻击:
//System.out.println("普通攻击");
strTmp1 = GJFS[0];
String s1[]=strTmp1.split(":");
//System.out.println(s1[0]);
//System.out.println(s1[1]);
if(s1[0].equals("普通攻击")){
HHP=Integer.valueOf(s1[1]);
//System.out.println("HHP"+HHP);
}
break;
case 电闪雷鸣:
//System.out.println("电闪雷鸣");
strTmp1 = GJFS[1];
String s11[]=strTmp1.split(":");
if(s11[0].equals("电闪雷鸣")){
HHP=Integer.valueOf(s11[1]);
//System.out.println("HHP"+HHP);
}
break;
case 蓄力攻击:
System.out.println("蓄力攻击");
break;
case 恢复小血:
System.out.println("恢复小血");
strTmp1 = GJFS[3];
String s12[]=strTmp1.split(":");
System.out.println("恢复小血1:"+s12[1]);
if(s12[0].equals("恢复小血")){
System.out.println("恢复小血2:"+s12[1]);
this.HP=this.HP+Integer.valueOf(s12[1]);
}
break;
case 终极必杀:
System.out.println("终极必杀");
strTmp1 = GJFS[4];
String s13[]=strTmp1.split(":");
if(s13[0].equals("终极必杀")){
HHP=Integer.valueOf(s13[1]);
//System.out.println("HHP"+HHP);
}
break;
}
return HHP;
}
public int getHP() {
return HP;
}
public void setHP(int hP) {
HP = hP;
}
public int getSP() {
return SP;
}
public void setSP(int sP) {
SP = sP;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public abstract int gongJiXZ(String str1);//攻击选择
public abstract String toString(); //信息输出
}
class DJinLing extends JinLing
{
/**
* 敌方的初始化构造函数
*/
public DJinLing() {
// TODO Auto-generated constructor stub
super(10000, 500, "大头怪");
}
/**
* @param hP
* @param sP
* @param name
*/
private DJinLing(int hP, int sP, String name) {
super(hP, sP, name);
// TODO Auto-generated constructor stub
}
@Override
public int gongJiXZ(String str1) {
// TODO Auto-generated method stub
return 0;
}
@Override
public String toString() {
// TODO Auto-generated method stub
strAllInfo = "敌方精灵:";
strAllInfo = strAllInfo + name ;
strAllInfo = strAllInfo + " HP:";
strAllInfo = strAllInfo + String.valueOf(HP);
strAllInfo = strAllInfo + " SP:";
strAllInfo = strAllInfo + String.valueOf(SP);
return strAllInfo;
//return null;
}
}
class WJinLing extends JinLing
{
/**
* 我方的初始化函数
*/
public WJinLing() {
// TODO Auto-generated constructor stub
super(8000, 600, "电气宝宝");
}
/**
* @param hP
* @param sP
* @param name
*/
private WJinLing(int hP, int sP, String name) {
super(hP, sP, name);
// TODO Auto-generated constructor stub
}
@Override
public int gongJiXZ(String str1) {
// TODO Auto-generated method stub
return 0;
}
@Override
public String toString() {
// TODO Auto-generated method stub
strAllInfo = "我方精灵:";
strAllInfo = strAllInfo + name ;
strAllInfo = strAllInfo + " HP:";
strAllInfo = strAllInfo + String.valueOf(HP);
strAllInfo = strAllInfo + " SP:";
strAllInfo = strAllInfo + String.valueOf(SP);
return strAllInfo;
//return super.toString();
}
}
package com.example.gatest39;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
import java.util.Random;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
Spinner mspinner;
JinLing jinLing1;
Button btnQueD;//@+id/button1 确定按钮
Button btnJieS;//@+id/button2 结束本回合按钮
Button btnGengH;//@+id/button3 跟换宠物按钮
TextView dfZ;//@+id/textView1 敌方标题信息
TextView wfZ;//@+id/textView2 我方标题信息
TextView dfD;//@+id/textView4
TextView wfD;//@+id/textView3
TextView tiLiShu;//@+id/textView5
WJinLing wjl;
DJinLing djl;
String dTitle="等待玩家出牌";//敌方对话信息
String wTitle="请选择技能后出牌";//我方对话信息
String currAct;
String strTiLi="剩余体力:";
int intTiLi = 3;
int intXLZ = 1;
List<String> list = new ArrayList<String>();
ArrayAdapter<String> adapter;
int itemHangShu = 5;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mspinner=(Spinner)findViewById(R.id.spinner1);
btnQueD=(Button)findViewById(R.id.button1);
btnJieS=(Button)findViewById(R.id.button2);
btnGengH=(Button)findViewById(R.id.button3);
dfZ=(TextView)findViewById(R.id.textView1);
wfZ=(TextView)findViewById(R.id.textView2);
dfD=(TextView)findViewById(R.id.textView4);
wfD=(TextView)findViewById(R.id.textView3);
tiLiShu=(TextView)findViewById(R.id.textView5);
initialGame();
list.add("普通攻击:50");
list.add("电闪雷鸣:100");
list.add("蓄力攻击:10");
list.add("恢复小血:30");
list.add("终极必杀:200");
itemHangShu=list.size();
currAct=list.get(0);
BaseAdapter ba = new BaseAdapter() {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView text = new TextView(MainActivity.this);
text.setText(""+list.get(position));
return text;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public int getCount() {
return itemHangShu;
}
};
mspinner.setAdapter(ba);
mspinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
currAct=list.get(arg2);
//Toast.makeText(MainActivity.this, ""+arg2, Toast.LENGTH_LONG).show();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});
btnQueD.setOnClickListener(new View.OnClickListener() {
//确定按钮
@Override
public void onClick(View v) {
// Toast.makeText(MainActivity.this,
// "btnQueD:"+currAct,
// Toast.LENGTH_LONG).show();
if(intTiLi>0)
{
wTitle=wTitle+"\n"+"出牌:"+currAct;
wTitle = checkHC(wTitle);
wfD.setText(wTitle);
String s1[] = currAct.split(":");
if(s1[0].equals("蓄力攻击"))
{
intXLZ=intXLZ+1;
}
else
{
int iHP = wjl.gongjiHP(s1[0]);
System.out.println("iHP1"+iHP);
int iHP2 = djl.getHP() - iHP*intXLZ;
System.out.println("iHP2"+iHP2);
mDTitleadd(s1[0],String.valueOf(iHP2));
djl.setHP(iHP2);
}
//System.out.println(s1[1]);
//System.out.println(s1[0]);
divdSP("W",s1[1]);
divTiLiZhi();
divdHP("A");
}else{
Toast.makeText(MainActivity.this,
"无体力值了,不可再出牌",
Toast.LENGTH_SHORT).show();
}
}
});
btnJieS.setOnClickListener(new View.OnClickListener() {
//结束按钮
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//Toast.makeText(MainActivity.this, "btnJieS", Toast.LENGTH_LONG).show();
new AlertDialog.Builder(MainActivity.this).setTitle("提示").setMessage(
"是否结束本回合").setPositiveButton(
"确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
btnQueD.setEnabled(false);
btnJieS.setEnabled(false);
btnGengH.setEnabled(false);
intXLZ=0;
AIRUN();
}
}).setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
}).create().show();
}
});
btnGengH.setOnClickListener(new View.OnClickListener() {
//更换按钮 btnGengH
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//String strIP = getIP();
String strIP = getLocalIpAddress();
Toast.makeText(MainActivity.this,
strIP,
Toast.LENGTH_LONG).show();
}
});
}
public String getLocalIpAddress() {
//获取真实的IP地址
try {
for (Enumeration<NetworkInterface> en = NetworkInterface
.getNetworkInterfaces(); en.hasMoreElements();) {
NetworkInterface intf = en.nextElement();
for (Enumeration<InetAddress> enumIpAddr = intf
.getInetAddresses(); enumIpAddr.hasMoreElements();) {
InetAddress inetAddress = enumIpAddr.nextElement();
if (!inetAddress.isLoopbackAddress()) {
return inetAddress.getHostAddress().toString();
}
}
}
} catch (SocketException ex) {
Log.e("WifiPreference IpAddress", ex.toString());
}
return null;
}
protected String getIP() {
String strIP="";
try {
InetAddress addr = InetAddress.getLocalHost();
strIP=addr.getHostAddress().toString();
} catch (UnknownHostException e) {
e.printStackTrace();
}
return strIP;
}
protected void mDTitleadd(String str1,String str12) {
// TODO 当敌方受到我方攻击时在它的信息栏中显示消息。
String str2 = wjl.getGJZhi(str1);
dTitle=dTitle+"\n"+"受到"+ str1 +",减血"+str2;
dTitle=checkHC(dTitle);
dfD.setText(dTitle);
}
private void AIRUN() {
//电脑开始行动
Toast.makeText(MainActivity.this,
"电脑开始行动",
Toast.LENGTH_SHORT).show();
int aTiLi = 3;
int aSP = djl.getSP();
if(aSP > 0 )
{
for(int i1 = 0;i1<aTiLi;i1 ++)
{
int i2 = (int)(Math.random()*10);
int i3 = new Random().nextInt(5);
int ii1,ii2;
System.out.println("i3"+i3);
if(i2>5)
i2= i2 - 5;
System.out.println("i2"+i2);
switch(i2)
{
case 0:
addDXinXi("普通攻击");
ii1 = djl.gongjiHP("普通攻击");
ii2 = wjl.getHP() - ii1;
wjl.setHP(ii2);
divdSP("A", "50");
divdHP("Z");
mWTitleadd("普通攻击","100");
break;
case 1:
addDXinXi("电闪雷鸣");
ii1 = djl.gongjiHP("电闪雷鸣");
ii2 = wjl.getHP() - ii1;
wjl.setHP(ii2);
divdSP("A", "100");
divdHP("Z");
mWTitleadd("电闪雷鸣","400");
break;
case 2:
//addDXinXi("蓄力攻击");
//break;
case 3:
addDXinXi("恢复小血");
break;
case 4:
addDXinXi("终极必杀");
ii1 = djl.gongjiHP("终极必杀");
ii2 = wjl.getHP() - ii1;
wjl.setHP(ii2);
divdSP("A", "200");
divdHP("Z");
mWTitleadd("终极必杀","1000");
break;
}
}
}
else
{
toDisplay("电脑没有SP不可攻击");
}
btnQueD.setEnabled(true);
btnJieS.setEnabled(true);
btnGengH.setEnabled(true);
}
private void addDXinXi(String str1) {
// TODO Auto-generated method stub
dTitle=dTitle+"\n"+"出牌:"+str1;
dTitle=checkHC(dTitle);
dfD.setText(dTitle);
}
private void toDisplay(String str1) {
Toast.makeText(MainActivity.this,
str1,
Toast.LENGTH_SHORT).show();
}
protected void divdHP(String str1) {
if(str1=="A")
{
dfZ.setText(djl.toString());
}else if(str1=="Z"){
wfZ.setText(wjl.toString());
}
}
protected void divdSP(String str1, String str2) {
int i1 = Integer.valueOf(str2);
if(str1=="W")
{
int i2 = wjl.getSP();
i2 = i2 - i1;
wjl.setSP(i2);
wfZ.setText(wjl.toString());
}
else if(str1=="A")
{
int i2 = wjl.getSP();
i2 = i2 - i1;
djl.setSP(i2);
dfZ.setText(djl.toString());
}
}
private void mWTitleadd(String str1, String str2) {
wTitle = wTitle + "\n"+"受到"+str1+",减血"+str2;
wTitle = checkHC(wTitle);
wfD.setText(wTitle);
}
protected String checkHC(String wTitle2) {
String str1 = "";
String s1[] = wTitle2.split("\n");
//System.out.println(s1.length-1);
int i1 = s1.length-1;
if(i1>6)
{
int i2 = wTitle2.indexOf('\n');
//System.out.println("length1:"+wTitle2.length());
str1 = wTitle2.substring(i2+1);
//System.out.println("i2:"+i2);
//System.out.println("str1:"+str1);
//System.out.println("length2:"+str1.length());
}
else
{
str1=wTitle2;
}
return str1;
}
protected void divTiLiZhi() {
intTiLi--;
//strTiLi=strTiLi+""+intTiLi;
tiLiShu.setText(strTiLi+""+intTiLi);
}
private void initialGame() {
// TODO Auto-generated method stub
wjl = new WJinLing();
djl = new DJinLing();
dfZ.setText(djl.toString());
wfZ.setText(wjl.toString());
dfD.setText(dTitle);
wfD.setText(wTitle);
}
@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;
}
}