小程序开发心得体会(小程序开发收获)

小程序开发 1715
本篇文章给大家谈谈小程序开发心得体会,以及小程序开发收获对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、《移动应用开发技术》的读后感?

本篇文章给大家谈谈小程序开发心得体会,以及小程序开发收获对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

《移动应用开发技术》的读后感?

首先,简要叙述原文内容,对所读文章做一个简要的概述。写作部分主要是为写自己的感想做一个前期铺垫。这部分写作的重点一定要突出“简”。接着,表明自己的感想,即自己的观点。围绕观点写出能支撑观点的事实,展开联想。一篇简单的读后感就完成了。

首要的一点是“读”。“读”是感的基础,“感”是由“读”而生。只有认真的读书,弄懂难点疑点,理清文章的思路,透彻的掌握文章的内容和要点,深刻地领会原文精神所在,结合历史的经验、当前的形势和个人的实际,才能真有所“感”。所以,要写读后感,首先要弄懂原作。

其次要认真思考。读后感的主体是“感”。要写实感,还要在读懂原作的基础上作出自己的分析和评价。分析和评价是有所“感”的酝酿、集中和演化的过程,有了这个 分析和评价,才有可能使“感”紧扣原作的主要思想和主要观点,避免脱离原作,东拉西扯,离开中心太远。

所以,写读后感就必须要边读边思考,结合历史的经验,当前的形势和自己的实际展开联想,从书中的人和事联系到自己和自己所见的人和事,那些与书中相近、相似,那些与书中相反、相对,自己赞成书中的什么,反对些什么,从而把自己的感想激发出来,并把它条理化,系统化,理论化。总之,想的深入,才能写的深刻感人。

第三,要抓住重点。读完一篇(部)作品,会有很多感想和体会,但不能把他们都写出来。读后感是写感受最深的一点,不是书评,不能全面地介绍和评价作品

!高分跪求帮忙写一个简单小程序的JAVA课程设计报告(内详!!)

连连看java源代码

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

public class lianliankan implements ActionListener

