Teach you how to play the [Top Conference] quiz game

Teach you how to play the [Top Conference] quiz game

In the past two days, live quiz apps such as the "Chongding Conference" have suddenly become popular. I have to admire the imagination of Internet companies. So how can programmers play quiz games in different ways? Previously, WeChat's "Jump Jump" game was popular in the circle of friends. Many friends have already written automated scripts to assist. When I saw the quiz game, I immediately thought of using a similar method to write a simple script. I found that a friend had already made a call to Baidu API, so I wrote another one that directly uses the recognition library. The code idea is simple and can be used in various quiz games. Using text recognition plus search can only play a role in assisting decision-making. You can refer to the results and increase the accuracy, but it cannot guarantee full correctness.

For specific code, environment and usage, please click: https://github.com/Skyexu/TopSup

Star ^ ^

Inspired by:

  • WeChat Jump Assistant
  • How do programmers play "Chongding Conference"?

Specific approach

1. Use ADB to take screenshots of your phone

  1. adb shell screencap -p /sdcard/screenshot.png
  2. adb pull /sdcard/screenshot.png .

2.OCR recognizes the title and option text

Use code to intercept the title area and option area respectively, and then perform text recognition

There are two methods for text recognition:

  • Google Tesseract, just install the software, and then mainly use this method
  • Baidu OCR livc, you need to register Baidu API, the number of calls per day is limited

3. Search judgment

Result judgment method

1. Open the browser and search for the problem directly

2. The title + each option is searched through a search engine, and the number of search results is extracted from the web page code

3. Search only with the title, and count the frequency of words in the result page code that contain the options

The following are two example results. It can be seen that the two methods have different results for the following two questions, and different decisions can be made depending on the type of question.

Referenced I Hacked HQ Trivia But Here's How They Can Stop Me

Main code

The main code of the verification idea is to realize screenshot, recognition, and call browser search. It is actually very simple. For details, you can refer to the simple version code in my github library.

  1. def pull_screenshot():
  2. os.system( 'adb shell screencap -p /sdcard/screenshot.png' )
  3. os.system( 'adb pull /sdcard/screenshot.png .' )
  4. pull_screenshot()
  5. img = Image. open ( "./screenshot.png" )
  6. # Cut the title position, the upper left corner coordinates and the lower right corner coordinates, test the resolution yourself
  7. question = img.crop((50, 350, 1000, 560)) # Nut pro1
  8. choices = img.crop((75, 535, 990, 1150))
  9. #region = img.crop((75, 315, 1167, 789)) # iPhone 7P
  10. # tesseract path
  11. pytesseract.pytesseract.tesseract_cmd = 'C:\\Program Files (x86)\\Tesseract-OCR\\tesseract'  
  12. # Language pack directory
  13. tessdata_dir_config = '--tessdata-dir "C:\\Program Files (x86)\\Tesseract-OCR\\tessdata"'  
  14. #lang specifies simplified Chinese
  15. text = pytesseract.image_to_string(question,, config=tessdata_dir_config)
  16. text = text.replace ( "\n" , "" )[2:]
  17. print(text)
  18. webbrowser.open ( 'https://baidu.com/s?wd=' +text )

Summarize

After writing the simple version, I thought about it and realized that it is not as convenient as Hi and Siri. But fortunately, it has accurate recognition and fast query. Later, I added several methods to assist decision making. Text recognition plus search cannot be done completely correctly in this type of game. If you want to achieve complete correctness, you may still have to capture packets? Or store question banks, but this is too time-consuming. With ADB screenshots, I am afraid that all kinds of small assistants can be played. You can use your imagination. Python is really convenient to write small scripts. Next, you can try to process the relationship after text recognition with NLP, and then search for different selection results to increase the accuracy, etc. I don’t want to play anymore. I have to write a paper.

<<:  A front-end programmer's one-month native Android development experience

>>:  Don't want to stop using iCloud? Why not migrate your data to another Apple ID?

Recommend

Evaluation of the effectiveness of Xiaohongshu advertising!

What do you think about whether Xiaohongshu adver...

The secret behind Facebook ad’s high click-through rate materials!

Whether it is cross-border e-commerce or overseas...

Why does Yuan Longping, who has won numerous awards, value foreign awards more?

Editor’s Note: During the 100-year struggle of th...

OPPO Find 7's external lens

Long before the release of OPPO's new flagship...

Perfect Diary Traffic Growth Code Crack Guide

The sudden outbreak of the epidemic has disrupted...

It causes about 700 billion in losses every year! We want to reduce this number

Produced by: Science Popularization China Author:...

Musk: Last month's tweet about Tesla production did not violate court order

Tesla CEO Elon Musk told a New York judge that se...

Product operation and promotion: How to compete for traffic?

Recently, more and more people around me are talk...

Build a training camp SOP from 0-1!

Training camp is one of the projects I have manag...