The Link Your Class
The Link of Requirement of This Assignment https://bbs.csdn.net/forums/MUEE308FZU202201?category=0
MU STU ID and FZU STU ID https://bbs.csdn.net/topics/608859318
Teammate’s MU STU ID and FZU STU ID 20124058_832001227
Teammate’s blog link
GitHub link
Video demo link

Catalog

  • The Key or Difficult Functions
  • Programming Thinking
  • Pair Programming
  • Pair programming experience
  • What take a long time in coding, arguing, reviewing & Great gains.

The Key or Difficult Functions

We chose Android Studio to make Bobing software. The most difficult thing is that we have not learned java and AS syntax. Through searching a lot of materials and self-learning, we finally realized the programming of Bobing software. Here’s the key code:

1. Intent

This is the most commonly used function in the software, through the Button control, set the click jump event.

Add a Button control and set the onClick function for the button, which is the event that a click occurs. Add the jump command code to the Activity before the jump, then create a second activity.java file, make sure it has an entity class in the existing file, and remember to configure it in AndroidManifest.xml.

public class bangyan extends AppCompatActivity {Intent a, b;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.tanhua);Button origin = (Button) findViewById(R.id.fanhui);//Call the Button controlorigin.setOnClickListener(new ButtonListener());//Set the click jump event for the buttonButton rule = (Button) findViewById(R.id.restart);rule.setOnClickListener(new ButtonListener());}class ButtonListener implements View.OnClickListener{Intent a,b;@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.fanhui:a = new Intent(bangyan.this, choooooose.class);//Click to jump to the choooooose pagestartActivity(a);break;case R.id.restart:b = new Intent(bangyan.this, Multiply.class);//Click to jump to the Multiply pagestartActivity(b);break;}}}

2. Roll the dice

This is the most basic function of the pie game.

First, the ImageView control of six dice is set in the xml file. Each die needs to call six pictures, that is, one to six dice pictures, and set the position for each control, arranged in two rows.

Now that we have an image of a die, we need to write a java file to roll the die and generate a random result.

Use the Random function to generate six random numbers corresponding to six dice, and connect the random numbers with the corresponding picture resources. The random picture is corresponding to the int value of drawableResource according to the value of rangNumber, and the Drawable class is instanced to set the final picture displayed by the ImageView control.

Now I have six dices that can generate random numbers, and I can match the number of the picture to the random result.

//The first die image control<ImageViewandroid:id="@+id/dice_image1"android:layout_width="137dp"android:layout_height="127dp"android:layout_alignParentBottom="true"android:layout_marginStart="7dp"android:layout_marginLeft="7dp"android:layout_marginBottom="371dp"android:layout_toEndOf="@+id/dice_image5"android:layout_toRightOf="@+id/dice_image5"android:src="@drawable/empty_dice"tools:ignore="MissingConstraints" />
//                产生随机数Random rand = new Random();int randNumber1 = rand.nextInt(6)+1;
//                String randNumber2 = rand.nextInt(6)+1;int randNumber2 = rand.nextInt(6)+1;int randNumber3 = rand.nextInt(6)+1;int randNumber4 = rand.nextInt(6)+1;int randNumber5 = rand.nextInt(6)+1;int randNumber6 = rand.nextInt(6)+1;//                获取对ImageView对象的引用ImageView diceImage1 = findViewById(R.id.dice_image1);ImageView diceImage2 = findViewById(R.id.dice_image2);ImageView diceImage3 = findViewById(R.id.dice_image3);ImageView diceImage4 = findViewById(R.id.dice_image4);ImageView diceImage5 = findViewById(R.id.dice_image5);ImageView diceImage6 = findViewById(R.id.dice_image6);int drawableResource1,drawableResource2,drawableResource3,drawableResource4,drawableResource5,drawableResource6;
//                将随机数与对应的图片资源联系起来switch (randNumber1){case 1: drawableResource1 = R.drawable.dice_1; break;case 2: drawableResource1 = R.drawable.dice_2; break;case 3: drawableResource1 = R.drawable.dice_3; break;case 4: drawableResource1 = R.drawable.dice_4; break;case 5: drawableResource1 = R.drawable.dice_5; break;case 6: drawableResource1 = R.drawable.dice_6; break;default:throw new IllegalStateException("Unexpected value: " + randNumber1);}//               随机图片根据rangNumber的值对应drawableResource的int值,实例Drawable类Drawable drawable1 = getBaseContext().getResources().getDrawable(drawableResource1);
//                设置ImageView控件最终显示的图片diceImage1.setImageDrawable(drawable1);//第一个骰子,之后以此类推

