The seventh session of Huawei Wireless Coding Competition Summary

Source: Internet
Author: User

Distance from Huawei Wireless Seventh edition of the game has been nearly one months, although the heart has been thinking about a good summary, but before due to some other reasons have not been summed up, today while to open this summary of the reasons for the meeting, the rationale, only for the next time to do better.

In the one months before the seventh session of the Huawei Wireless Coding competition, I also participated in the code competition of Huawei Institute of Research and Development, and did not mention the results. The face of a master such as the cloud of Huawei, was just holding the attitude to try water to experience a little, get that result is not surprising, today is not here more nonsense ...

In this competition, deeply aware of the following aspects of the problem, now summarized as follows:

  Team Aspect :

As the leader of the team, I work on the following aspects:

First, to understand the entire development needs, know every detail of the game. As a team leader, if you do not know the most detailed requirements, then how to schedule the game, how to assign the task of the game, you will not be the best.

The tournament time is three days my outline plan is as follows:

    1. The first day read the task book, understand the development requirements, the completion of the process of message resolution sent, the simple control of the characters. This is what we did when we ignored the rules in the format and took it for granted. There are two sub-games in each game, each round has points, the official rule is two scores and who the highest, who won. As a result, we take it for granted that I win if I can kill all my opponents. While this rule does not have much impact on our overall development, there is a problem from the side: we are not really familiar with the need. The first day of development work, coordination work I personally feel that all do well, everyone relaxed and happy to complete, of course, this one night we did not stay up.
    2. the next day to complete the basic strategy development, release the basic version. The next day is to complete the basic strategy of development, how to rob the box, how to kill opponents. The next night after several optimizations our base class was released. Heart is very happy.
    3. the third day to complete the development of the enhanced version, release the enhanced version. due to the help of online battle platform, we are constantly using our program to challenge other teams, and constantly improve our code. In the process of improvement, the maintenance of the code appears to be more laborious, mainly reflected in the early framework of the design is not perfect.

Second, be familiar with each member's ability. Understand the ability of each player, the best skills, so that each member's ability to play to the maximum, so that the strength to a place, the team's ability to play to the limit.

Given my understanding of the other two teammates of our team, and their own choices, the pre-task division is divided into three major parts: brother is responsible for the overall process framework design; the elder brother is responsible for the message parsing, encapsulation, sending; I will be responsible for the control of the program entrance. At the end of the strategic aspects are discussed together, together with the completion of the division of labor.

Third, planning the overall progress. In the first game, this is not done well, if not good, it will lead to the overall game progress aimlessly, without a development cycle of the designation, we can only do where, think of where, there is no goal, easy to lose the goal in the development cycle of the clarity. Specifying the development cycle and project progress, especially in short-term development tasks like tournaments, is especially important to do this.

Iv. assess the risk of problems identified during the development cycle and grasp the development progress.

In this competition, there are two main problems in the risk assessment of the problem:

    1. Risk assessment, due to the personal private affairs of the teammates, combined with personal development too much, resulting in the late load of excessive risk, a person carrying too much responsibility, in the late will carry greater risk.
    2. Problem assessment is in the semi-finals, for the preliminary version, we modified the code, but part of the preliminary issue is fixed, but also exposed a lot of previous round version of the problem, and finally only through their own procedures to challenge their own, the most stable version of the election to select the most consistent as the competition program. Sadly, we finally submitted the final version to participate in the semi-finals, which is the biggest reason for our final failure.

V. The procedure of participation should be based on the idea of winning in a stable.

From the first game we summed up, the program does not have to have a good strategy, the most basic to do the robustness of the program. Be sure to never hang up when you're doing the locomotive game, and make sure the escape strategy is invincible. Only on this basis, we are talking about other optimization strategies. This is also the secret of our success this time.

  Personal Aspects :

In this competition, I really do not write a lot of code. I am mainly responsible for the research of the program entrance, the official documentation of the detailed reading and environmental preparation. The official information provided is only the C + + portal demo, and I can only read the official CPP demo file to write the Java entry program. The socket is created on the connection, the socket message is parsed, and the teammates are resolved to parse the JSON message from the server. In addition to some of the problems encountered in the latter part of the solution to develop some small functional modules.

1. Code framework design, interface definition is important

As a qualified programmer, coding should not have any problem (in my opinion coding is to solidify our human mind into an orderly code that the computer can recognize). Coding can only show you a level of proficiency in the tool, not the focus of the development effort. Just like when we are playing games, how to move the object in a picture is not the focus, the focus should be on how to move (strategy problem). Early analysis and program architecture design, writing a reliable, efficient, flexible, easy to expand, reusable program is the most serious. In the junior programmers (including me) often like to use the logic that the computer can understand to buy hands and express the problem to be solved and the specific solution process, which is actually in the way of computer understanding in thinking, and process-oriented programming thinking is the same, this approach itself is not wrong, But this kind of thinking makes our program can only meet the needs of the present, the program is not easy to maintain, not easy to expand, more difficult to reuse, which can not meet the requirements of high-quality code, and can not do a good job in the development of quality assurance. And our object-oriented thinking is far more diametrically opposed.

Some people here would argue that time is not very valuable in the face of a short-term demand for such a development cycle. I just have to follow the rules of the game and finish the procedure. In the actual game process, we often just focus on how to shorten the development cycle quickly, want to stay more time to think about the strategy, want to lose some code quality to exchange for strategic thinking time. However, unlike the usual development work, after the development is completed, there will be automated testing tools, the code of colleagues will be examined. There is no such thing in the game, and in time it is not possible to design such a thing yourself to care for the quality of your code, which can also reflect a programmer's programming habits from the side. If you follow the above development , and later want to do some complex strategy, it is more difficult. This is very prominent in the strategy development process in the late stage.

2. Team Collaboration

In the team game one point I think is very important, although I am always telling myself, but I do not know what I do well, this only with me to fight with the brothers only know, that is: Team collaboration ability. Team games are no more than individual races. One person in a race is just the right thing to do, and that's a direct victory, and the team game is not. In the team game, in addition to be good for themselves, but also to obey the whole, to grasp the progress of the module, but also to watch the overall progress. For the same problem, different people have different ideas, different ideas, only to do a good job of coordination between teammates to control, to the ideas of the best ideas to apply to our program. Oneself to complete the module that oneself undertake, can't go on, need to analyze the next step from the whole, how to do, how to do best? The team leader is coordinated so as to make the whole game progress healthily.

  written at the end :

Our team name: I am not a passer-by (take this team name for two reasons: the first recently a film called "I am a passer-by"; The second is that we really don't want to be just a passer-by)

Members: Senior, brother Fat, and I, three-person group

Development language: JAVA

Qualifying time: Three days

Competition game prototype: Bubble Hall

This competition is the second time in my life to participate in a relatively large formal game, is a successful and failure of the game. The competition has a total of 252 teams, in the end we can get 19 results, according to the truth is already very good, but during the various reasons we have a silk regret, failed to bring our greatest ability to play well. This silk of regret will become the next time we go farther paving stones, where to fall on where to stand up!

Finally, we would like to thank the company, our customers, Huawei to provide such a platform to challenge themselves, let us grow in frustration. Finally, we would like to thank the project team and customer leadership for our concern and support, especially our project boss, for our game to pay a lot. Thank you so much!

September 22, 2015 23:51:[email protected]

  

The seventh session of Huawei Wireless Coding Competition Summary

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.