首先简述一下三阶魔方,魔方可以通过打乱公式进行状态的转变,

(F,B,U,D,L,R)六个字母分别表示:前面顺时针旋转90°、背面顺时针旋转90°、上面顺时针旋转90°、下面顺时针旋转90°、左面顺时针旋转90°、右面顺时针旋转90°。

(F',B',U',D',L',R')六个字母分别表示:前面逆时针旋转90°、背面逆时针旋转90°、上面逆时针旋转90°、下面逆时针旋转90°、左面逆时针旋转90°、右面逆时针旋转90°。

(F2,B2,U2,D2,L2,R2)六个字母分别表示:前面顺时针旋转180°、背面顺时针旋转180°、上面顺时针旋转180°、下面顺时针旋转180°、左面顺时针旋转180°、右面顺时针旋转180°。

在做这项功能之初我使用Python进行编码测试

首先定义了六个列表存储魔方状态,前9位我称之为基态、后九位我称之为缓冲位。由于魔方变化多样在每一次旋转变化时影响的是其本身和与之相邻的四个面。对魔方每个面上的每个块进行编码,从上至下、从左至右编码0-8(基态)、9-17(缓冲位)。

bai =   ["白","白","白","白","白","白","白","白","白","白","白","白","白","白","白","白","白","白"]
huang = ["黄","黄","黄","黄","黄","黄","黄","黄","黄","黄","黄","黄","黄","黄","黄","黄","黄","黄"]
lan =   ["蓝","蓝","蓝","蓝","蓝","蓝","蓝","蓝","蓝","蓝","蓝","蓝","蓝","蓝","蓝","蓝","蓝","蓝"]
lv =    ["绿","绿","绿","绿","绿","绿","绿","绿","绿","绿","绿","绿","绿","绿","绿","绿","绿","绿"]
hong =  ["红","红","红","红","红","红","红","红","红","红","红","红","红","红","红","红","红","红"]
cheng = ["橙","橙","橙","橙","橙","橙","橙","橙","橙","橙","橙","橙","橙","橙","橙","橙","橙","橙"]

如下代码为生成打乱公式,内容较为简单就不做过多赘述。

dlstr = ""
dllist = []
dlzb = ["L","R","U","D","F","B","L'","R'","U'","D'","F'","B'","L2","R2","U2","D2","F2","B2"]
for i in range(21):j = random.randint(0,17)dlstr = dlstr + dlzb[j] + " "dllist.append(dlzb[j])
print(dlstr)

当白面朝上,绿面朝自己时我们以R打乱为例当R转动时红色面会顺时针转动90°所以红色面除中心块外都会变换位置白色面的2、5、8位置的块会被绿色面2、5、8取代此时我采用缓冲位实现替代,其他四个方向均为此种方式替代。最后应将缓冲位归位即让缓冲位与基态相同再进行下一次旋转。

def turnR():bai[2] = lv[11]bai[5] = lv[14]bai[8] = lv[17]lan[0] = bai[17]lan[3] = bai[14]lan[6] = bai[11]huang[2] = lan[15]huang[5] = lan[12]huang[8] = lan[9]lv[2] = huang[11]lv[5] = huang[14]lv[8] = huang[17]hong[0] = hong[15]hong[1] = hong[12]hong[2] = hong[9]hong[3] = hong[16]hong[5] = hong[10]hong[6] = hong[17]hong[7] = hong[14]hong[8] = hong[11]hcgw()
def hcgw():for i in range(9,18):bai[i] = bai[i - 9]lv[i] = lv[i - 9]huang[i] = huang[i - 9]lan[i] = lan[i - 9]cheng[i] = cheng[i - 9]hong[i] = hong[i - 9]

至此打乱三阶魔方的逻辑思路已经清晰完整代码如下:

