合肥生活安徽新聞合肥交通合肥房產(chǎn)生活服務(wù)合肥教育合肥招聘合肥旅游文化藝術(shù)合肥美食合肥地圖合肥社保合肥醫(yī)院企業(yè)服務(wù)合肥法律

        COMP2396代做、代寫(xiě)Tic-Tac-Toe Game設(shè)計(jì)編程

        時(shí)間:2023-12-12  來(lái)源:合肥網(wǎng)hfw.cc  作者:hfw.cc 我要糾錯(cuò)


        This assignment tests your understanding on GUI, Java Socket Programming and the

        COMP2396 Object-oriented programming and Java

        Assignment 4: A two-player Tic-Tac-Toe Game

        Due Date: 7th December 2023 23:59

        application of multi-threading.

        In this assignment, you are going to implement a two-player Tic-Tac-Toe Game. The

        game would only start when the Tic-Tac-Toe Server runs and two players are connected

        to the server. When the game starts, players need to input their player’s name first (i.e.,

        the player cannot make any move if he/she does not enter his/her player’s name) (Fig.

        1). Players are not allowed to re-input their names again once they have submitted their

        names (i.e., the textboxes and the submit buttons should be disabled). In addition, their

        names should be displayed in the frame’s title (i.e., change from Tic Tac Toe to Tic Tac

        Toe-Player: (player’s name)) and the message title (located below the menu bar) should

        change from “Enter your player name…” to “WELCOME (player’s name)” (Fig. 2).

        Initial setting:

         

        Fig. 1

        After player enters his/her name:

        Fig. 2

        After entering the player’s name, the game would always be started by player 1 (the

        player’s mark with a “x”)’s first move (i.e., player 2 (the player’s mark with a “o”)

        cannot make his/her first move until player 1 makes his/her first move). If player 1’s

        move is valid, his/her move would be marked as a “x” on the 3 x 3 board (The mark “x”

        on the 3 x 3 board should be displayed on both player 1’s and player 2’s board). The

        message title in the player 1’s board would be changed to “Valid move, wait for your

        opponent.” while the message title in the player 2’s board would be changed to “Your

        opponent has moved, now is your turn.”. Besides, player 1 is not allowed to make the

        next move until his/her opponent moves (i.e., if player 1 makes the next move before

        his/her opponent moves, it would be considered as an invalid move and nothing would

        be displayed on the board). The turn would be switched to the opponent (this time player

        2) and if player 2’s move is valid, it would be mark as a “o” on the 3 x 3 board on both

        players. The message displayed in the message title of the player 2’s board would be

        changed to “Valid move, wait for your opponent.” while the message title of the player

        1’s board would be changed to “Your opponent has moved, now is your turn.” Similarly,

        the turn would be switched to player 1 again and player 2 cannot make his/her next

        move until player 1 makes the move (Fig. 3 & 4).

        Fig. 3

        Fig. 4

        Criteria for a valid move:

        - The move is not occupied by any mark.

        - The move is made in the player’s turn.

        - The move is made within the 3 x 3 board.

         

        - Player 1 wins.

        - Player 2 wins.

        The game would continue and switch among the opposite player until it reaches either

        one of the following conditions:

        - Draw.

        The winning condition is that when there is any row, column or diagonal that is filled

        with the same mark (e.g., player 1 would win if there is any row, column or diagonal

        that is filled with “x”, player 2 would win if there is any row, column or diagonal that

        is filled with “o”). The game will draw if no players satisfy the winning condition after

        all the board location is filled with mark. Once it reaches either one of the above

        conditions, Message Dialog would be displayed on both players (the content of the

        Message Dialog would be different, based on the condition reached, but all would

        ask whether to restart the game.), both players cannot make further move, and

        can select “Yes” to restart the game, or select “No” to exit the game. The

        following screen captures show the Message Dialog displayed on the two players

        when either one of the player wins (Fig. 5 & 6) or the game is draw (Fig. 7).

        Fig. 5

        Fig. 6

        Fig. 7

        In addition to the above, you also need to handle the case when one of the players left

        during the game process. In this case, the game would terminate immediately (i.e., the

        remaining player cannot make further move), a Message Dialog “Game Ends. One of

        the players left.” would be displayed on the remaining player, as shown below in Fig.

        8.

        Fig. 8

        Besides, as you can see in the screen captures, there is a JMenuBar which consists of 2

        JMenu, named Control and Help (located above the message title). In the JMenu of

        Control, it consists of a JMenuItem, named Exit while in the JMenu of Help, it consists

        of a JMenuItem, named Instruction (Fig. 9 & 10). When the player clicks “Exit”, he/she

        would exit from the game and the game would be terminated immediately. When the

        player clicks “Instruction”, a Dialog Frame consists of some game information would

        be displayed (Fig. 11).

         

        Fig. 9 Fig. 10

        Fig. 11

        Important notes for the assignment:

        1. In this assignment, you can assume both the server program and the client

        programs run on local host (i.e., with IP address 127.0.0.1).

        2. You can have your own design, but you must include the GUI components as

        shown in the above screen captures and all the functionalities described in this

        document should be implemented. To ensure your program has implemented all

        necessary functions, please refer to the marking scheme below as for your

        references.

        3. This assignment will be marked by features (Your code would not be

        investigated). You are required to write JavaDoc for all non-private classes and

        non-private class member functions. Programs without JavaDoc will lead to

        mark deduction. However, you don’t need to generate JavaDoc htmls. Just write

        comment blocks in your source program.

        4. You need to record a demo video of the program. The video should start before

         you run the program and include all the features your program.

        5. After completing the assignment, please submit all files (including demo videos

         and java files) in a single compressed file (in .zip) to Moodle. Late submission

         is NOT allowed. Do NOT submit .class files.

        6. You will get 0 mark if:

         You submit .class files instead of .java source files, or

         You submit java source files that are downloaded from the Internet, or

         You submit java source files from your classmates, or

         You submit java source files from friends taken this course last year.

        Marking Scheme:

        請(qǐng)加QQ:99515681 或郵箱:99515681@qq.com   WX:codehelp

        掃一掃在手機(jī)打開(kāi)當(dāng)前頁(yè)
      1. 上一篇:CSCI1540代做、代寫(xiě)C++設(shè)計(jì)編程
      2. 下一篇:代寫(xiě)IERG 4130、代做c/c++設(shè)計(jì)編程
      3. 無(wú)相關(guān)信息
        合肥生活資訊

        合肥圖文信息
        急尋熱仿真分析?代做熱仿真服務(wù)+熱設(shè)計(jì)優(yōu)化
        急尋熱仿真分析?代做熱仿真服務(wù)+熱設(shè)計(jì)優(yōu)化
        出評(píng) 開(kāi)團(tuán)工具
        出評(píng) 開(kāi)團(tuán)工具
        挖掘機(jī)濾芯提升發(fā)動(dòng)機(jī)性能
        挖掘機(jī)濾芯提升發(fā)動(dòng)機(jī)性能
        海信羅馬假日洗衣機(jī)亮相AWE  復(fù)古美學(xué)與現(xiàn)代科技完美結(jié)合
        海信羅馬假日洗衣機(jī)亮相AWE 復(fù)古美學(xué)與現(xiàn)代
        合肥機(jī)場(chǎng)巴士4號(hào)線
        合肥機(jī)場(chǎng)巴士4號(hào)線
        合肥機(jī)場(chǎng)巴士3號(hào)線
        合肥機(jī)場(chǎng)巴士3號(hào)線
        合肥機(jī)場(chǎng)巴士2號(hào)線
        合肥機(jī)場(chǎng)巴士2號(hào)線
        合肥機(jī)場(chǎng)巴士1號(hào)線
        合肥機(jī)場(chǎng)巴士1號(hào)線
      4. 短信驗(yàn)證碼 酒店vi設(shè)計(jì) deepseek 幣安下載 AI生圖 AI寫(xiě)作 aippt AI生成PPT

        關(guān)于我們 | 打賞支持 | 廣告服務(wù) | 聯(lián)系我們 | 網(wǎng)站地圖 | 免責(zé)聲明 | 幫助中心 | 友情鏈接 |

        Copyright © 2025 hfw.cc Inc. All Rights Reserved. 合肥網(wǎng) 版權(quán)所有
        ICP備06013414號(hào)-3 公安備 42010502001045

        主站蜘蛛池模板: 国内精品一区二区三区最新| 老熟妇仑乱视频一区二区| 中文无码精品一区二区三区| 高清国产AV一区二区三区| 国产福利一区视频| 亚洲变态另类一区二区三区| 久久精品免费一区二区三区| 亚洲成人一区二区| 午夜爽爽性刺激一区二区视频| 亚洲美女视频一区二区三区| 久久久91精品国产一区二区| 国语精品一区二区三区| 国产在线一区二区在线视频 | 伊人久久一区二区三区无码| 国产高清在线精品一区二区| 无码喷水一区二区浪潮AV| 麻豆一区二区免费播放网站| 精品亚洲A∨无码一区二区三区| 久久精品国产一区| 午夜影视日本亚洲欧洲精品一区 | 亚洲熟女综合色一区二区三区| 日韩精品成人一区二区三区| 狠狠色成人一区二区三区| 日韩精品电影一区亚洲| 丰满岳乱妇一区二区三区| 亚洲AV成人精品日韩一区18p| 日韩在线一区高清在线| 蜜桃AV抽搐高潮一区二区| 无码丰满熟妇浪潮一区二区AV| 尤物精品视频一区二区三区| 手机福利视频一区二区| 精品91一区二区三区| 国精产品一区一区三区免费视频 | 亚洲Av永久无码精品一区二区| 伊人无码精品久久一区二区| 乱码人妻一区二区三区| 精品一区二区三区在线观看l | 亚洲欧洲无码一区二区三区| 国产精品久久无码一区二区三区网 | 一区二区三区观看免费中文视频在线播放 | 中文字幕一区二区三区在线观看 |