2018 Pingshan Open – Men's Doubles
Sanchai and Sonchat Ratiwatana were the defending champions but chose not to defend their title.
Men's Doubles | |
---|---|
2018 Pingshan Open | |
Champions | ![]() ![]() |
Runners-up | ![]() ![]() |
Final score | 7–6(7–3), 6–3 |
Hsieh Cheng-peng and Rameez Junaid won the title after defeating Denys Molchanov and Igor Zelenay 7–6(7–3), 6–3 in the final.
Seeds
Sriram Balaji / Christopher Rungkat (Quarterfinals) Denys Molchanov / Igor Zelenay (Final) Marin Draganja / Tomislav Draganja (Quarterfinals) Aliaksandr Bury / Peng Hsien-yin (Semifinals)
Draw
Key
- Q = Qualifier
- WC = Wild Card
- LL = Lucky Loser
- Alt = Alternate
- SE = Special Exempt
- PR = Protected Ranking
- ITF = ITF entry
- JE = Junior Exempt
- w/o = Walkover
- r = Retired
- d = Defaulted
First Round | Quarterfinals | Semifinals | Final | ||||||||||||||||||||||||
1 | ![]() ![]() | 6 | 6 | ||||||||||||||||||||||||
![]() ![]() | 4 | 4 | 1 | ![]() ![]() | 7 | 4 | [8] | ||||||||||||||||||||
![]() ![]() | 4 | 5 | ![]() ![]() | 5 | 6 | [10] | |||||||||||||||||||||
![]() ![]() | 6 | 7 | ![]() ![]() | 77 | 3 | [10] | |||||||||||||||||||||
4 | ![]() ![]() | 6 | 6 | 4 | ![]() ![]() | 63 | 6 | [7] | |||||||||||||||||||
![]() ![]() | 1 | 2 | 4 | ![]() ![]() | 2 | 6 | [10] | ||||||||||||||||||||
![]() ![]() | 77 | 6 | ![]() ![]() | 6 | 2 | [7] | |||||||||||||||||||||
![]() ![]() | 63 | 4 | ![]() ![]() | 77 | 6 | ||||||||||||||||||||||
![]() ![]() | 3 | 64 | 2 | ![]() ![]() | 63 | 3 | |||||||||||||||||||||
![]() ![]() | 6 | 77 | ![]() ![]() | 4 | 6 | [10] | |||||||||||||||||||||
![]() ![]() | 5 | 65 | 3 | ![]() ![]() | 6 | 3 | [7] | ||||||||||||||||||||
3 | ![]() ![]() | 7 | 77 | ![]() ![]() | 2 | 6 | [5] | ||||||||||||||||||||
![]() ![]() | 63 | 6 | [11] | 2 | ![]() ![]() | 6 | 3 | [10] | |||||||||||||||||||
![]() ![]() | 77 | 2 | [13] | ![]() ![]() | 2 | 3 | |||||||||||||||||||||
![]() ![]() | 4 | 79 | [5] | 2 | ![]() ![]() | 6 | 6 | ||||||||||||||||||||
2 | ![]() ![]() | 6 | 67 | [10] |
gollark: ```javascriptconst renderPlayer = (player) => { let str = "" for (let y = player.y - 5; y <= player.y + 5; y++) { for (let x = player.x - 10; x <= player.x + 10; x++) { let wallCol = getWallColor(x, y) if (x >= WIDTH) { str += wallCol } else if (y >= HEIGHT) { str += wallCol } else if (x < 0) { str += wallCol } else if (y < 0) { str += wallCol } else { let id = getEnemy(x, y) if (id != -1) { str += enemy_icons[enemies[id].id] } else { let id = getPlayer(x, y) if (id != -1) { str += players[id].icon } else { let id = getBonus(x, y) if (id != -1) { str += "?" } else { str += " " } } } } } str += "\n" } return str}```
gollark: YES, SOME OFFENSE.
gollark: As I said, this is not very good code.]
gollark: Every rendered tile.
gollark: I suppose baidicoot thought "hmm, how might I find whether a player is on a tile I'm rendering". Now, you might think "hmm yes, the solution to this is just to maintain a map of coordinates to entities, or something like that". But no! The game ITERATES OVER ALL PLAYERS FOR EVERY SINGLE TILE.
References
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.