import random
def turnL():lv[0] = bai[9]lv[3] = bai[12]lv[6] = bai[15]bai[0] = lan[17]bai[3] = lan[14]bai[6] = lan[11]lan[2] = huang[15]lan[5] = huang[12]lan[8] = huang[9]huang[0] = lv[9]huang[3] = lv[12]huang[6] = lv[15]cheng[0] = cheng[15]cheng[1] = cheng[12]cheng[2] = cheng[9]cheng[3] = cheng[16]cheng[5] = cheng[10]cheng[6] = cheng[17]cheng[7] = cheng[14]cheng[8] = cheng[11]hcgw()
def turnR():bai[2] = lv[11]bai[5] = lv[14]bai[8] = lv[17]lan[0] = bai[17]lan[3] = bai[14]lan[6] = bai[11]huang[2] = lan[15]huang[5] = lan[12]huang[8] = lan[9]lv[2] = huang[11]lv[5] = huang[14]lv[8] = huang[17]hong[0] = hong[15]hong[1] = hong[12]hong[2] = hong[9]hong[3] = hong[16]hong[5] = hong[10]hong[6] = hong[17]hong[7] = hong[14]hong[8] = hong[11]hcgw()
def turnU():lv[0] = hong[9]lv[1] = hong[10]lv[2] = hong[11]cheng[0] = lv[9]cheng[1] = lv[10]cheng[2] = lv[11]lan[0] = cheng[9]lan[1] = cheng[10]lan[2] = cheng[11]hong[0] = lan[9]hong[1] = lan[10]hong[2] = lan[11]bai[0] = bai[15]bai[1] = bai[12]bai[2] = bai[9]bai[3] = bai[16]bai[5] = bai[10]bai[6] = bai[17]bai[7] = bai[14]bai[8] = bai[11]hcgw()
def turnD():lv[6] = cheng[15]lv[7] = cheng[16]lv[8] = cheng[17]cheng[6] = lan[15]cheng[7] = lan[16]cheng[8] = lan[17]lan[6] = hong[15]lan[7] = hong[16]lan[8] = hong[17]hong[6] = lv[15]hong[7] = lv[16]hong[8] = lv[17]huang[0] = huang[15]huang[1] = huang[12]huang[2] = huang[9]huang[3] = huang[16]huang[5] = huang[10]huang[6] = huang[17]huang[7] = huang[14]huang[8] = huang[11]hcgw()
def turnF():bai[6] = cheng[17]bai[7] = cheng[14]bai[8] = cheng[11]cheng[2] = huang[9]cheng[5] = huang[10]cheng[8] = huang[11]huang[0] = hong[15]huang[1] = hong[12]huang[2] = hong[9]hong[0] = bai[15]hong[3] = bai[16]hong[6] = bai[17]lv[0] = lv[15]lv[1] = lv[12]lv[2] = lv[9]lv[3] = lv[16]lv[5] = lv[10]lv[6] = lv[17]lv[7] = lv[14]lv[8] = lv[11]hcgw()
def turnB():bai[0] = hong[11]bai[1] = hong[14]bai[2] = hong[17]hong[2] = huang[17]hong[5] = huang[16]hong[8] = huang[15]huang[6] = cheng[9]huang[7] = cheng[12]huang[8] = cheng[15]cheng[0] = bai[11]cheng[3] = bai[10]cheng[6] = bai[9]lan[0] = lan[15]lan[1] = lan[12]lan[2] = lan[9]lan[3] = lan[16]lan[5] = lan[10]lan[6] = lan[17]lan[7] = lan[14]lan[8] = lan[11]hcgw()
def hcgw():for i in range(9,18):bai[i] = bai[i - 9]lv[i] = lv[i - 9]huang[i] = huang[i - 9]lan[i] = lan[i - 9]cheng[i] = cheng[i - 9]hong[i] = hong[i - 9]# 后九位缓冲
bai =   ["白","白","白","白","白","白","白","白","白","白","白","白","白","白","白","白","白","白"]
huang = ["黄","黄","黄","黄","黄","黄","黄","黄","黄","黄","黄","黄","黄","黄","黄","黄","黄","黄"]
lan =   ["蓝","蓝","蓝","蓝","蓝","蓝","蓝","蓝","蓝","蓝","蓝","蓝","蓝","蓝","蓝","蓝","蓝","蓝"]
lv =    ["绿","绿","绿","绿","绿","绿","绿","绿","绿","绿","绿","绿","绿","绿","绿","绿","绿","绿"]
hong =  ["红","红","红","红","红","红","红","红","红","红","红","红","红","红","红","红","红","红"]
cheng = ["橙","橙","橙","橙","橙","橙","橙","橙","橙","橙","橙","橙","橙","橙","橙","橙","橙","橙"]
dlstr = ""
dllist = []
dlzb = ["L","R","U","D","F","B","L'","R'","U'","D'","F'","B'","L2","R2","U2","D2","F2","B2"]
for i in range(21):j = random.randint(0,17)dlstr = dlstr + dlzb[j] + " "dllist.append(dlzb[j])
print(dlstr)
for i in range(21):if (dllist[i] == "L"):turnL()elif(dllist[i] == "R"):turnR()elif(dllist[i] == "U"):turnU()elif(dllist[i] == "D"):turnD()elif(dllist[i] == "F"):turnF()elif(dllist[i] == "B"):turnB()elif(dllist[i] == "L'"):for j in range(3):turnL()elif(dllist[i] == "R'"):for j in range(3):turnR()elif(dllist[i] == "U'"):for j in range(3):turnU()elif(dllist[i] == "D'"):for j in range(3):turnD()elif(dllist[i] == "F'"):for j in range(3):turnF()elif(dllist[i] == "B'"):for j in range(3):turnB()elif(dllist[i] == "L2"):for j in range(2):turnL()elif(dllist[i] == "R2"):for j in range(2):turnR()elif(dllist[i] == "U2"):for j in range(2):turnU()elif(dllist[i] == "D2"):for j in range(2):turnD()elif(dllist[i] == "F2"):for j in range(2):turnF()elif(dllist[i] == "B2"):for j in range(2):turnB()
print("白:   ", bai)
print("绿:   ", lv)
print("黄:   ", huang)
print("蓝:   ", lan)
print("橙:   ", cheng)
print("红:   ", hong)

