加勒比久久综合,国产精品伦一区二区,66精品视频在线观看,一区二区电影

合肥生活安徽新聞合肥交通合肥房產生活服務合肥教育合肥招聘合肥旅游文化藝術合肥美食合肥地圖合肥社保合肥醫院企業服務合肥法律

代做CS3357A、代寫Python設計編程

時間:2023-12-09  來源:合肥網hfw.cc  作者:hfw.cc 我要糾錯


CS3357A COMPUTER NETWORKING

Assignment #4: Building a multi-player server-client snake game.

Assignment Purpose

The goal of this assignment is to extend the functionality of the previously developed Snake

game to support three additional features:

** The server should handle multiple clients/snakes simultaneously. Each client will have its

own snake, enabling a multiplayer environment where multiple snakes share the field.

Each client will receive a game state that includes the position of all snakes to display

them. You can decide colors. Check the “Communication Protocol and Game State”

section for instruction on implementing the multi-player feature.

2- While playing, Clients can send a public message to the server to be broadcasted to all

clients. Check the chatting section for instruction on implementing the public messaging

part.

3- Both the server and the clients encrypt their messages using RSA encryption algorithm.

In the RSA algorithm, each party generates a key pair (public key, private key), where the

private key is kept as a secret at the sender and is used to encrypt the sender messages,

and the public key is publicly shared with the receiver and is used to decrypt the

messages at the receiver side. Check the Encryption section for instruction on

implementing messages and control inputs encryption.

The image below shows the game window that should be displayed on the client side in this

assignment.

 

Figure 1 A screenshot showing the graphical interface of the snake game on the client side, containing three snakes and 4 snacks.

The screenshot also shows the terminal of one of the three connected clients with messages exchanged between clients.

The server is responsible for:

1. Accepting multiple client connections.

2. Managing the game's logic for all connected clients.

3. Broadcasting the game state to all clients.

4. Receiving and parsing each client's input commands.

5. Applying the received game controls to update the game state.

6. Receive public messages from clients and broadcast them to all clients.

7. Encrypting outgoing public messages.

8. Decrypting incoming controls inputs and public messages.

The snake client is responsible for:

1. Connecting to the server.

2. Sending control inputs to the server.

3. Receive and parse the game state.

4. Displaying the game interface with all the snakes based on the received game state.

5. Send public messages to the server.

6. Receive the public messages broadcasted by the server and display them on the terminal.

7. Encrypts outgoing control inputs and public messages before sending them to the server.

8. Decrypts incoming public messages received from the server.

Assignment Description

Modify the snake_server.py and snake_client.py files of assignment 3 to support handling multiple players,

RSA-based secure communication, and public messaging between clients. Each client will be assigned a

snake where he will be able to control it by sending encrypted control inputs to the server. On the other

hand, the server managesthe game logic including recording snakes and snacks positions; applying control

inputs; and returning the game state.