{

JFrame mainFrame; //主面板

Container thisContainer;

JPanel centerPanel,southPanel,northPanel; //子面板

JButton diamondsButton[][] = new JButton[6][5];//游戏按钮数组

JButton exitButton,resetButton,newlyButton; //退出,重列,重新开始按钮

JLabel fractionLable=new JLabel("0"); //分数标签

JButton firstButton,secondButton; //分别记录两次被选中的按钮

int grid[][] = new int[8][7];//储存游戏按钮位置

static boolean pressInformation=false; //判断是否有按钮被选中

int x0=0,y0=0,x=0,y=0,fristMsg=0,secondMsg=0,validateLV; //游戏按钮的位置坐标

int i,j,k,n;//消除方法控制

public void init(){

mainFrame=new JFrame("JKJ连连看");

thisContainer = mainFrame.getContentPane();

thisContainer.setLayout(new BorderLayout());

centerPanel=new JPanel();

southPanel=new JPanel();

northPanel=new JPanel();

thisContainer.add(centerPanel,"Center");

thisContainer.add(southPanel,"South");

thisContainer.add(northPanel,"North");

centerPanel.setLayout(new GridLayout(6,5));

for(int cols = 0;cols 6;cols++){

for(int rows = 0;rows 5;rows++ ){

diamondsButton[cols][rows]=new JButton(String.valueOf(grid[cols+1][rows+1]));

diamondsButton[cols][rows].addActionListener(this);

centerPanel.add(diamondsButton[cols][rows]);

}

}

exitButton=new JButton("退出");

exitButton.addActionListener(this);

resetButton=new JButton("重列");

resetButton.addActionListener(this);

newlyButton=new JButton("再来一局");

newlyButton.addActionListener(this);

southPanel.add(exitButton);

southPanel.add(resetButton);

southPanel.add(newlyButton);

fractionLable.setText(String.valueOf(Integer.parseInt(fractionLable.getText())));

northPanel.add(fractionLable);

mainFrame.setBounds(280,100,500,450);

mainFrame.setVisible(true);

}

public void randomBuild() {

int randoms,cols,rows;

for(int twins=1;twins=15;twins++) {

randoms=(int)(Math.random()*25+1);

for(int alike=1;alike=2;alike++) {

cols=(int)(Math.random()*6+1);

rows=(int)(Math.random()*5+1);

while(grid[cols][rows]!=0) {

cols=(int)(Math.random()*6+1);

rows=(int)(Math.random()*5+1);

}

this.grid[cols][rows]=randoms;

}

}

}

public void fraction(){

fractionLable.setText(String.valueOf(Integer.parseInt(fractionLable.getText())+100));

}

public void reload() {

int save[] = new int[30];

int n=0,cols,rows;

int grid[][]= new int[8][7];

for(int i=0;i=6;i++) {

for(int j=0;j=5;j++) {

if(this.grid[i][j]!=0) {

save[n]=this.grid[i][j];

n++;

}

}

}

n=n-1;

this.grid=grid;

while(n=0) {

cols=(int)(Math.random()*6+1);

rows=(int)(Math.random()*5+1);

while(grid[cols][rows]!=0) {

cols=(int)(Math.random()*6+1);

rows=(int)(Math.random()*5+1);

}

this.grid[cols][rows]=save[n];

n--;

}

mainFrame.setVisible(false);

pressInformation=false; //这里一定要将按钮点击信息归为初始

init();

for(int i = 0;i 6;i++){

for(int j = 0;j 5;j++ ){

if(grid[i+1][j+1]==0)

diamondsButton[i][j].setVisible(false);

}

}

}

public void estimateEven(int placeX,int placeY,JButton bz) {

if(pressInformation==false) {

x=placeX;

y=placeY;

secondMsg=grid[x][y];

secondButton=bz;

pressInformation=true;

}

else {

x0=x;

y0=y;

fristMsg=secondMsg;

firstButton=secondButton;

x=placeX;

y=placeY;

secondMsg=grid[x][y];

secondButton=bz;

if(fristMsg==secondMsg secondButton!=firstButton){

xiao();

}

}

}

public void xiao() { //相同的情况下能不能消去。仔细分析,不一条条注释

if((x0==x (y0==y+1||y0==y-1)) || ((x0==x+1||x0==x-1)(y0==y))){ //判断是否相邻

remove();

}

else{

for (j=0;j7;j++ ) {

if (grid[x0][j]==0){ //判断第一个按钮同行哪个按钮为空

if (yj) { //如果第二个按钮的Y坐标大于空按钮的Y坐标说明第一按钮在第二按钮左边

for (i=y-1;i=j;i-- ){ //判断第二按钮左侧直到第一按钮中间有没有按钮

if (grid[x][i]!=0) {

k=0;

break;

}

else{ k=1; } //K=1说明通过了第一次验证

}

if (k==1) {

linePassOne();

}

}

if (yj){ //如果第二个按钮的Y坐标小于空按钮的Y坐标说明第一按钮在第二按钮右边

for (i=y+1;i=j ;i++ ){ //判断第二按钮左侧直到第一按钮中间有没有按钮

if (grid[x][i]!=0){

k=0;

break;

}

else { k=1; }

}

if (k==1){

linePassOne();

}

}

if (y==j ) {

linePassOne();

}

}

if (k==2) {

if (x0==x) {

remove();

}

if (x0x) {

for (n=x0;n=x-1;n++ ) {

if (grid[n][j]!=0) {

k=0;

break;

}

if(grid[n][j]==0 n==x-1) {

remove();

}

}

}

if (x0x) {

for (n=x0;n=x+1 ;n-- ) {

if (grid[n][j]!=0) {

k=0;

break;

}

if(grid[n][j]==0 n==x+1) {

remove();

}

}

}

}

}

for (i=0;i8;i++ ) { //列

if (grid[i][y0]==0) {

if (xi) {

for (j=x-1;j=i ;j-- ) {

if (grid[j][y]!=0) {

k=0;

break;

}

else { k=1; }

}

if (k==1) {

rowPassOne();

}

}

if (xi) {

for (j=x+1;j=i;j++ ) {

if (grid[j][y]!=0) {

k=0;

break;

}

else { k=1; }

}

if (k==1) {

rowPassOne();

}

}

if (x==i) {

rowPassOne();

}

}

if (k==2){

if (y0==y) {

remove();

}

if (y0y) {

for (n=y0;n=y-1 ;n++ ) {

if (grid[i][n]!=0) {

k=0;

break;

}

if(grid[i][n]==0 n==y-1) {

remove();

}

}

}

if (y0y) {

for (n=y0;n=y+1 ;n--) {

if (grid[i][n]!=0) {

k=0;

break;

}

if(grid[i][n]==0 n==y+1) {

remove();

}

}

}

}

}

}

}

public void linePassOne(){

if (y0j){ //第一按钮同行空按钮在左边

for (i=y0-1;i=j ;i-- ){ //判断第一按钮同左侧空按钮之间有没按钮

if (grid[x0][i]!=0) {

k=0;

break;

}

else { k=2; } //K=2说明通过了第二次验证

}

}

if (y0j){ //第一按钮同行空按钮在与第二按钮之间

for (i=y0+1;i=j ;i++){

if (grid[x0][i]!=0) {

k=0;

break;

}

else{ k=2; }

}

}

}

public void rowPassOne(){

if (x0i) {

for (j=x0-1;j=i ;j-- ) {

if (grid[j][y0]!=0) {

k=0;

break;

}

else { k=2; }

}

}

if (x0i) {

for (j=x0+1;j=i ;j++ ) {

if (grid[j][y0]!=0) {

k=0;

break;

}

else { k=2; }

}

}

}

public void remove(){

firstButton.setVisible(false);

secondButton.setVisible(false);

fraction();

pressInformation=false;

k=0;

grid[x0][y0]=0;

grid[x][y]=0;

}

public void actionPerformed(ActionEvent e) {

if(e.getSource()==newlyButton){

int grid[][] = new int[8][7];

this.grid = grid;

randomBuild();

mainFrame.setVisible(false);

pressInformation=false;

init();

}

if(e.getSource()==exitButton)

System.exit(0);

if(e.getSource()==resetButton)

reload();

for(int cols = 0;cols 6;cols++){

for(int rows = 0;rows 5;rows++ ){

if(e.getSource()==diamondsButton[cols][rows])

estimateEven(cols+1,rows+1,diamondsButton[cols][rows]);

}

}

}

public static void main(String[] args) {

lianliankan llk = new lianliankan();

llk.randomBuild();

llk.init();

}

}

