联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-23:00
  • 微信:codinghelp

您当前位置:首页 >> C/C++编程C/C++编程

日期:2024-03-27 09:04

COMP2045 Coursework 2024

Introduction

This coursework is worth 40% of the module mark. It requires you to write C++

programs and a report that solve the task described below. The deadline for this

exercise is 23:55pm on Monday 29th April 2024.

Read the entire document before beginning the exercise.

If you have any questions about this exercise, please ask in the Q&A forum on

Moodle, after a lecture, in a lab, or during the advertised office hours. Do not post

your program or parts of your program to Moodle as you are not allowed to share

your coursework programs with other students. If any questions require this

exercise to be clarified then this document will be updated and everyone will be

notified via Moodle.

Task

Your task is to implement an algorithm for the game of Goofspiel in C++ and

write a report on testing the algorithm.

Goofspiel is a card game for two players, using cards from a standard deck of

cards. Each suit is ranked, i.e. ace is worth one point, 2 is two points, etc., jack 11,

queen 12, and king 13 points.

One suit is singled out as the "prizes"; each of the remaining suits becomes a

hand for one player, with one suit discarded. The prize cards are shuffled and

placed between the players with one card turned up.

Play proceeds in a series of rounds. The players make sealed bids for the top

(face up) prize by selecting a card from their hand (keeping their choice secret

from their opponent). Once these cards are selected, they are simultaneously

revealed, and the player making the highest bid takes the prize card. If there is a

tie, the prize card value is equally split between the tied players. The cards used for

bidding are discarded, and play continues with a new upturned prize card.

After 13 rounds, there are no remaining cards and the game ends. The player

who has gained the highest sum of the prize cards wins the game.

See reference [1-3] for more details of Goofspiel and the state-of-the-art

strategies for the game.

You should implement a program of Goofspiel game that the user plays against

an automatic algorithm repeatedly. The program should give a score (or scores) on

how well the user has performed in the game playing. You should test the

performance of the strategy you developed against the state-of-the-art strategies

(This can be done in the program of Goofspiel game or in a separate program).

Some other requirements of your C++ program of Goofspiel game include:

1. It must use C++ Object Oriented Programming (OOP), rather than C style

sequential programming.

2. It must be an interactive game that the user plays against computer.

3. It must allow input from the user (by means of keyboard or mouse).

4. It must show results (win, lose, tie, or scores).


Submission

You must submit a zip file that contains a report (no more than 4 pages) and all

source code for this exercise. The code files should compile and run without

warning and error messages on X2Go.

You should explain the details of your programs in the report, including the

hierarchy of classes used in your game and the strategy of Goofspiel you have

designed. You should also evaluate the performance of the strategy – how well it

performs against other strategies and how well it performs against human players.

(See [3] for an example of evaluation of Goofspiel strategies via competitions).

Late submissions: Late submissions will lose 2 percentage points per hour,

rounded up to the next whole hour. No late submissions will be accepted more than

48 hours after the exercise deadline. If you have extenuating circumstances you

must file them before the deadline.

Marking

The marking scheme will be as follows:

? Testing (30% or 12 marks): Your programs should satisfy the hard

requirements. As noted in the submission section, if your programs do not

compile then you will lose all testing marks.

o Correctness. The programs always give correct outputs according to the

rule of game in the tests. (10 tests, 1 mark for each test)

o Robustness. The programs handle some incorrect user inputs. (2 marks)

o No runtime error. (5 marks deduction for a runtime error)

o No memory leak. (1 mark deduction for a memory leak)

? Satisfaction of constraints (10% or 4 marks):

o The programs use C++ object-oriented techniques correctly. (2 marks)

o The programs are well formatted, and they contain appropriate

comments. (1 mark)

o The game contains a user-friend interface to play with. (1 mark)

? Quality of the algorithm (10% or 4 marks):

o Your algorithm has significant differences from others. (2 marks)

o Your algorithm performs better than the deterministic and random

strategies. (1 mark)

o Your algorithm performs well competing against human players in

repeated game playing. (1 mark)

o

? Report (50% or 20 marks):

o Appropriate description of the game, the algorithms, the classes in the

programs, and testing of the performance of your proposed algorithm. (4

marks)

o Evaluation of the algorithm

? Clear and accurate statements on the performance of your

proposed algorithm. (2 marks)

? Appropriate design of testing (2 marks)

? Sufficient testing results to support your conclusions. (4 marks)

? Appropriate uses of tables and figures. (4 marks)

? Analysis of your algorithm (why does it perform well or poor). (2

marks)

o Structure and language

? Well organized structure. (1 mark)

? Academic English writing. (1 mark)

Plagiarism

You should complete this coursework on your own. Anyone suspected of plagiarism

will be investigated and punished in accordance with the university policy on

plagiarism (see your student handbook and the University Quality Manual). This may

include a mark of zero for this coursework.

You should write the source code required for this assignment yourself. You must

not copy code from Internet. You must not copy or share source code with other

students. You must not work together on your solution. You can informally talk about

higher-level ideas but not to a level of detail that would allow you all to create the

same source code.

Remember, it is quite easy for experienced lecturers to spot plagiarism in source

code. We also have automated tools that can help us identify shared code, even with

modifications designed to hide copying. If you are having problems you should ask

questions rather than plagiarize. If you are not able to complete the exercise then you

should still submit your incomplete program as that will still get you some of the

marks for the parts you have done (but make sure your incomplete solution compiles

and partially runs!).

Reference

[1] https://en.wikipedia.org/wiki/Goofspiel

[2] http://46.101.185.98:8001/introduction.html

[3] M. Dror, G. Kendall, “Repeated Goofspiel: A Game of Pure Strategy”, IEEE

Transactions on Computational Intelligence and AI in Games. 2013.

https://www.graham-kendall.com/papers/dk2013.pdf


版权所有:留学生编程辅导网 2020 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp