A. Module Chart and Class Diagram
The client consists of five functional modules, as shown in
Fig. 2, which are audio module, communication module, UI
module, logic operation module, setting module, respectively.
Among them, the UI module is the key point
lasses and corresponding methods. The LoginActivity class is
responsible for implementing login, at the same time is the
entrance of the game, with the brightness of the screen as well
as the volume of the audio set here with the help of the Setting
Activity. The RegisterActivity class takes in charge of register.
The MyAudio class is used for playing background music and
sound effects. The ServerService class creates the Sending and
Receiving thread to communicate with the server by means of
long TCP socket. The MyMessage class assists the
ServerService class in receiving and dispatching data and
creates a Bundle object for passing the data to the
GameActivity class by means of key-value. As main thread,
the GameActivity class obtains the data and then processes the
data with the help of the Play class, which is responsible for
implementing the logic operation module, with main UI redrew
according to the result. The GameView class extending from
the View class is responsible for drawing the main UI. The UI
of a card game belongs to passive update, whose redrawing
mainly depends on the touch event and does not require heavy
system resources and fast frame rates, thus it is more
appropriate to select the View class than the SurfaceView class
in the development of a card game. Through this way, we can
reduce running costs that is caused by the SurfaceView while
opening a new thread to redraw a canvas.