In the previous assignment (assignment #3), you were given the server side code which is separated into two

files: snake.py and snake_server.py, and you had to implement the client side code. These files will be used

as the starting code for this assignment.

In this assignment, no new files are given, but you are required to use and modify the server/client

code files of the previous assignments to support the new functionalities.

As this assignment builds on previous ones, the following diagrams illustrate the connection between

assignment 2, assignment 3, and assignment 4:

Figure 2 In the chatting application of assignment 2, the server can handle concurrent client connections. A connected client can

send a public message to the server to be broadcasted to all clients. No encryption is used.

Figure 3 In the single-player snake game of assignment 3, the server can accept a connection from a single client. Each cycle, the

client will send a control input, for example “get”, and the server will reply with the game state. Finally, the client uses the game

state to draw the game display. No encryption is applied; the server and client send data as plain text.

Figure 4 In assignment 4, you are required to implement a multi-player snake game. There are few differences between this

version of the game and the version implemented in the previous assignment. First, the server can accept concurrent client

connections. Once a client connects to the server, the server deploys a new snake and assigns it to that user. Second, in addition

to control inputs, clients can send public messages. Third, control inputs and public messages (sent by both the server and

clients) are encrypted using RSA encryption algorithm.

Snake game

The snake game that we will implement in this assignment is similar to the one implemented in the previous

assignment with additional features.

The rules of the game are implemented in the snake.py file which is used by the server script

(snake_server.py).

Game controls

In assignment 3, we implemented seven game controls sent by the client to enable him to control

the snake. Since we are using the code scripts of the previous assignment as a starting code for

this assignment, these seven game controls are still used in this assignment. However, feel free to

change the format of the control messages. For example, instead of sending the get command as

“get”, you can send “control:get” instead. This way the server knows this is a control input and

not a public message that should be broadcasted to all clients.

Chatting

Players will be able to send a message to all other players by sending a message to the server and the server

will broadcast the message to all players. Therefore, in each cycle, the server can receive a control input or a

message from each client. The two conditions apply:

1. A player can only send a public message to all players, he cannotsend a private message to a

particular player. For example, if three players are connected, A, B, and C. Player A can send a

public message to the server and the server will broadcast this message to A, B, and C. Player A

can’t send a private message to player B or C.

2. Instead of having the user type in the message it wants to send to the server, each player should

have a set of predefined messages each associated with a hotkey. When the user presses a hotkey,

the corresponding message should be sent to the server to be broadcasted to all other players. Each

player choosesits unique set of messages. For example, player A can have the following set of

messages: [“Congratulations!”, “It works!”, “Ready?”] assigned to the following keys: [‘z’, ‘x’, ‘c’].

When user A pressesthe key ‘x’, the message “It works!” should be sent to the server. The server

will then broadcast the message to users B and C. Upon receiving player A’s message from the

server, users B and C will display the received message on their terminal. You are required to

implement a client that has a set of three predefined messages each assigned a key.

Encryption

RSA Encryption Workflow

Consider a client k that wants to securely communicate with a server using RSA algorithm. First,

client k must generate its own RSA key pair: (client_k_public_key, client_k_private_key). When

client k connects to the server, it will send its public key to the server. After that, whenever Client

k wants to send a message to the server, it will encrypt the message using its own private key,

and send the encrypted message to the server, the server will then use client_k_public_key to

decrypt the received encrypted message. Similarly, the server will construct its own RSA key

pair: (server_public_key, server_private_key). The server will share its public key with every

client that connects to it. After that, if the server wants to send an encrypted message to client k,

it will encrypt the message using its own private key. Client k will then be able to decrypt the

received message using the server’s public key.

What to encrypt

In this assignment, the server exchanges various types of data with clients. Each cycle, the client

must send a control message and possibly a public message to be broadcasted to all clients. On

the other hand, the server sends the game state and the public messages that it received from any

client to broadcast to other clients. Therefore, the client can send two types of data: control

inputs and public messages, and the server can send two types of data: the game state and public

messages. You are required to encrypt all the exchanged data between the server and client

except the game state which can be sent without encryption. We don’t encrypt the game state

because encryption becomes more expensive (takes a lot of time) as the length of the text to be

encrypted grows.

Communication protocol and game state

In the previous assignment, the exact form of the game state was provided which contains the coordinates of

the snakes and the coordinates of the snacks separated by a “|” character. As this assignment introduces

more features that require adjusting both the server and client scripts, the communication protocol provided

for the previous assignment will not work. For example, in the previous assignment, the server and the client

exchange the control inputs and the game state each cycle. In this assignment, clients can send a public

message to the server to be relayed to the other clients. Therefore, the communication protocol should be

redesigned such that under the new communication protocol, the client can send both types of data (i.e.

control inputs and public messages), and the server can differentiate between both types.

Redesign the game communication protocol. This includes re-formatting of the control inputs and the

game state; and modifying the sequence and contents of exchanged data. Feel free to make any changes in

the client and server scripts of the previous assignment to add the new functionalities (multi-client

connection, public chatting between clients, and message encryption).

Deliverables

Submit four files:

1. snake_server.py: Snake game server-side code which can handle multiple client connections and

public messaging.

2. Snake.py: Helper file for snake_server.py. It contains the functions to handle the game logic.

3. Screenshot.png: Screenshot of the game display showing at least three players (snakes) in the field.

The screenshot should also show the terminal of one of the clients with exchanged messages printed

on the terminal (similar to figure 1).

4. snake_client.py: Snake game client side

Use the snake.py, snake_server.py, and snake_client.py files from the previous assignment as starting

code. Modify these files as you want to implement the features of this assignment.

Rubric

This assignment is out of 50. Marks are distributed as follows:

1. Server can handle multiple client connections concurrently. 5 marks

2. Server manages the game's logic for all clients(the game runs as intended). 10 marks

3. Server receives messages from clients and broadcasts them to all clients. 5 marks

4. Server broadcasts the game state to all clients. 5 marks

5. Server encrypts the public messages it broadcasts to clients. 5 marks

6. Client displays the game with all snakes based on the received game state. 5 marks

7. Client sends movement commands to the server. 5 marks

8. Client sends a message to the server when the user presses the assigned hotkey. 5 marks

9. Client encrypts the control inputs and public messages it sends to the server. 5 marks

Late submission

Late assignments will be accepted for up to two days after the due date, with weekends

counting as a single day; the late penalty is 20% of the available marks per day. Lateness is

based on the time the assignment is submitted.

Extensions will be granted only by your course instructor. If you have serious medical or

compassionate grounds for an extension, you must take supporting documentation to the

Academic Counselling unit of your faculty, who will contact the instructor.

請加QQ:99515681 或郵箱:99515681@qq.com   WX:codehelp

 

掃一掃在手機打開當前頁
  • 上一篇:ACS133編程代寫、代做MATLAB程序語言
  • 下一篇:CP1404程序代做、代寫Java,c++編程設計
  • 無相關信息
    合肥生活資訊

    合肥圖文信息
    2025年10月份更新拼多多改銷助手小象助手多多出評軟件
    2025年10月份更新拼多多改銷助手小象助手多
    有限元分析 CAE仿真分析服務-企業/產品研發/客戶要求/設計優化
    有限元分析 CAE仿真分析服務-企業/產品研發
    急尋熱仿真分析?代做熱仿真服務+熱設計優化
    急尋熱仿真分析?代做熱仿真服務+熱設計優化
    出評 開團工具
    出評 開團工具
    挖掘機濾芯提升發動機性能
    挖掘機濾芯提升發動機性能
    海信羅馬假日洗衣機亮相AWE  復古美學與現代科技完美結合
    海信羅馬假日洗衣機亮相AWE 復古美學與現代
    合肥機場巴士4號線
    合肥機場巴士4號線
    合肥機場巴士3號線
    合肥機場巴士3號線
  • 短信驗證碼 目錄網 排行網

    關于我們 | 打賞支持 | 廣告服務 | 聯系我們 | 網站地圖 | 免責聲明 | 幫助中心 | 友情鏈接 |

    Copyright © 2025 hfw.cc Inc. All Rights Reserved. 合肥網 版權所有
    ICP備06013414號-3 公安備 42010502001045

    福利一区二区| 99日韩精品| 亚洲伦伦在线| 欧美韩日一区| 99视频精品全国免费| 国产精品第十页| 蜜桃久久久久久| 国产一区二区中文| 日韩一级淫片| 亚洲国产一区二区精品专区| 蜜臀av性久久久久蜜臀aⅴ| 美女午夜精品| 日本一区福利在线| 青青青伊人色综合久久| caoporn视频在线| 欧美日韩激情| 成人在线视频你懂的| 国产一区二区视频在线看| 国产第一亚洲| 国产一二三在线| 99成人精品| 香蕉久久99| 99久久婷婷国产综合精品青牛牛 | 蜜臀av一区二区三区| 久久中文字幕二区| 日韩一区二区三区高清在线观看| 影音先锋久久久| 国产69精品久久| 亚洲精华液一区二区三区| 亚洲欧美日韩在线观看a三区| 999国产精品| 黄色欧美网站| 日韩高清在线观看一区二区| 欧美国产三区| 亚洲三级国产| 日本少妇一区二区| 在线一区视频观看| 牛牛精品一区二区| 激情黄产视频在线免费观看| 久久国产高清| 美女日韩在线中文字幕| 欧美伦理影院| 婷婷亚洲最大| 一本一道久久a久久精品蜜桃 | 影音先锋国产精品| 91国语精品自产拍| 欧美va天堂在线| 国产在线日韩| 婷婷综合亚洲| 99亚洲精品| av不卡在线看| 中文亚洲免费| 喷白浆一区二区| 日韩av自拍| 国产黄大片在线观看| 国产精品伦理久久久久久| 国产在线成人| 99久久精品国产亚洲精品| 美女呻吟一区| 精品视频在线你懂得| 美女主播精品视频一二三四| 中日韩免视频上线全都免费| 老牛国内精品亚洲成av人片| 久久久久免费av| 久久天堂精品| 国产高清一区二区| 精品69视频一区二区三区Q| 99av国产精品欲麻豆| 亚洲自拍另类| 色乱码一区二区三区网站| 春色校园综合激情亚洲| 欧美三级精品| 日本中文一区二区三区| 国内精品久久久久国产盗摄免费观看完整版| 福利一区二区三区视频在线观看| 一区二区91| 综合久久婷婷| 日韩高清一级| 精品国内自产拍在线观看视频| 精品在线网站观看| 午夜久久tv| 97久久视频| 国产成人福利夜色影视| 国内精品久久久久久久97牛牛 | 亚洲天天影视网| 偷拍自拍一区| 青青草91久久久久久久久| 国产字幕视频一区二区| 西西人体一区二区| 欧亚一区二区| 国内精品久久久久国产盗摄免费观看完整版 | 四季av一区二区凹凸精品| 韩日一区二区| 国产精品一区二区三区四区在线观看| 日本一道高清一区二区三区| 色综合www| 蜜臀久久99精品久久久画质超高清 | 综合一区二区三区| 成午夜精品一区二区三区软件| 91精品在线观看国产| 日韩有码一区二区三区| 成人午夜sm精品久久久久久久| 国产精品久久免费视频| 色愁久久久久久| 丝袜美腿亚洲一区| 日韩一区二区三区四区五区| 精品一区二区三区免费看| 噜噜噜狠狠夜夜躁精品仙踪林| 国产精品日韩| 久久精品理论片| 偷拍亚洲精品| 99re国产精品| 久久精品国产在热久久| 精品久久国产一区| 国产亚洲一级| 美女视频黄 久久| 国产精品主播在线观看| 视频一区欧美精品| 久久香蕉网站| 影视先锋久久| 精品日本视频| 三级欧美日韩| 日韩影院精彩在线| 综合精品久久| 不卡中文一二三区| 久久精品久久综合| 精品精品99| 日韩久久视频| 日韩欧美四区| 视频一区二区三区在线| 日本欧美一区二区三区| 欧美91在线| 日本欧美一区| 一区三区自拍| 91欧美在线| 亚洲va久久久噜噜噜久久| 国产精品五区| 亚洲国产片色| 午夜国产精品视频| 在线看片欧美| 亚洲精品97| 国产日韩高清一区二区三区在线| 精品午夜久久| 91大神在线观看线路一区| 国产日韩一区二区三免费高清| 免费成人在线网站| 国产亚洲一卡2卡3卡4卡新区| 尤物在线精品| www999久久| 国产一区二区高清| 欧洲专线二区三区| 日本久久精品| 亚洲一区二区三区在线免费| 樱花草涩涩www在线播放| 99久久免费精品国产72精品九九| av在线私库| aaa国产精品视频| 二吊插入一穴一区二区| 欧美成人基地| 久久狠狠亚洲综合| 亚洲精品va| 9999精品视频| 首页国产精品| 国产suv精品一区二区四区视频| 欧美国产日韩电影| 九九在线精品| 国产精品一区二区av交换| 天堂成人免费av电影一区| 日韩福利视频一区| 色在线免费观看| 加勒比色综合久久久久久久久| 一区二区三区国产盗摄| 欧美伦理在线视频| 亚洲精品无吗| 激情黄产视频在线免费观看| 精品国内自产拍在线观看视频 | 国产精品麻豆成人av电影艾秋| 久久久精品五月天| 日本在线不卡视频一二三区| 亚洲一区二区三区免费在线观看 | 久久国产精品99国产| 久久在线观看| 国产成人77亚洲精品www| 很黄很黄激情成人| 日本成人精品| 美女视频一区二区三区| 在线亚洲激情| 国产伦精品一区二区三区在线播放| 日韩毛片网站| 午夜影院日韩| 国产精品巨作av| 国内精品久久久久久久影视麻豆| 日韩主播视频在线| 日本精品影院| 国产剧情在线观看一区| 日韩久久99| аⅴ资源天堂资源库在线| 青青久久av| 久久久久久久久成人| 男人亚洲天堂|