Javac++学完基础知识后学完能制作小游戏吗?

欢迎加入我们,一同切磋技术 &
用户名: &&&
密 码: &
共有 3305 人关注过本帖
标题:Java新手,今天在学写一个打飞机的小游戏,遇到一处不明
等 级:新手上路
帖 子:46
结帖率:70%
&&已结贴√
&&问题点数:8&&回复次数:5&&&
Java新手,今天在学写一个打飞机的小游戏,遇到一处不明
public class PPlane extends Plane{
&&& private I
&&& private JP
&&& public static boolean UP;
&&& public static boolean DOWN;
&&& public static boolean LEFT;
&&& public static boolean RIGHT;
&&& public static boolean isF
&&& public static int life = 100;
&&& public PPlane(){
&&& public PPlane(int x, int y, int width, int height) {
&&&&&&&&super(x, y, width, height);
&&&&&&&&img = new ImageIcon(&Image/boss1.png&).getImage();
&&&&&&&&// TODO Auto-generated constructor stub
&&& //传递&&画布
这里是什么意思?
&&& public JPanel getJpanel() {
&&&&&&&&//还有这里
&&& public void setJpanel(JPanel jpanel) {
&&&&&&&&this.jpanel =
&&& //设置方向
&&& public int getDirection() {
&&& public void setDirection(int direction) {
&&&&&&&&this.direction =
&&& public void drawMe(Graphics g) {
&&&&&&&&// TODO Auto-generated method stub
&&&&&&&&g.drawImage(img, this.x,this.y,this.w,this.h,this.jpanel);
&&& public void changeDirection(int direction){
&&&&&&&&this.direction =
&&& public void pplaneMove(){
&&&&&&&&if (UP)
&&&&&&&&&&&&y -= Global.SPEED;
&&&&&&&&if (DOWN)
&&&&&&&&&&&&y += Global.SPEED;
&&&&&&&&if (LEFT)
&&&&&&&&&&&&x -= Global.SPEED;
&&&&&&&&if (RIGHT)
&&&&&&&&&&&&x += Global.SPEED;
&&& public boolean isAlive(){
&&&&&&&&if(PPlane.life &= 0){
&&&&&&&&&&&&PPlane.life = 0;
&&&&&&&&&&&&&&&
&&&&&&&&else
&&&&&&&&&&&&
[ 本帖最后由 墨落成白 于
10:11 编辑 ]
搜索更多相关主题的帖子:
&&&&&&&&&&
等 级:贵宾
威 望:38
帖 子:427
专家分:2071
1)private JP
2)public JPanel getJpanel() {
3)public void setJpanel(JPanel jpanel) {
&&& this.jpanel =
对于面向对象编程语言,一个重要的思想就是“隐藏实现细节”
Encapsulation - Hiding the implementation details of a class.
所以,一般来讲,所有的成员变量都要设置为private,也就是类内部访问级别
即使是别的类new这个类的对象,也不能访问类内部的变量
隐藏实现细节,可以确保类内部的逻辑发生变化时,只要对外的接口没有发生变化,对正整个系统的影响降至最低
避免很多不必要的回归测试
但是,所有的成员变量都设置为private之后,外部没有对其进行设定和参照的方法也不行
于是就有了2)和3)
在简单的程序中,这样看起来有点儿多此一举
但是在非常复杂的程序中,不这么做的话,就没有办法对代码进行对其他逻辑没有影响的修改了……
把变量设为private并为其追加getter和setter的过程,一般称为“胶囊化”
胶囊化在Eclipse或者IntelliJ中都可以用IDE的菜单命令快速自动实现的
等 级:新手上路
帖 子:46
回复 2楼 日知己所无
谢谢大神指点,什么时候才能有你这样的水准
等 级:贵宾
威 望:38
帖 子:427
专家分:2071
回复 3楼 墨落成白
不客气,一起学习,共同进步
等 级:新手上路
帖 子:46
回复 4楼 日知己所无
那么怎么用Eclipse IDE的菜单命令快速自动实现?
等 级:贵宾
威 望:38
帖 子:427
专家分:2071
回复 5楼 墨落成白
菜单(T)-&(S)
版权所有,并保留所有权利。
Powered by , Processed in 0.038483 second(s), 7 queries.
Copyright&, BCCN.NET, All Rights ReservedJAVA制作网页游戏可以么? - ITeye问答
很喜欢游戏,想自己写游戏,学习的是JAVA语言,看到有JAVA写得游戏,网上查到的资料少之又少,不知道有谁有经验的谈谈看法
问题补充:或者想写游戏,该从哪方面入手,具体的书籍等情况最好介绍下
Java 写游戏还是写手机游戏比较有前途吧。像现在的安卓就是用java写的啊。光学java是不行的,要学游戏框架,现在手机的2d游戏,都是用cocos2d写的多。3d用的是unity3d写的比较多。而且java写服务端比较好,因为夸平台嘛,所以也要学习java 的socket编程喽
既然是网页游戏重点在于客户端,这里应该是富客户端才对。
曾看过韩国某商业游戏的源码(c/s)其的服务器端就是用java做的。我也想做游戏,但是做游戏太复杂了一个人没那个本事做。你可以找本书看看的了解下基础的,做一个完整的demo。
已解决问题
未解决问题游戏要求:1.有猫和狗两个对象,两者一言不合就开战,猫和狗都有一定的HP;
2.猫和狗都有一定的攻击力;
3.猫和狗谁先发起攻击,是随机的,猫先发起攻击的概率为60%,狗先发起攻击的概率为40%;
计算:谁先挂掉,某个动物先挂掉之后,输出分别攻击了多少次
4.每次攻击发出叫声(当发出叫声为三个汉字的时候,攻击力增加20%,反之不增加,叫声为三个汉字的概率为30%)
思路分析:
需要用到的java文件:
1.主文件CoreJava07.java,是实现程序的主入口;2,Cat.java,是我们的猫类;3,Dog,java,是我们的狗类;4,AttackFlow.java,这是我们的攻击操作类
主文件:主要包含了我们的主程序main函数
cat类:包含我们起初定义的HP和攻击力POWER属性,以及一个攻击方法attack,增加攻击统计AttackCount,再次增加catboomCount.
所以完整的cat代码如下:
public class Cat {//猫的血量//猫的攻击力private long attachC//猫的攻击次数private long catboomC//统计猫的暴击次数public long getBoomCount() {return catboomC}public void setBoomCount(long boomCount) {this.catboomCount = boomC}public Cat(double hp, double power) {//构造函数,传参数this.hp =this.power =}public double getHp() {}public void setHp(double hp) {this.hp =}public double getPower() {}public void setPower(double power) {this.power =}public void attack(Dog dog) {//获取狗的血量,然后减血if (hp & 0) {System.out.println("猫发起攻击******");attachCount++;double dogCurrentHP = dog.getHp();if(isBoomAttack()){catboomCount++;System.out.println("猫发生暴击****");dogCurrentHP = dogCurrentHP - power*1.2;}else{dogCurrentHP = dogCurrentHP -}dogCurrentHP = dogCurrentHP -dog.setHp(dogCurrentHP);System.out.println("狗剩余的生命值:"+dog.getHp());}}/*** 暴击概率计算,返回是否发生暴击* @fasle*/private boolean isBoomAttack(){boolean isBoomAttack=int random=(int)(Math.random()*10);if(random&=2){isBoomAttack=}return isBoomA}public long getAttachCount() {return attachC}public void setAttachCount(long attachCount) {this.attachCount = attachC}
Dog类和猫类一样;
public class Dog {//血量//攻击力private long attachC//统计攻击次数private long dogboomC//统计狗的暴击次数public long getBoomCount() {return dogboomC}public void setBoomCount(long boomCount) {this.dogboomCount = boomC}public Dog(double hp, double power) {this.hp =this.power =}// 将猫的实例化对象传进来,因为狗攻击时,需要猫的hp下降;// 方案1.将正在打架的猫的实例化对象传进来// 方案2,不传猫进来,将猫的当前血量(被攻击前)传进来,然后再送回去,重新赋值给猫public void attack(Cat cat) {if (hp & 0) {System.out.println("狗发起攻击");attachCount++;double catCurrentHP = cat.getHp();if(isBoomAttack()){dogboomCount++;System.out.println("狗发生暴击");catCurrentHP = catCurrentHP - power*1.2;}else{catCurrentHP = catCurrentHP -}cat.setHp(catCurrentHP);System.out.println("猫剩余生命值:"+cat.getHp());}}/*** 暴击概率计算,返回是否发生暴击* @fasle*/private boolean isBoomAttack(){boolean isBoomAttack=int random=(int)(Math.random()*10);if(random&=2){isBoomAttack=}return isBoomA}public long getAttachCount() {return attachC}public void setAttachCount(long attachCount) {this.attachCount = attachC}public double getHp() {}public void setHp(double hp) {this.hp =}public double getPower() {}public void setPower(double power) {this.power =}
最后的AttackFlow类定义了我们的攻击顺序,主要包含利用随机数,实现猫和狗随机发起攻击;
* 这是攻击顺序类
* @author Administrator
public class AttackFlow {public static int randomAttack() {// result=1,猫攻击,2,狗攻击int result = 0;int type = (int) (Math.random() * 10);// [0,10)if (type & 5) {type = 2;} else {type = 1;}switch (type) {case 1:result = 1;case 2:result = 2;}}public static void startGame() {//开始游戏Dog dog = new Dog(1);Cat cat = new Cat();int whoFirst = AttackFlow.randomAttack();//获取谁先攻击while (dog.getHp() & 0 && cat.getHp() & 0) {switch (whoFirst) {case 1:cat.attack(dog);dog.attack(cat);case 2:dog.attack(cat);cat.attack(dog);default:System.out.println("ERROR:1
攻击参数出错");}}if (dog.getHp() &= 0) {System.out.println("狗死了");System.out.println("狗攻击次数为:"+dog.getAttachCount());System.out.println("猫剩余血量为:"+cat.getHp());System.out.println("猫攻击次数为:"+cat.getAttachCount());} if (cat.getHp() &= 0) {System.out.println("猫死了");System.out.println("猫攻击次数为:"+cat.getAttachCount());System.out.println("狗剩余血量为:"+dog.getHp());System.out.println("狗攻击次数为:"+dog.getAttachCount());} System.out.println("猫暴击次数为:"+cat.getBoomCount());System.out.println("狗暴击次数为:"+dog.getBoomCount());}
其次为了避免主程序过于冗余,我们在AttackFlow类中,定义了一个静态方法start来开启游戏,在这个start里面我们要实现判断谁先死,然后输出猫和狗各输出了多少次,以及没死的动物还剩多少血,在这里我们引入了统计攻击次数的变量AttackCount.
为了实现第三个功能,就是实现暴击,我们首先明白我们的攻击的实现,我们选择将猫和狗分别作为参数传入攻击方法,用CurrentHP接受传进来的猫或者狗的血量,然后减去攻击力,然后送还给原来的数,
注意的地方:1,我们加了个if判断,防止在进行攻击时,猫进行了狗的最后一次攻击,把狗打死了,可是因为程序的执行顺序,狗死了之后依然发出了攻击,所以我,我们使用了一个判断在攻击方法里面,在攻击之前进行判断,如果血量低于0则攻击无效(下面的红色代码)
1.我们的第三个功能是暴击,第一步,先利用随机数实现暴击的概率,封装成一个方法,然后再攻击力里面进行判断,如果出发暴击方法,则在原来的减法上,提升攻击力到120%;(下图的黄色代码区)
因为发生了暴击事件,我们最后要输出暴击次数,所以在猫和狗类中增加暴击次数统计catboomCount
attack方法:
public void attack(Dog dog) {//获取狗的血量,然后减血if (hp & 0) {System.out.println("猫发起攻击******");attachCount++;double dogCurrentHP = dog.getHp();if(isBoomAttack()){catboomCount++;System.out.println("猫发生暴击****");dogCurrentHP = dogCurrentHP - power*1.2;}else{dogCurrentHP = dogCurrentHP -}dogCurrentHP = dogCurrentHP -dog.setHp(dogCurrentHP);System.out.println("狗剩余的生命值:"+dog.getHp());}}
主程序代码实现:
public class CoreJava07 {public static void main(String[] args) {AttackFlow.startGame();}
通过游戏学java(适合初学者)
java小游戏开发,完整版 (初学者正在努力中)
JAVA学习之路-简单的城堡游戏(一)
十款经典游戏的Java版本(开源)
如何用java编写小游戏
没有更多推荐了, 上传我的文档
 上传文档
 下载
 收藏
粉丝量:124
所有文档均来自于网络,所搜集文档几乎涵盖了所有行业,均严格按照道客巴巴->文档分类->所有文档->分类。对每篇文档详细释义做出了合理推敲,并对其精确划分了类别。例:上海最新企业名录 ->(标题)->所有文档->(教材教辅)->(分类)->工具书。旨在让大家把搜索到的文档对照标题,参照分类。一看便一目了然成竹在胸,放心下载,安心使用。笔者主要搜集了一些常用文档,如论文,工作总结,合同协议,规章制度,报告,方案,课件,试题,试卷,答案,职业资格考试,策划营销.....等等一些教育学习,办公写作,商业经营,实用性极强的文档,您若觉得对您日常学习,商业经营,社交沟通,办公写作有所帮助的话就关注我吧。
 下载此文档
如何用java编写小游戏
下载积分:1000
内容提示:如何用java编写小游戏
文档格式:DOC|
浏览次数:987|
上传日期: 00:52:59|
文档星级:
全文阅读已结束,如果下载本文需要使用
 1000 积分
下载此文档
该用户还上传了这些文档
如何用java编写小游戏
关注微信公众号& 软工作业:黄金点游戏。跟我结对编程的是杨晓帅,我班编程能力较强的一位同学。我们自学了java,用java编写了这个程序,用时两天。
&杨晓帅的博客园链接:http://www.cnblogs.com/fench/& coding链接:https://coding.net/u/fench
&思路:采用二维数组:第一行用于存储用户输入原始数据,第二行用于存储中间数据(第一行的与G值做差的绝对值),第三行用于保存用户得分。优点:易于实现,结构简单。
&工作过程:杨晓帅是一个认真的,负责任的同学,我对java不太熟悉,他会仔细的给我讲解代码的明细,帮助我理解程序。他的态度认真,和善。
&分工:前期:我负责界面设计 和 代码的检查&&&&&&& 中期:我负责代码的检查,bug检查&&&&&& 后期:我负责App测试&
&&&&&&&&&&&& 杨晓帅负责算法的实现,界面优化&&&&&&&&&&&&杨晓帅负责编码和bug订正&&&&&&&&&&&&&& 杨晓帅负界面的优化,代码调试
App界面设计:
第一版代码:实现具体的功能
package cn.sau.T
import java.util.Aimport java.util.C
public class testGolden {&&&& static int number = 10;&&& public static void main(String[] args) {&&&&&&& double[][] array = new double[10][3];&&&&&&& for(int i = 0 ;i&i++)&&&&&&& {&&&&&&&&&&& for(int j = 0 ;j&2;j++)&&&&&&&&&&&&&&& if(j==0)&&&&&&&&&&&&&&&&&&& array[i][j]=i+10;&&&&&&&&&&&&&&& else&&&&&&&&&&&&&&& {&&&&&&&&&&&&&&&&&&& array[i][2]=0;&&&&&&&&&&&&&&&&&&& array[i][j] = 0;&&&&&&& &&&&&&&&&&&&&&& }&&&&&&& }&&&&&&& //平均值&&&&&&& double average& = 0;&&&&&&& for(int i = 0; i&i++){&&&&&&&&&&& average = average +array[i][0];&&&&&&& }&&&&&&& int x =&&&&&&& average = average /x;&&&&&&& &&&&&&& //G值&&&&&&& double G =average *0.618; &&&&&&& &&&&&&& //相近度&&&&&&& for(int i = 0; i&i++){&&&&&&&&&&& array[i][1] = Math.abs(array[i][0] -average);&&&&&&& }&&&&&&& &&&&&&& //min:最近; max:最远&&&&&&& double min = array[0][1];&&&&&&& double max = array[0][1];&&&&&&& for(int i = 1; i& i++){&&&&&&&&&&& if(min &array[i][1]){&&&&&&&&&&&&&&& min =array[i][1];&&&&&&&&&&& }&&&&&&&&&&& if(max&array[i][1]){&&&&&&&&&&&&&&& max =array[i][1];&&&&&&&&&&& }&&&&&&& }&&&&&&& System.out.println("max:"+max +"\n min:" +min);&&&&&&& //统计得分&&&&&&& for(int i = 0; i&i++){&&&&&&&&&&& if(array[i][1]==min){&&&&&&&&&&&&&&& array[i][2] =&&&&&&&&&&& }&&&&&&&&&&& else if(array[i][1] == max){&&&&&&&&&&&&&&& array[i][2]=-2;&&&&&&&&&&& }&&&&&&& }&&&&&&& &&&&&&& &&&&&&& for(int i = 0 ;i&10;i++)&&&&&&& {&&&&&&&&&&& &&&&&&&&&&&& System.out.print(array[i][2] +"\n");&&& &&&&&&& }&&& }&&&
第二版:移植到android平台
package com.example.m.goldengame10;
import android.app.AlertDimport android.content.DialogIimport android.support.v7.app.AppCompatAimport android.os.Bimport android.util.Limport android.view.Vimport android.widget.Bimport android.widget.EditTimport android.widget.TextV
/*&& 黄金分割小游戏1.0版本&& 实现以下功能:&&&&&& 单机操作&&&&&& 固定用户为10&& && 作者:Finch & xiaoPang&*/
public class MainActivity extends AppCompatActivity {
&&&& int number =10; //总人数&&&& int& count = 1; //局数判断&&& double[][] array = new double[10][3];
&&& TextV&&& EditText user1 ;&&& EditText user2;&&& EditText user3 ;&&& EditText user4;&&& EditText user5;&&& EditText user6 ;&&& EditText user7 ;&&& EditText user8 ;&&& EditText user9 ;&&& EditText user10;&&& Button&&&& Button&
&&& protected void onCreate(Bundle savedInstanceState) {&&&&&&& Log.v("Button","on");&&&&&&& for(int i = 0; i&i++){&&&&&&&&&&& array[i][0]=0;&&&&&&&&&&& array[i][1]=0;&&&&&&&&&&& array[i][2]=0;&&&&&&& }
&&&&&&& super.onCreate(savedInstanceState);&&&&&&& setContentView(R.layout.activity_main);&&&&&&& news =(TextView)findViewById(R.id.news);&&&&&&& user1 = (EditText)findViewById(R.id.user1);&&&&&&& user2 = (EditText)findViewById(R.id.user2);&&&&&&& user3 = (EditText)findViewById(R.id.user3);&&&&&&& user4 = (EditText)findViewById(R.id.user4);&&&&&&& user5 = (EditText)findViewById(R.id.user5);&&&&&&& user6 = (EditText)findViewById(R.id.user6);&&&&&&& user7 = (EditText)findViewById(R.id.user7);&&&&&&& user8 = (EditText)findViewById(R.id.user8);&&&&&&& user9 = (EditText)findViewById(R.id.user9);&&&&&&& user10 = (EditText)findViewById(R.id.user10);&&&&&&& submit =(Button)findViewById(R.id.submit);&&&&&&& clean =(Button)findViewById(R.id.clean);&&&&&&& submit.setOnClickListener(new View.OnClickListener(){&&&&&&&&&&& public void onClick(View v){
&&&&&&&&&&&&&&& news.setText("第"+count+"局得分");&&&&&&&&&&&&&&& array[0][0] =Double.parseDouble( user1.getText().toString());&&&&&&&&&&&&&&& array[1][0] =Double.parseDouble( user2.getText().toString());&&&&&&&&&&&&&&& array[2][0] =Double.parseDouble( user3.getText().toString());&&&&&&&&&&&&&&& array[3][0] =Double.parseDouble( user4.getText().toString());&&&&&&&&&&&&&&& array[4][0] =Double.parseDouble( user5.getText().toString());&&&&&&&&&&&&&&& array[5][0] =Double.parseDouble( user6.getText().toString());&&&&&&&&&&&&&&& array[6][0] =Double.parseDouble( user7.getText().toString());&&&&&&&&&&&&&&& array[7][0] =Double.parseDouble( user8.getText().toString());&&&&&&&&&&&&&&& array[8][0] =Double.parseDouble( user9.getText().toString());&&&&&&&&&&&&&&& array[9][0] =Double.parseDouble( user10.getText().toString());
&&&&&&&&&&&&&&& //平均值&&&&&&&&&&&&&&& double average& = 0;&&&&&&&&&&&&&&& for(int i = 0; i&i++){&&&&&&&&&&&&&&&&&&& average = average +array[i][0];&&&&&&&&&&&&&&& }&&&&&&&&&&&&&&& int x =&&&&&&&&&&&&&&& average = average /x;
&&&&&&&&&&&&&&& //G值&&&&&&&&&&&&&&& double G =average *0.698;
&&&&&&&&&&&&&&& //相近度&&&&&&&&&&&&&&& for(int i = 0; i&i++){&&&&&&&&&&&&&&&&&&& array[i][1] = Math.abs(array[i][0] -G);&&&&&&&&&&&&&&& }
&&&&&&&&&&&&&&& //min:最近; max:最远&&&&&&&&&&&&&&& double min = array[0][1];&&&&&&&&&&&&&&& double max = array[0][1];&&&&&&&&&&&&&&& for(int i = 1; i& i++){&&&&&&&&&&&&&&&&&&& if(min &array[i][1]){&&&&&&&&&&&&&&&&&&&&&&& min =array[i][1];&&&&&&&&&&&&&&&&&&& }&&&&&&&&&&&&&&&&&&& if(max&array[i][1]){&&&&&&&&&&&&&&&&&&&&&&& max =array[i][1];&&&&&&&&&&&&&&&&&&& }&&&&&&&&&&&&&&& }
&&&&&&&&&&&&&&& //统计得分&&&&&&&&&&&&&&& for(int i = 0; i&i++){&&&&&&&&&&&&&&&&&&& if(array[i][1]==min){&&&&&&&&&&&&&&&&&&&&&&& array[i][2] =array[i][2] +&&&&&&&&&&&&&&&&&&& }&&&&&&&&&&&&&&&&&&& else if(array[i][1] == max){&&&&&&&&&&&&&&&&&&&&&&& array[i][2]=array[i][2]-2;&&&&&&&&&&&&&&&&&&& }&&&&&&&&&&&&&&& }
&&&&&&&&&&&&&&& user1.setText(String.valueOf(array[0][2]));&&&&&&&&&&&&&&& user2.setText(String.valueOf(array[1][2]));&&&&&&&&&&&&&&& user3.setText(String.valueOf(array[2][2]));&&&&&&&&&&&&&&& user4.setText(String.valueOf(array[3][2]));&&&&&&&&&&&&&&& user5.setText(String.valueOf(array[4][2]));&&&&&&&&&&&&&&& user6.setText(String.valueOf(array[5][2]));&&&&&&&&&&&&&&& user7.setText(String.valueOf(array[6][2]));&&&&&&&&&&&&&&& user8.setText(String.valueOf(array[7][2]));&&&&&&&&&&&&&&& user9.setText(String.valueOf(array[8][2]));&&&&&&&&&&&&&&& user10.setText(String.valueOf(array[9][2]));&&&&&&&&&&&&&&& count++; //每提交一次,局数加一&&&&&&&&&&& }&&&&&&& });
&&&&&&& clean.setOnClickListener(new View.OnClickListener(){&&&&&&&&&&& public void onClick(View v){
&&&&&&&&&&&&&&& //初始化&&&&&&&&&&&&&& for(int i= 0;i&i++){&&&&&&&&&&&&&&&&&& array[i][0]=0;&&&&&&&&&&&&&&&&&& array[i][1]=0;&&&&&&&&&&&&&&&&&& news.setText("开始第"+count+"局,请输入数值");&&&&&&&&&&&&&&&&&& news.setTextSize(30);&&&&&&&&&&&&&& }&&&&&&&&&&&&&&& //自动清空数据&&&&&&&&&&&&&&& user1.getText().clear();&&&&&&&&&&&&&&& user2.getText().clear();&&&&&&&&&&&&&&& user2.getText().clear();&&&&&&&&&&&&&&& user3.getText().clear();&&&&&&&&&&&&&&& user4.getText().clear();&&&&&&&&&&&&&&& user5.getText().clear();&&&&&&&&&&&&&&& user6.getText().clear();&&&&&&&&&&&&&&& user7.getText().clear();&&&&&&&&&&&&&&& user8.getText().clear();&&&&&&&&&&&&&&& user9.getText().clear();&&&&&&&&&&&&&&& user10.getText().clear();&&&&&&&&&&& }&&&&&&& });&&& }}
App界面设计:初始界面
第一局输入数据&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 第一局得分&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &&&&& 第二局开始&
&&&&&&&&&&& &&&&&&&&&&&&&&&
代码测试图集:
App测试其他图集:
android studio 项目 代码:https://coding.net/u/Clyln/p/softwarehomework---android-APK/git
App下载地址A(欢迎试玩):https://coding.net/u/Clyln/p/softwarehomework---android-APK/git/tree/master
阅读(...) 评论()

我要回帖

更多关于 初学电工基础知识 的文章

 

随机推荐