3. Produce result & Single player mode

The number of six dice in the game will produce different results, through the analysis of the rules, I used the counter to achieve, the number of four points in the game is the most important, six four for the number one, a four for the scholar, and so on. The second is the number of twos and ones, which are counted and classified to produce the result.

Now that the single player mode has been implemented, here are the results of the single player mode.

                //判断奖项//  存储当前随机数组int[]  arr;arr = new int[6];arr[0] = randNumber1;arr[1] = randNumber2;arr[2] = randNumber3;arr[3] = randNumber4;arr[4] = randNumber5;arr[5] = randNumber6;Arrays.sort(arr);int counter = 0;for(int j=0;j<6;j++){if (arr[j] == 4){counter++;}}//4出现的个数//红六勃if (counter == 6){Intent intent = new Intent(Multiply.this,hongliubo.class);startActivity(intent);}//插金花if (counter == 4){if (arr[1] == 1 && arr[0] == 1){Intent intent = new Intent(Multiply.this,chajinhua.class);startActivity(intent);}}int counter1 = 0;//1出现的个数for(int m=0;m<6;m++){if (arr[m] == 2){counter1++;}}//遍地锦(6个1),榜眼(123456)if (counter1 == 6){Intent intent = new Intent(Multiply.this,biandijin.class);startActivity(intent);}if ((arr[0] == 1)&&(arr[1] == 2)&&(arr[2] == 3) && (arr[3] == 4) && (arr[4] == 5)&&(arr[5]==6)){Intent intent = new Intent(Multiply.this,bangyan.class);startActivity(intent);}//五红(5个4)if (counter == 5){Intent intent = new Intent(Multiply.this,wuhong.class);startActivity(intent);}//四红(4个4)if (counter == 4){if (arr[0] != 4 && arr[1] != 4){//排除插金花Intent intent = new Intent(Multiply.this,sihong.class);startActivity(intent);}}
//              探花if (counter == 3){Intent intent = new Intent(Multiply.this,tanhua.class);startActivity(intent);}//举人if (counter == 2){Intent intent = new Intent(Multiply.this,juren.class);startActivity(intent);}//秀才if (counter == 1){if ((arr[0] == 1)&&(arr[1] == 2)&&(arr[2] == 3) && (arr[3] == 4) && (arr[4] == 5)&&(arr[5]==6)){Intent intent = new Intent(Multiply.this,bangyan.class);startActivity(intent);}//排除榜眼else {Intent intent = new Intent(Multiply.this,xiucai.class);startActivity(intent);}}int counter2 = 0;//2出现的个数for(int j=0;j<6;j++){if (arr[j] == 2){counter2++;}}//黑六勃(6个2)if (counter2 == 6){Intent intent = new Intent(Multiply.this,heiliubo.class);startActivity(intent);}//五子(5个2)if (counter2 == 5){Intent intent = new Intent(Multiply.this,wuzi.class);startActivity(intent);}//进士(4个2)if (counter2 == 4){Intent intent = new Intent(Multiply.this,jinshi.class);startActivity(intent);}//未出现4并且2出现的次数小于4并且没有出现6个1则没有中奖if (counter == 0 && counter2 < 4 && counter1 != 6 ){Intent intent = new Intent(Multiply.this,wu.class);startActivity(intent);}

4. History

In multiplayer we also need to generate a history to record the results of each player.

To do this, we use a two-dimensional dynamic array, where the first column is the number of players, the second column keeps track of each result, and each result is appended to the dynamic array, and finally the array is looped through and printed as a string.

The string is displayed with the TexyView control of AS. First, set the TextView control in the xml file and set the id, and call it in the java file.

   <TextViewandroid:id="@+id/array"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerInParent="true"android:background="#EBFAF9F9"android:textColor="#3A3636"android:textSize="25dp"android:typeface="serif" />