笔者能力有限,当时代码较为混乱。

运行结果:

此时每个列表前九位为各个面的转态。

接下来Android中实现!

转换为Java代码!

public class CubeUpSetUtil {
//    前九位标准位后九位缓冲位String [] bai = {"白","白","白","白","白","白","白","白","白","白","白","白","白","白","白","白","白","白"};String [] huang = {"黄","黄","黄","黄","黄","黄","黄","黄","黄","黄","黄","黄","黄","黄","黄","黄","黄","黄"};String [] lan =   {"蓝","蓝","蓝","蓝","蓝","蓝","蓝","蓝","蓝","蓝","蓝","蓝","蓝","蓝","蓝","蓝","蓝","蓝"};String [] lv =    {"绿","绿","绿","绿","绿","绿","绿","绿","绿","绿","绿","绿","绿","绿","绿","绿","绿","绿"};String [] hong =  {"红","红","红","红","红","红","红","红","红","红","红","红","红","红","红","红","红","红"};String [] cheng = {"橙","橙","橙","橙","橙","橙","橙","橙","橙","橙","橙","橙","橙","橙","橙","橙","橙","橙"};//    缓冲归位public void hcgw(){for(int i = 9; i < 18; i++){bai[i] = bai[i - 9];lv[i] = lv[i - 9];huang[i] = huang[i - 9];lan[i] = lan[i - 9];cheng[i] = cheng[i - 9];hong[i] = hong[i - 9];}}//    顺时针左转public void turnL(){lv[0] = bai[9];lv[3] = bai[12];lv[6] = bai[15];bai[0] = lan[17];bai[3] = lan[14];bai[6] = lan[11];lan[2] = huang[15];lan[5] = huang[12];lan[8] = huang[9];huang[0] = lv[9];huang[3] = lv[12];huang[6] = lv[15];cheng[0] = cheng[15];cheng[1] = cheng[12];cheng[2] = cheng[9];cheng[3] = cheng[16];cheng[5] = cheng[10];cheng[6] = cheng[17];cheng[7] = cheng[14];cheng[8] = cheng[11];hcgw();}//    顺时针右转public void turnR(){bai[2] = lv[11];bai[5] = lv[14];bai[8] = lv[17];lan[0] = bai[17];lan[3] = bai[14];lan[6] = bai[11];huang[2] = lan[15];huang[5] = lan[12];huang[8] = lan[9];lv[2] = huang[11];lv[5] = huang[14];lv[8] = huang[17];hong[0] = hong[15];hong[1] = hong[12];hong[2] = hong[9];hong[3] = hong[16];hong[5] = hong[10];hong[6] = hong[17];hong[7] = hong[14];hong[8] = hong[11];hcgw();}//    顺时针上转public void turnU(){lv[0] = hong[9];lv[1] = hong[10];lv[2] = hong[11];cheng[0] = lv[9];cheng[1] = lv[10];cheng[2] = lv[11];lan[0] = cheng[9];lan[1] = cheng[10];lan[2] = cheng[11];hong[0] = lan[9];hong[1] = lan[10];hong[2] = lan[11];bai[0] = bai[15];bai[1] = bai[12];bai[2] = bai[9];bai[3] = bai[16];bai[5] = bai[10];bai[6] = bai[17];bai[7] = bai[14];bai[8] = bai[11];hcgw();}//    顺时针下转public void turnD(){lv[6] = cheng[15];lv[7] = cheng[16];lv[8] = cheng[17];cheng[6] = lan[15];cheng[7] = lan[16];cheng[8] = lan[17];lan[6] = hong[15];lan[7] = hong[16];lan[8] = hong[17];hong[6] = lv[15];hong[7] = lv[16];hong[8] = lv[17];huang[0] = huang[15];huang[1] = huang[12];huang[2] = huang[9];huang[3] = huang[16];huang[5] = huang[10];huang[6] = huang[17];huang[7] = huang[14];huang[8] = huang[11];hcgw();}//    顺时针前转public void turnF(){bai[6] = cheng[17];bai[7] = cheng[14];bai[8] = cheng[11];cheng[2] = huang[9];cheng[5] = huang[10];cheng[8] = huang[11];huang[0] = hong[15];huang[1] = hong[12];huang[2] = hong[9];hong[0] = bai[15];hong[3] = bai[16];hong[6] = bai[17];lv[0] = lv[15];lv[1] = lv[12];lv[2] = lv[9];lv[3] = lv[16];lv[5] = lv[10];lv[6] = lv[17];lv[7] = lv[14];lv[8] = lv[11];hcgw();}
//    顺时针后转public void turnB(){bai[0] = hong[11];bai[1] = hong[14];bai[2] = hong[17];hong[2] = huang[17];hong[5] = huang[16];hong[8] = huang[15];huang[6] = cheng[9];huang[7] = cheng[12];huang[8] = cheng[15];cheng[0] = bai[11];cheng[3] = bai[10];cheng[6] = bai[9];lan[0] = lan[15];lan[1] = lan[12];lan[2] = lan[9];lan[3] = lan[16];lan[5] = lan[10];lan[6] = lan[17];lan[7] = lan[14];lan[8] = lan[11];hcgw();}public List<String[]> getUpSet(String [] dllist) {List<String[]> list = new ArrayList<String[]>();for (int i = 0; i < dllist.length; i++) {if (dllist[i] == "L") {turnL();} else if (dllist[i] == "R") {turnR();} else if (dllist[i] == "U") {turnU();} else if (dllist[i] == "D") {turnD();} else if (dllist[i] == "F") {turnF();} else if (dllist[i] == "B") {turnB();} else if (dllist[i] == "L'") {for (int j = 0; j < 3; j++) {turnL();}} else if (dllist[i] == "R'") {for (int j = 0; j < 3; j++) {turnR();}} else if (dllist[i] == "U'") {for (int j = 0; j < 3; j++) {turnU();}} else if (dllist[i] == "D'") {for (int j = 0; j < 3; j++) {turnD();}} else if (dllist[i] == "F'") {for (int j = 0; j < 3; j++) {turnF();}} else if (dllist[i] == "B'") {for (int j = 0; j < 3; j++) {turnB();}} else if (dllist[i] == "L2") {for (int j = 0; j < 2; j++) {turnL();}} else if (dllist[i] == "R2") {for (int j = 0; j < 2; j++) {turnR();}} else if (dllist[i] == "U2") {for (int j = 0; j < 2; j++) {turnU();}} else if (dllist[i] == "D2") {for (int j = 0; j < 2; j++) {turnD();}} else if (dllist[i] == "F2") {for (int j = 0; j < 2; j++) {turnF();}} else if (dllist[i] == "B2") {for (int j = 0; j < 2; j++) {turnB();}}}list.add(bai);list.add(huang);list.add(lan);list.add(lv);list.add(hong);list.add(cheng);return list;}
}

