首页
网站开发
桌面应用
管理软件
微信开发
App开发
嵌入式软件
工具软件
数据采集与分析
其他
首页
>
> 详细
代做program、代写Java/Python程序设计
项目预算:
开发周期:
发布时间:
要求地区:
AI Algorithm for Reversed Reversi
March 14, 2024
Abstract
Reversed Reversi is a relatively simple board game. Players take turns placing chess
pieces on the board with their assigned color facing up. During a play, any pieces of the
opponent’s color that are in a straight line and bounded by the piece just placed and
another piece of the current player’s color are turned over to the current player’s color.
The object of the game is to have the fewest pieces turned to display your color when
the last playable empty square is filled. In this assignment, we use the default board of
size 8*8 board (administrators can modify the settings as needed). Students need to
implement the AI algorithm of Reversed Reversi according to the interface requirements
and submit it to the platform as required for the usability tests and round-robin.
1 Schedule
The Project is divided into two phases, each with one or two weeks for coding and improving
your current coding.
Evaluation Rule DeadLine
Phase 1 Score according to the number of test cases passed. 2024/03/29
Phase 2 Score according to the rank in round-robin. 2024/04/12
Coding_Score = Phase1+Phase2 (Parse1:Parse2=1:2)
2 How to Use The Platform
The Reversed Reversi platform is logged in with your student ID and password. The default
password is your student ID. At the first login, the platform will ask you to change your
password. After logging in successfully, you can see the page below.
Now, you can submit your own AI algorithm to the Reversed Reversi battle platform.
The platform will first do the usability tests after submission. The submission is successful
only if your AI algorithm passes the usability tests. After submitting your AI algorithm
successfully, you can click on “Auto Play” to challenge the players who rank ahead of you for
a PK. In order to avoid the first-hand advantage, the PK is played for 2 rounds with each
1
Figure 1: Home page
other starting the game first. In each round, if one of your wins, then his (or her) score is
increased by 5 points. If one of you loses, then his (or her) score is reduced by 5 points. If
a draw occurs, both of your scores remain unchanged.
The whole battle process will be recorded for each match. You can play back the game
you just experienced by playing and backing buttons, or you can download the game data as
a text file so that you can debug or review their code and algorithms. On the right side, you
can see the leader-boards, showing only the top ten and their points, as well as your ranking
and points. Click on “play” to see the live broadcast for the battle of the top-ten players.
If you want to evaluate your newly uploaded algorithm, please use the function of “playto”.
Just input the opponent’s Student ID you want to challenge and click “playto”, then you can
play a pre-PK with this opponent. This pre-PK will not affect your rankings.
Your ranking on the platform does not affect your final score. The platform
is just a tool to help you improve your algorithm.
After the Phase 2 DDL, the round-robin is started. Every students will play a PK with
each other students. The score is accumulated, and each student’s ranking is given according
to the final points.
3 Code Requirements
1. Version Details
2
(a) Python version: 3.7.6
(b) Numpy: 1.21.0
(c) Numba: 0.56.4
2. Code template:
1 import numpy as np
2 import random
3 import time
4
5 COLOR_BLACK=−1
6 COLOR_WHITE=1
7 COLOR_NONE=0
8 random.seed(0)
9 #don’t change the class name
10 class AI(object):
11 #chessboard_size, color, time_out passed from agent
12 def __init__(self, chessboard_size, color , time_out):
13 self .chessboard_size = chessboard_size
14 # You are white or black
15 self . color = color
16 # the max time you should use, your algorithm’s run
17 # time must not exceed the time limit.
18 self .time_out = time_out
19 # You need to add your decision to your candidate_list.
20 # The system will get the end of your candidate_list as your decision.
21 self . candidate_list = []
22
23 # The input is the current chessboard. Chessboard is a numpy array.
24 def go( self , chessboard ):
25 # Clear candidate_list, must do this step
26 self . candidate_list . clear ()
27 #============================================
28 #Write your algorithm here
29 #Here is the simplest sample:Random decision
30 idx = np.where(chessboard == COLOR_NONE)
31 idx = list (zip(idx [0], idx [1]))
32 #==============Find new pos==================
33 # Make sure that the position of your decision on the chess board is empty.
34 # If not, the system will return error.
35 # Add your decision into candidate_list, Records the chessboard
36 # You need to add all the positions which are valid
37 # candidate_list example: [(3,3),(4,4)]
38 # You need append your decision at the end of the candidate_list,
39 # candidate_list example: [(3,3),(4,4),(4,4)]
3
40 # we will pick the last element of the candidate_list
41 # as the position you choose.
42 # In above example, we will pick (4,4) as your decision.
43 # If there is no valid position , you must return an empty list.
3. Time measurement
1 start = time.time()
2 # Your algorithm
3 run_time = (time.time() − start)
4. Note: import os is not allowed to use.
5. The usage of memory cannot go more than 100M, the time to find a place to drop
cannot be longer than 5s, the whole battle cannot be longer than 180s.
4 Requirements for Each Phase
4.1 Phase 1
Usability tests: In this tests, we will use some simple board test cases where students need
to find the best place to drop. Only jobs that pass the usability test can pass. This is to
prevent students from submitting code including illegal operations, infinite loop or random
drop. The usability tests includes: the os package cannot be imported in the code file to
prevent the student code from affecting the platform.
A total of 10 test cases were prepared, each with 10 points, and the scores were determined
by the number of test cases passed.
4.2 Phase 2
Students who pass the usability tests can use the platform to improve the algorithm. The
specific competition rules of the platform are as follows: Students can submit their AI
algorithm to the Reversed Reversi battle platform (it is a successful submission if it passes
the usability tests). After a successful submission, you can click on “Auto Play” to challenge
the player who ranks ahead of you for a PK. In order to avoid the first-hand advantage, the
PK is played for 2 rounds with each one starting the game first. In each round, if one of
your wins, then his (or her) score is increased by 5 points. If one of you loses, then his (or
her) score is reduced by 5 points. If a draw occurs, both of your scores remain unchanged.
Students can submit and update their AI algorithm to the Reversed Reversi battle platform before Phase 2 DDL. After the Phase 2 DDL, the round-robin is started. Every student
will play a PK with each other. The score is accumulated and the ranking for each student
is given according to the final points.
4
软件开发、广告设计客服
QQ:99515681
邮箱:99515681@qq.com
工作时间:8:00-23:00
微信:codinghelp
热点项目
更多
代做ceng0013 design of a pro...
2024-11-13
代做mech4880 refrigeration a...
2024-11-13
代做mcd1350: media studies a...
2024-11-13
代写fint b338f (autumn 2024)...
2024-11-13
代做engd3000 design of tunab...
2024-11-13
代做n1611 financial economet...
2024-11-13
代做econ 2331: economic and ...
2024-11-13
代做cs770/870 assignment 8代...
2024-11-13
代写amath 481/581 autumn qua...
2024-11-13
代做ccc8013 the process of s...
2024-11-13
代写csit040 – modern comput...
2024-11-13
代写econ 2070: introduc2on t...
2024-11-13
代写cct260, project 2 person...
2024-11-13
热点标签
mktg2509
csci 2600
38170
lng302
csse3010
phas3226
77938
arch1162
engn4536/engn6536
acx5903
comp151101
phl245
cse12
comp9312
stat3016/6016
phas0038
comp2140
6qqmb312
xjco3011
rest0005
ematm0051
5qqmn219
lubs5062m
eee8155
cege0100
eap033
artd1109
mat246
etc3430
ecmm462
mis102
inft6800
ddes9903
comp6521
comp9517
comp3331/9331
comp4337
comp6008
comp9414
bu.231.790.81
man00150m
csb352h
math1041
eengm4100
isys1002
08
6057cem
mktg3504
mthm036
mtrx1701
mth3241
eeee3086
cmp-7038b
cmp-7000a
ints4010
econ2151
infs5710
fins5516
fin3309
fins5510
gsoe9340
math2007
math2036
soee5010
mark3088
infs3605
elec9714
comp2271
ma214
comp2211
infs3604
600426
sit254
acct3091
bbt405
msin0116
com107/com113
mark5826
sit120
comp9021
eco2101
eeen40700
cs253
ece3114
ecmm447
chns3000
math377
itd102
comp9444
comp(2041|9044)
econ0060
econ7230
mgt001371
ecs-323
cs6250
mgdi60012
mdia2012
comm221001
comm5000
ma1008
engl642
econ241
com333
math367
mis201
nbs-7041x
meek16104
econ2003
comm1190
mbas902
comp-1027
dpst1091
comp7315
eppd1033
m06
ee3025
msci231
bb113/bbs1063
fc709
comp3425
comp9417
econ42915
cb9101
math1102e
chme0017
fc307
mkt60104
5522usst
litr1-uc6201.200
ee1102
cosc2803
math39512
omp9727
int2067/int5051
bsb151
mgt253
fc021
babs2202
mis2002s
phya21
18-213
cege0012
mdia1002
math38032
mech5125
07
cisc102
mgx3110
cs240
11175
fin3020s
eco3420
ictten622
comp9727
cpt111
de114102d
mgm320h5s
bafi1019
math21112
efim20036
mn-3503
fins5568
110.807
bcpm000028
info6030
bma0092
bcpm0054
math20212
ce335
cs365
cenv6141
ftec5580
math2010
ec3450
comm1170
ecmt1010
csci-ua.0480-003
econ12-200
ib3960
ectb60h3f
cs247—assignment
tk3163
ics3u
ib3j80
comp20008
comp9334
eppd1063
acct2343
cct109
isys1055/3412
math350-real
math2014
eec180
stat141b
econ2101
msinm014/msing014/msing014b
fit2004
comp643
bu1002
cm2030
联系我们
- QQ: 9951568
© 2021
www.rj363.com
软件定制开发网!