//old 998 lines

//new 318 lines

参考资料:

微信小程序蓝牙入坑总结

   微信小程序的蓝牙流程按着官网的说明写就可以了,具体参看文档: 小程序开发文档

坑列表:

    1.成对调用需要注意, wx.openBluetoothAdapter 与 wx.closeBluetoothAdapter

                                        wx.startBluetoothDevicesDiscovery 与 wx.stopBluetoothDevicesDiscovery

     2.安卓与IOS的区别:安卓可以根据蓝牙标识直接连接,IOS则必须先搜索才能进行连接;

     3.权限问题:IOS的系统不能仅仅打开系统的蓝牙权限,因为IOS新版本针对蓝牙做了应用及的限制,因此需要给微信蓝牙权限才可以使用;对于安卓系统,部分手机必须打开定位权限才能搜索到蓝牙设备

     4.创建连接API( wx.createBLEConnection )调用失败:

            超时报错:{"errCode":10012,"errMsg":"createBLEConnection:fail:operate time out"}

            连接超时:{"errCode":10003,"errMsg":"createBLEConnection:fail connect time out."}

            连接失败:{"errCode":10003,"errMsg":"createBLEConnection:fail:connection fail status:133"}

           基本都是安卓手机出现以上问题,针对这些报错,需编写重试连接操作,很大概率能解决此问题;

     5.搜索不到任何设备,安卓手机可能是定位权限的问题造成,苹果手机基本就是设备出问题了

     6.网络请求与蓝牙请求尽量分开,因为蓝牙连接会受到影响,造成一些异常信息;

     7.所有API调用针对fail函数最好都做一次重试,因为再次重试可能就会成功;、

     8.API调用之间最好有一定毫秒数的间隔,目前怀疑api部分机型会存在延时;

总之微信的蓝牙连接就那些已知的接口,调用时多考虑异常的情况下的重试,简单总结下,以便查阅。

           

    

小程序开发心得体会的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于小程序开发收获、小程序开发心得体会的信息别忘了在本站进行查找喔。

扫码二维码