获取打乱后的转态并为其上色

public void setDlView(List<String[]> list){bai1.setBackgroundColor(android.graphics.Color.parseColor(ColorChange(list.get(0)[0]).toString()));bai2.setBackgroundColor(android.graphics.Color.parseColor(ColorChange(list.get(0)[1]).toString()));bai3.setBackgroundColor(android.graphics.Color.parseColor(ColorChange(list.get(0)[2]).toString()));bai4.setBackgroundColor(android.graphics.Color.parseColor(ColorChange(list.get(0)[3]).toString()));bai5.setBackgroundColor(android.graphics.Color.parseColor(ColorChange(list.get(0)[4]).toString()));bai6.setBackgroundColor(android.graphics.Color.parseColor(ColorChange(list.get(0)[5]).toString()));bai7.setBackgroundColor(android.graphics.Color.parseColor(ColorChange(list.get(0)[6]).toString()));bai8.setBackgroundColor(android.graphics.Color.parseColor(ColorChange(list.get(0)[7]).toString()));bai9.setBackgroundColor(android.graphics.Color.parseColor(ColorChange(list.get(0)[8]).toString()));
//huang1.setBackgroundColor(android.graphics.Color.parseColor(ColorChange(list.get(1)[0])));huang2.setBackgroundColor(android.graphics.Color.parseColor(ColorChange(list.get(1)[1])));huang3.setBackgroundColor(android.graphics.Color.parseColor(ColorChange(list.get(1)[2])));huang4.setBackgroundColor(android.graphics.Color.parseColor(ColorChange(list.get(1)[3])));huang5.setBackgroundColor(android.graphics.Color.parseColor(ColorChange(list.get(1)[4])));huang6.setBackgroundColor(android.graphics.Color.parseColor(ColorChange(list.get(1)[5])));huang7.setBackgroundColor(android.graphics.Color.parseColor(ColorChange(list.get(1)[6])));huang8.setBackgroundColor(android.graphics.Color.parseColor(ColorChange(list.get(1)[7])));huang9.setBackgroundColor(android.graphics.Color.parseColor(ColorChange(list.get(1)[8])));
//lan1.setBackgroundColor(android.graphics.Color.parseColor(ColorChange(list.get(2)[0])));lan2.setBackgroundColor(android.graphics.Color.parseColor(ColorChange(list.get(2)[1])));lan3.setBackgroundColor(android.graphics.Color.parseColor(ColorChange(list.get(2)[2])));lan4.setBackgroundColor(android.graphics.Color.parseColor(ColorChange(list.get(2)[3])));lan5.setBackgroundColor(android.graphics.Color.parseColor(ColorChange(list.get(2)[4])));lan6.setBackgroundColor(android.graphics.Color.parseColor(ColorChange(list.get(2)[5])));lan7.setBackgroundColor(android.graphics.Color.parseColor(ColorChange(list.get(2)[6])));lan8.setBackgroundColor(android.graphics.Color.parseColor(ColorChange(list.get(2)[7])));lan9.setBackgroundColor(android.graphics.Color.parseColor(ColorChange(list.get(2)[8])));
//lv1.setBackgroundColor(android.graphics.Color.parseColor(ColorChange(list.get(3)[0])));lv2.setBackgroundColor(android.graphics.Color.parseColor(ColorChange(list.get(3)[1])));lv3.setBackgroundColor(android.graphics.Color.parseColor(ColorChange(list.get(3)[2])));lv4.setBackgroundColor(android.graphics.Color.parseColor(ColorChange(list.get(3)[3])));lv5.setBackgroundColor(android.graphics.Color.parseColor(ColorChange(list.get(3)[4])));lv6.setBackgroundColor(android.graphics.Color.parseColor(ColorChange(list.get(3)[5])));lv7.setBackgroundColor(android.graphics.Color.parseColor(ColorChange(list.get(3)[6])));lv8.setBackgroundColor(android.graphics.Color.parseColor(ColorChange(list.get(3)[7])));lv9.setBackgroundColor(android.graphics.Color.parseColor(ColorChange(list.get(3)[8])));
//hong1.setBackgroundColor(android.graphics.Color.parseColor(ColorChange(list.get(4)[0])));hong2.setBackgroundColor(android.graphics.Color.parseColor(ColorChange(list.get(4)[1])));hong3.setBackgroundColor(android.graphics.Color.parseColor(ColorChange(list.get(4)[2])));hong4.setBackgroundColor(android.graphics.Color.parseColor(ColorChange(list.get(4)[3])));hong5.setBackgroundColor(android.graphics.Color.parseColor(ColorChange(list.get(4)[4])));hong6.setBackgroundColor(android.graphics.Color.parseColor(ColorChange(list.get(4)[5])));hong7.setBackgroundColor(android.graphics.Color.parseColor(ColorChange(list.get(4)[6])));hong8.setBackgroundColor(android.graphics.Color.parseColor(ColorChange(list.get(4)[7])));hong9.setBackgroundColor(android.graphics.Color.parseColor(ColorChange(list.get(4)[8])));
//cheng1.setBackgroundColor(android.graphics.Color.parseColor(ColorChange(list.get(5)[0])));cheng2.setBackgroundColor(android.graphics.Color.parseColor(ColorChange(list.get(5)[1])));cheng3.setBackgroundColor(android.graphics.Color.parseColor(ColorChange(list.get(5)[2])));cheng4.setBackgroundColor(android.graphics.Color.parseColor(ColorChange(list.get(5)[3])));cheng5.setBackgroundColor(android.graphics.Color.parseColor(ColorChange(list.get(5)[4])));cheng6.setBackgroundColor(android.graphics.Color.parseColor(ColorChange(list.get(5)[5])));cheng7.setBackgroundColor(android.graphics.Color.parseColor(ColorChange(list.get(5)[6])));cheng8.setBackgroundColor(android.graphics.Color.parseColor(ColorChange(list.get(5)[7])));cheng9.setBackgroundColor(android.graphics.Color.parseColor(ColorChange(list.get(5)[8])));}public String ColorChange(String color){if(color.equals("白")){return "#ffffff";}else if(color.equals("黄")){return "#ffff00";}else if(color.equals("蓝")){return "#3333ff";}else if(color.equals("绿")){return "#33cc33";}else if(color.equals("橙")){return "#ff9900";}else if(color.equals("红")){return "#ff0000";}else {return "#ffffff";}}

好了成品图

 

嘿嘿嘿完成个人记录一下!

附上一组练习视频。

手残老年人终于avg14!!!

魔方玩家的执念采用Python、Java、Android实现的三阶魔方打乱功能相关推荐

  1. 三阶魔方还原步骤图_(六)最简单的三阶魔方入门教程——顶面还原

    本系列教程适合刚刚接触魔方,又比较有好奇心,是为渴望学会还原魔方,又不想死记公式的人准备的.全部教程只使用三种公式,还原过程以理解为主,公式为辅. 第六部分 顶面黄色还原 6.1 预览顶面还原后的效果 ...

  2. 12面魔方公式图解法_【高级篇】(三)三阶魔方CFOP高级玩法之——F2L

    一.F2L这一步要干什么 1.先了解一下"棱角对"和"槽位"的概念 棱角对:即由一个棱块和一个角块构成,是F2L的基本单元(共四组) 槽位:给"棱角对 ...

  3. android 手机 与 python服务器_Python服务器与多种客户端(Python/Java/Android)之间的通信...

    概述: 我们不会一直满足于客户端程序的开发,因为太过受限了.为了打破这样的受限,你需要做的就是去编写服务器端代码.以及如何在服务器与客户端之间的通信.以下将对此以Python为服务器,并分别以Pyth ...

  4. python篮球-基于Python/Java的人工智能篮球训练系统的制作方法

    本发明涉及信息技术领域,尤其涉及一种基于Python/Java的人工智能篮球训练系统. 背景技术: 人工智能的发展已经开始渗透到各行各业.经过发明人的研究和检索,发现作为篮球训练,已经有专利申请.其中 ...

  5. 阿里云全球首批MVP张建平专访 - 我对数据有执念

    昨天我们采访了阿里云全球首批MVP傅奎,让我们认识到了一个"可爱""谦虚"的安全大牛. 今天很荣幸给大家介绍另一位阿里云MVP(阿里云MVP计划),数据分析专家 ...

  6. 执念斩长河暑期出发录

    大家好,我是执念斩长河.不经意间,博主的暑期就要到了2020年6月22日.俗话说:"暑期不努力,开学徒伤悲",那博主的暑期有哪些安排呢? 暑期大约11周,共77天. 暑期只干三件事 ...

  7. 周鸿祎的“花房上市”执念

    为了上市而上市,更像是周鸿祎的执念一场. 10月25日,花房集团向港交所提交招股书.这家属于同业第二梯队的公司所面临的尴尬事,不止于财务报表上数字,更来自于行业头部公司迫于市场纷纷谋求转型,而花房集团 ...

  8. 最新出炉--IOS自动化测试环境搭建(Python Java)

    一.前言 IOS的App自动化测试与Android的一样,也可以用appium来进行.但是IOS自动化依赖苹果的osx系统.Xcode构建等,且封闭的系统需要苹果开发者账号才可以驱动真机.Appium ...

  9. 理想汽车下“神坛”:抛弃对混动的执念,不得不转身?

    近日,在纳斯达克上市的理想汽车(NASDAQ:LI)发布了 2020年第四季度及2020年未经审计财务报告.财报显示,理想汽车2020年第四季度的净利润为1.075亿元,首次实现季度盈利. 2020年 ...

最新文章

  1. a*算法的时间复杂度_算法基础——时间复杂度amp;空间复杂度
  2. (转)iPhone wifi使用socket连接Internet
  3. RocketMQ(三):基本原理和架构
  4. spring cloud组件服务架构
  5. linux6.2 网络yum,配置RHEL6.2的YUM源
  6. 歌谣--回顾2020 展望2021
  7. Android游戏开发基础part4--Bitmap位图的渲染与操作
  8. 消息人士:苹果要求代工商今年生产9000万部iPhone 13
  9. Python爬虫扩展库BeautifulSoup4用法精要
  10. sql server序列_SQL Server中的Microsoft时间序列
  11. ZOJ1151 Word Reversal(没法提交)
  12. 程序局部性(时间局部性与空间局部性)与循环展开原理详解
  13. PGM:贝叶斯网表示之朴素贝叶斯模型naive Bayes
  14. mysql分组取每组前几条记录_[转] mysql分组取每组前几条记要(排名)
  15. 关于整车上下电流程和电源管理
  16. 18位身份证号码的编排规则
  17. 用python画一个正方形
  18. COGS 613. 火车站饭店 解题报告
  19. 【毕设教程】单片机如何运行SD卡里的程序
  20. 视频画中画制作,一款简单好上手的软件

热门文章

  1. 2021-03-25 minio
  2. c语言循环计算分式加减乘除混合运算,计算()_分式的加减乘除混合运算及分式的化简_中学题库-沪江中学学科网...
  3. 论文笔记 ACL 2019|Exploring Pre-trained Language Models for Event Extraction and Generation
  4. 连接mysql的url是什么_JDBC的URL是什么
  5. html背景图去重,Python Django开发 经验技巧总结(二)
  6. 【Raft】分布式一致性算法Raft和zab、paxos
  7. 斯坦福大学新课CS224W-图网络机器学习算法-视频及ppt资源分享
  8. python cx_Oracle.DatabaseError: DPI-1047: Cannot locate a 64-bit Oracle Client library
  9. STM32物联网项目-DMA使用介绍(ADC+DAC)
  10. phpcms-前台模板调用和后台模板调用