public class Multiply extends AppCompatActivity {private int N;private int round=1;private String[][] list ;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.multi);N = 5;//用户人数list = new String[N][2];//创建包含数组的list,即可看成是二维数组,储存第几局与每次结果//固定两行,第一列储存第几次,第二列储存每次结果//       从布局文件中获取名叫roll_button的按钮对象的引用Button rollButton = findViewById(R.id.roll_button);
//
//        给按钮rollButton设置点击监听器,一旦用户点击按钮,就触发监听器的onClick方法rollButton.setOnClickListener(new View.OnClickListener(){public void onClick(View v){if (round == 1){list[0][0] = "玩家1";}if (round == 2){list[1][0] = "玩家2";}if (round == 3){list[2][0] = "玩家3";}if (round == 4){list[3][0] = "玩家4";}if (round == 5){list[4][0] = "玩家5";}if (round == 6){list[4][0] = "玩家6";}if (round == 7){list[4][0] = "玩家7";}if (round == 8){list[4][0] = "玩家8";}if (round == 9){list[4][0] = "玩家9";}if (round == 10){list[4][0] = "玩家10";}if (round == 11){list[4][0] = "玩家11";}if (round == 12){list[4][0] = "玩家12";}//                产生随机数Random rand = new Random();int randNumber1 = rand.nextInt(6)+1;
//                String randNumber2 = rand.nextInt(6)+1;int randNumber2 = rand.nextInt(6)+1;int randNumber3 = rand.nextInt(6)+1;int randNumber4 = rand.nextInt(6)+1;int randNumber5 = rand.nextInt(6)+1;int randNumber6 = rand.nextInt(6)+1;//                获取对ImageView对象的引用ImageView diceImage1 = findViewById(R.id.dice_image1);ImageView diceImage2 = findViewById(R.id.dice_image2);ImageView diceImage3 = findViewById(R.id.dice_image3);ImageView diceImage4 = findViewById(R.id.dice_image4);ImageView diceImage5 = findViewById(R.id.dice_image5);ImageView diceImage6 = findViewById(R.id.dice_image6);int drawableResource1,drawableResource2,drawableResource3,drawableResource4,drawableResource5,drawableResource6;
//                将随机数与对应的图片资源联系起来switch (randNumber1){case 1: drawableResource1 = R.drawable.dice_1; break;case 2: drawableResource1 = R.drawable.dice_2; break;case 3: drawableResource1 = R.drawable.dice_3; break;case 4: drawableResource1 = R.drawable.dice_4; break;case 5: drawableResource1 = R.drawable.dice_5; break;case 6: drawableResource1 = R.drawable.dice_6; break;default:throw new IllegalStateException("Unexpected value: " + randNumber1);}//               随机图片根据rangNumber的值对应drawableResource的int值,实例Drawable类Drawable drawable1 = getBaseContext().getResources().getDrawable(drawableResource1);
//                设置ImageView控件最终显示的图片diceImage1.setImageDrawable(drawable1);//              第二个骰子switch (randNumber2){case 1: drawableResource2 = R.drawable.dice_1; break;case 2: drawableResource2 = R.drawable.dice_2; break;case 3: drawableResource2 = R.drawable.dice_3; break;case 4: drawableResource2 = R.drawable.dice_4; break;case 5: drawableResource2 = R.drawable.dice_5; break;case 6: drawableResource2 = R.drawable.dice_6; break;default:throw new IllegalStateException("Unexpected value: " + randNumber2);}//                随机图片根据rangNumber的值对应drawableResource的int值,实例Drawable类Drawable drawable2 = getBaseContext().getResources().getDrawable(drawableResource2);//                设置ImageView控件最终显示的图片diceImage2.setImageDrawable(drawable2);//                第三个骰子switch (randNumber3){case 1: drawableResource3 = R.drawable.dice_1; break;case 2: drawableResource3 = R.drawable.dice_2; break;case 3: drawableResource3 = R.drawable.dice_3; break;case 4: drawableResource3 = R.drawable.dice_4; break;case 5: drawableResource3 = R.drawable.dice_5; break;case 6: drawableResource3 = R.drawable.dice_6; break;default:throw new IllegalStateException("Unexpected value: " + randNumber3);}
//                随机图片根据rangNumber的值对应drawableResource的int值,实例Drawable类Drawable drawable3 = getBaseContext().getResources().getDrawable(drawableResource3);
//                设置ImageView控件最终显示的图片diceImage3.setImageDrawable(drawable3);//                第四个骰子switch (randNumber4){case 1: drawableResource4 = R.drawable.dice_1; break;case 2: drawableResource4 = R.drawable.dice_2; break;case 3: drawableResource4 = R.drawable.dice_3; break;case 4: drawableResource4 = R.drawable.dice_4; break;case 5: drawableResource4 = R.drawable.dice_5; break;case 6: drawableResource4 = R.drawable.dice_6; break;default:throw new IllegalStateException("Unexpected value: " + randNumber4);}
//                随机图片根据rangNumber的值对应drawableResource的int值,实例Drawable类Drawable drawable4 = getBaseContext().getResources().getDrawable(drawableResource4);
//                设置ImageView控件最终显示的图片diceImage4.setImageDrawable(drawable4);//                第五个骰子switch (randNumber5){case 1: drawableResource5 = R.drawable.dice_1; break;case 2: drawableResource5 = R.drawable.dice_2; break;case 3: drawableResource5 = R.drawable.dice_3; break;case 4: drawableResource5 = R.drawable.dice_4; break;case 5: drawableResource5 = R.drawable.dice_5; break;case 6: drawableResource5 = R.drawable.dice_6; break;default:throw new IllegalStateException("Unexpected value: " + randNumber5);}
//                随机图片根据rangNumber的值对应drawableResource的int值,实例Drawable类Drawable drawable5 = getBaseContext().getResources().getDrawable(drawableResource5);
//                设置ImageView控件最终显示的图片diceImage5.setImageDrawable(drawable5);//                第六个骰子switch (randNumber6){case 1: drawableResource6 = R.drawable.dice_1; break;case 2: drawableResource6 = R.drawable.dice_2; break;case 3: drawableResource6 = R.drawable.dice_3; break;case 4: drawableResource6 = R.drawable.dice_4; break;case 5: drawableResource6 = R.drawable.dice_5; break;case 6: drawableResource6 = R.drawable.dice_6; break;default:throw new IllegalStateException("Unexpected value: " + randNumber6);}
//                随机图片根据rangNumber的值对应drawableResource的int值,实例Drawable类Drawable drawable6 = getBaseContext().getResources().getDrawable(drawableResource6);
//                设置ImageView控件最终显示的图片diceImage6.setImageDrawable(drawable6);//判断奖项//  存储当前随机数组int[]  arr;arr = new int[6];arr[0] = randNumber1;arr[1] = randNumber2;arr[2] = randNumber3;arr[3] = randNumber4;arr[4] = randNumber5;arr[5] = randNumber6;Arrays.sort(arr);int counter = 0;for(int j=0;j<6;j++){if (arr[j] == 4){counter++;}}//4出现的个数//红六勃if (counter == 6){list[round-1][1] = "红六勃";
//                    list[round-1][2] = 12 + "";Intent intent = new Intent(Multiply.this,hongliubo.class);startActivity(intent);}//插金花if (counter == 4){if (arr[1] == 1 && arr[0] == 1){list[round-1][1] = "插金花";
//                        list[round-1][2] = 13 + "";Intent intent = new Intent(Multiply.this,chajinhua.class);startActivity(intent);}}int counter1 = 0;//1出现的个数for(int m=0;m<6;m++){if (arr[m] == 2){counter1++;}}//遍地锦(6个1),榜眼(123456)if (counter1 == 6){list[round-1][1] = "遍地锦";
//                    list[round-1][2] = 11 + "";Intent intent = new Intent(Multiply.this,biandijin.class);startActivity(intent);}if ((arr[0] == 1)&&(arr[1] == 2)&&(arr[2] == 3) && (arr[3] == 4) && (arr[4] == 5)&&(arr[5]==6)){list[round-1][1] = "榜眼";
//                    list[round-1][2] = 6 + "";Intent intent = new Intent(Multiply.this,bangyan.class);startActivity(intent);}//五红(5个4)if (counter == 5){list[round-1][1] = "五红";
//                    list[round-1][2] = 9 + "";Intent intent = new Intent(Multiply.this,wuhong.class);startActivity(intent);}//四红(4个4)if (counter == 4){if (arr[0] != 4 && arr[1] != 4){//排除插金花list[round-1][1] = "四红";
//                        list[round-1][2] = 7 + "";Intent intent = new Intent(Multiply.this,sihong.class);startActivity(intent);}}
//              探花if (counter == 3){list[round-1][1] = "探花";
//                    list[round-1][2] = 5 + "";Intent intent = new Intent(Multiply.this,tanhua.class);startActivity(intent);}//举人if (counter == 2){list[round-1][1] = "举人";
//                    list[round-1][2] = 3 + "";Intent intent = new Intent(Multiply.this,juren.class);startActivity(intent);}//秀才if (counter == 1){if ((arr[0] == 1)&&(arr[1] == 2)&&(arr[2] == 3) && (arr[3] == 4) && (arr[4] == 5)&&(arr[5]==6)){list[round-1][1] = "榜眼";
//                        list[round-1][2] = 6 + "";Intent intent = new Intent(Multiply.this,bangyan.class);startActivity(intent);}//排除榜眼else {list[round-1][1] = "秀才";
//                        list[round-1][2] = 2 + "";Intent intent = new Intent(Multiply.this,xiucai.class);startActivity(intent);}}int counter2 = 0;//2出现的个数for(int j=0;j<6;j++){if (arr[j] == 2){counter2++;}}//黑六勃(6个2)if (counter2 == 6){list[round-1][1] = "黑六勃";
//                    list[round-1][2] = 10 + "";Intent intent = new Intent(Multiply.this,heiliubo.class);startActivity(intent);}//五子(5个2)if (counter2 == 5){list[round-1][1] = "五子";
//                    list[round-1][2] = 8 + "";Intent intent = new Intent(Multiply.this,wuzi.class);startActivity(intent);}//进士(4个2)if (counter2 == 4){list[round-1][1] = "进士";
//                    list[round-1][2] = 4 + "";Intent intent = new Intent(Multiply.this,jinshi.class);startActivity(intent);}//未出现4并且2出现的次数小于4并且没有出现6个1则没有中奖if (counter == 0 && counter2 < 4 && counter1 != 6 ){list[round-1][1] = "无";
//                    list[round-1][2] = 1 + "";Intent intent = new Intent(Multiply.this,wu.class);startActivity(intent);}TextView tv = (TextView)findViewById(R.id.array);//获取一个TextViewString ct = "";//定义一个字符串String s = "历史记录\n";if (round == N){for (int m=0;m<N;m++){for(int j=0;j<2;j++){ct = ct + list[m][j];//数组拼接成字符串if (j == 0){ct = ct +"\u0020\u0020";}}ct = ct + "\n";}round = 0;ct = s +ct;}tv.setText(ct);//在TextView中显示数组内容round = round + 1;

