Skip to content
Snippets Groups Projects
Select Git revision
  • e2cf0086a7d44cd9d525e97bfa31b14b258850d5
  • master default protected
2 results

tweet

user avatar
xinjiel2 authored
e2cf0086
History

Computer System Project1

Background. Nowadays, search engines have been an essential part of our lives, e.g., Google and

Bing, which have significantly improved our productiveness. There are various types of searching

services, among which keyword search is the dominant one, namely searching by keywords. While

keyword search works well for documents, pages and websites, it faces a big challenge when searching

for images. This is because linking images with keywords is typically difficult for computers as it

requires understanding on the semantic of images. For this purpose, tagging images with keywords

is one of the most effective ways to help computers understand images’ semantic, and this is

also the first step to help machines learn (by telling them which is correct and which is wrong).

Unfortunately, tagging a large number of images is boring and requires a substantial amount of

human power. In this project, you will make the boring tagging process more funny by implementing

a network game server that tags images as people play. (The idea was invented by the inventor

of re-Captcha and Duo-lingo; Google bought the company and shut down the game.)

The Rules of the Game. The game consists of two players and one server, where each of the

players can only communicate with the server (but the other player). At the beginning, when the

two players log on to the server, the server sends both of them a same image. The game then

starts; the players submit words or phrases to the server, one at a time, without being told what

the other player has inputed. The goal for both the players is to enter a word or a phrase that has

been submitted by the other as soon as possible. Obviously, in order to maximise the chance of

getting a match, the two players would better to enter words that describe the image well, since it

is the only information shared by both of the two. (The image is, therefore, tagged.) Once the goal

is achieved, the game ends; the server sends a web page indicating that the game is completed and

prompting the players to play again. If both the players agree to play again, the process repeats

with a new image.

Project Basic Functionalities. In this project, you are asked to write a program to implement

(by socket programming in C) the aforementioned game server supporting two players from

two different browsers over HTTP. The program should allow users to configure both the server IP

address and the port number. Specifically, you need to implement the following basic functionalities

of the server, where the html source files of all the pages will be provided.