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

Help! Why is someone feeding meat to Rose?

The editor sent me a picture, and my fruit flies ...

If you are not good at physics, please do not click on this article

Remember this fairy-like iced food in the restaur...

5 details tips to optimize your APP description!

Many people in the industry think that APP descri...

Analysis of Didi Qingju Bike User Growth System!

The “last mile” of public transportation is the m...

How to increase App users by not filling in invitation codes

What should we do when fission marketing becomes ...

Can I travel across provinces this summer?

Summer vacation is coming soon. Many friends want...

Only 3 scientists in the world! Chinese scientists won this international award

Recently, at the Eurokarst2022 conference at the ...

How to seize the golden 6 seconds of video advertising? Video advertising tips!

Information flow advertising has entered the seco...

Android 11 new improvements exposed: remove the 4GB size limit for single files

According to the XDA forum, Google may remove the...