Programming Thinking

  1. Analyze the rules and determine the selection interface, rule interface, origin interface and game interface of the Bocake software, and the game interface needs single mode and multi-player mode.
  2. Single-player mode involves rolling dice and producing a result; Multiplayer requires the user to input the number of people and roll the dice multiple times to generate the history.
  3. Code skeleton:

Pair Programming

Pair programming experience

Sunday & Monday: Choose programming software, start with Unity firstly, then move to Flutter, set up environments and start learning dart
Tuesday: I quit Flutter and started learning Android Studio and java because my teammate uses Android Studio
Wednesday: Learned the basic rules of ButtonView, TextView, Intent and so on, and realized the button and jump Settings of all pages, completed the production of dice and the generation of random number results
Thursday: Can produce results corresponding to the number of dice, implemented single-player mode programming
Friday: Finished writing the history code, implemented the multiplayer mode programming, and recorded the video
Saturday: Blog

What take a long time in coding, arguing, reviewing & Great gains.

Event1: Coding software selection
Choose programming software, start with Unity firstly, then move to Flutter, set up environments and start learning dart, I quit Flutter and started learning Android Studio and java because my teammate uses Android Studio

Event2: Dice rolling coding
At first I didn’t know how to generate random numbers and map them to corresponding images. After a lot of research, I implemented this function with random function, switch_case statement, and Drawable syntax.

Event3: Code fusion
At the end of the code integration with peers, there are many problems, such as improper naming, version mismatch, not set AndroidManifest configuration, etc., which has taught us a great lesson.

Great Gains
In this team assignment, I realized homemade pancake software, and:

  • learned the basic operation of Android Studio
  • learned basic knowledge of java
  • enhanced the awareness of team communication and teamwork,
  • understood the importance of timely communication and making code rules in advance.

LAB 2-2 自制博饼软件相关推荐

  1. 基于OpenCASCADE自制三维建模软件(十一)使用ASSIMP导入导出

    基于OpenCASCADE自制三维建模软件(十一)使用ASSIMP导入导出 2019年08月06日 23:54:20 Jelly_Lee2 阅读数 73 文章标签: 三维建模CADOpenCASCAD ...

  2. 微信小程序中秋博饼部分插图分享

    这是微信小游戏<中秋博饼>的部分软件展示图,后续会公开源代码和其他module,谢谢

  3. profibus 主站软件_SIMATIC S71500与TIA博途软件的使用连载63

    以下内容节选自机械工业出版社出版的西门子自动化技术丛书----<SIMATIC S7- 1500 与 TIA博途软件使用指南>, 作者崔坚.更多更详细的内容请您参考<SIMATIC ...

  4. tia v15 添加项目_硬技能,TIA 博途软件界面的介绍

    在前面的文章中给大家介绍了TIA 博途软件的安装包等介绍,这次小编给大家介绍一下TIA 博途软件的界面.#电工学习PLC# 你知道吗,在博途软件的自动化项目任务的创建中,我们可以使用portal视图和 ...

  5. html5中秋博饼,2020年中秋博饼优秀作文(精选5篇)

    2020年中秋博饼优秀作文(精选5篇) 在平平淡淡的日常中,大家对作文都不陌生吧,作文是通过文字来表达一个主题意义的记叙方法.那么你知道一篇好的作文该怎么写吗?以下是小编收集整理的2020年中秋博饼优 ...

  6. Rails博客软件 Enki

    Enki 是一个采用 Ruby on Rails 开发的博客软件,适合开发人员使用. 安装方法: git clone git://github.com/xaviershay/enki.git enki ...

  7. 博图软件中多重背景块的建立_过路老熊_新浪博客

    用过Step7的技术人员都知道,在功能块FB的使用过程中需要配合背景数据块DB进行使用,当对一个建立了形式参数的FB进行重复调用时,调用多少次,就必须配套相应数量的背景数据块.因此当FB的调用次数较多 ...

  8. TIA博途软件中程序编辑区标题上的收藏快捷指令取消了,如何恢复显示?

    TIA博途软件中程序编辑区标题上的收藏快捷指令取消了,如何恢复显示? 对于刚接触博途软件的小伙伴来说,上手还是需要一些时间的,如果在使用时,不小心把程序编辑区上方收藏的快捷指令取消了,如果进行显示呢? ...

  9. 西门子博途软件TIA PORTAL不同版本安装在一台电脑上的个人总结

    关于西门子博途软件TIA PORTAL不同版本同时安装在同一台电脑上的个人总结 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到网站. 个人开始使用博途软件 ...

最新文章

  1. File.separator或File.pathSeparator
  2. C/C++中的连续赋值
  3. linux根据pid查看进程,linux根据pid获取进程名和获取进程pid(c语言获取pid)
  4. 魅族用鸿蒙系统吗,魅族宣布接入鸿蒙是怎么回事?魅族手机可以刷鸿蒙系统吗?...
  5. 一日一技:ASP.NET Core 判断请求是否为Ajax请求
  6. Active Directory PowerShell模块收集AD信息
  7. jq点击事件多次响应_Jquery中on绑定事件 点击一次 执行多次 的解决办法
  8. 将指定文件中的空格或换行删除(可选是否创建一个新文件)
  9. 升级到 MySQL 8.0,Facebook 付出的代价。。
  10. python函数式编程模式_Python 函数式编程
  11. 新零售场景下数字化营销运营管理方案
  12. 计算机二级没有学院盖章,二级学院盖章.DOC
  13. 基于C语言实现比赛评分系统
  14. routing-controllers工作原理解析
  15. 【转载】详解Android中接口回调、方法回调
  16. 微软project服务器搭建,安装和配置 Project Server 2013
  17. 2022年高新技术企业认定的补贴有多少?
  18. Adaboost入门教程——最通俗易懂的原理介绍(图文实例)
  19. 【CCAI 2016】人工智能青年论坛:论青年正确拥抱AI的姿势
  20. 洛伦兹力的matlab求解,问:由安培力推导洛伦兹力的过程?

热门文章

  1. 程序员如何挑选自己的专业方向
  2. ios 加载大量图片崩溃_加载高清大图崩溃问题
  3. 什么是函数式编程,函数合并与柯里化又是什么意思?
  4. UE4 粒子矢量场绘制(Maya2016)
  5. php输入文本框样式,html中关于文本框样式的总结大全(收藏)
  6. C#winForm程序与html JS交互调用
  7. Python itchat个人微信账号接口定时发送群消息
  8. 原创-含泪贡献:Revit二次开发,从零开始,利用socket实现Revit的远程调用,读取rvt文件信息
  9. 基于裸机工程移植内核
  10. 《编程之美》分离变量法,磁带访问优化方案