99爱在线视频这里只有精品_窝窝午夜看片成人精品_日韩精品久久久毛片一区二区_亚洲一区二区久久

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

CS4386代寫、代做Java語言程序
CS4386代寫、代做Java語言程序

時間:2025-02-19  來源:合肥網hfw.cc  作者:hfw.cc 我要糾錯



CS4386 AI Game Programming (Semester B, 2024-2025)
Assignment 1:
Trap Gomoku
Set by CS4386 TA Team
Tournament1 Deadline:
Friday 28 February 2025 23:59
Tournament2 Deadline:
Wednesday 12 March 2025 23:59
This assignment is worth
15 % (fifteen percent)
of the overall course mark
Overview
1 Introduction
2 Marking Scheme
3 The Trap Gomoku Game
4 Online Judgment Platform
5 Requirements
6 Q&A
7 Academic Honesty
Appendix: Sample submission code
1 Introduction
Your task is to develop an AI program capable of playing the Trap Gomoku game.
You may implement your AI using algorithms covered in class or explore other
strategies. The implementation can be done in Python, Java, C, or C++.
To test and evaluate your AI, you will submit your code to an online AI game
judgment platform. The platform provides three preset AI opponents of varying
difficulty, allowing you to test your AI an unlimited number of times by
competing against them. Testing and refining your AI strategy against the three
preset AIs on the platform will help you improve your AI before competing in the
tournaments, where each participant will compete against every other
participant.
2 Marking Scheme
Item Due Mark
Tournament1 (students vs. students)
Tournament2 (students vs. students)
Students vs. Preset AIs
Report
28th Feb 23:59
12th Mar 23:59
12th Mar 23:59
12th Mar 23:59
20
20
30
30
 Total 100
Your final grade will be based on the following aspects:
● Whether you beat our three preset AIs. If you beat all three preset AIs, you
will get 30 points (10 points for each AI). The battle against each preset AI
is divided into two games: first player and second player. If you win only
one game, you will get 5 points.
● Your ranking in tournaments. We will schedule two tournaments, where
each participant will compete against every other participant once. After
the tournament, you will see where your AI stands in the rankings. These
rankings are an integral part of your overall assessment.
● In addition to the score from your AI performance, the quality of your
report will also affect the final score. Your report should explain your
1
approach, justify algorithmic choices, and analyze the strengths and
weaknesses of your AI.
3 The Trap Gomoku Game
The Trap Gomoku Game is a strategic board game where two artificial
intelligence (AI) players compete by aligning five of their pieces consecutively in
a straight line (horizontally, vertically, or diagonally) on a 15x15 grid. In addition,
at the beginning of the game, the system will randomly generate 10-15 trap
pieces and make them public to players. If the chess piece you place lands on a
trap, it will devour the piece, and the trap will remain.
Each player takes turns placing their pieces, aiming to align five consecutively in
a straight line. The "X" represents the trap, and the black and gray circles
represent Player 1 and Player 2's pieces, respectively (shown in Figure 1). The
game ends when the grid is filled (no more than 225 moves) and the player who
creates five of their pieces consecutively in a straight line on the grid will be the
winner. Special Case: If the board is full and there is still no line of 5 pieces. Then
the side with the longest connection is judged to be the winner (for example, if
the white chess piece has the longest 4 pieces in a line, and the black chess piece
has the longest 3 pieces in a line, then the white piece wins), otherwise, it is a
draw. You are encouraged to come up with your own strategies to make your AI
make better decisions at each turn. We are excited to see your brilliant ideas and
how they challenge each other!
2
Figure 1. Two instances of the game board
4 Online Judgment Platform
Website URL: http://cs4386.cs.cityu.edu.hk/user/login/
This URL can only be accessed within the CityU campus network. If you want to
use this website outside the campus, please use CityU VPN first.
Register and log in
● You should register using your CityU email.
● You should register using your real name.
● Upon registration, you will be assigned a user ID. Only your ID will be
shown in the ranking.
Submit your code: play against preset AI
Click "Game" in the left column, and then you will see the Trap Gomoku game. In
the game description, there are time and memory constraints for each step.
Please note that exceeding the time or memory limit will result in an automatic
loss. Click "Submit Here" to go to the submission page. The platform provides a
sample algorithm: a random decision AI. You can use this as a reference to
understand the input-output format and game mechanics before implementing
your own strategy. The system will only retain your latest submission, so please
ensure that your last submitted code runs correctly. If you have iterated through
3
multiple versions, it is recommended that you save them locally to avoid losing
previous work.
We have set up three predetermined AI opponents for you to challenge:
"Offensive," "Defensive," and "Random," designated by user IDs 1, 2, and 3,
respectively. You can select the AI you want to compete against by choosing its
ID.
After submitting your code, you will not receive the result immediately. You
need to click refresh to view your game results. To ensure fairness and account
for any advantages or disadvantages of moving first, each AI pairing will consist
of two matches:
● One match where your own AI moves first.
● One match where your opponent moves first.
The results of these matches, along with time and memory usage, will be
updated after each submission.
Check log
You can download the log to view the state of the chessboard at each step after
getting the results. We also provide a visual interface that displays the placement
of each move step by step, making it easier for you to analyze and review your
games.
Tournament and Ranking
The tournament itself takes place the day following the deadline. On this
"competition day," the server will be offline. Your AI's performance will be
evaluated based on its win rate across the matches (If there is a draw, it will not
count as a win). When two participants' AIs have identical win rates, the AI that
used less time to achieve its wins will receive a higher ranking. After the
tournament, each participant can view the match logs of all their games against
other players. Once everyone has reviewed the logs and confirmed no issues, we
will announce the tournament rankings through the ranking page.
4
5 Requirements
Format of the code:
● The answer must include the play_games function as the interface for
online judgment, which is defined as,
C/C++: void play_games(int step, int rival_decision1,int rival_decision2);
Python: play_games(step:int,rival_decision_x:int,rival_decision_y:int)->None
Java: public static void play_games(int step, int rival_decision_x, int
rival_decision_y)->None
● Step indicates the move number in the current game. It starts from
Player A, step=1, then turns to player B, step=2, and then turns to
player A, step=3, …, end of the game.
● That is, player A's step is always odd, and player B's step is even.
Step=0 represents an empty checkerboard for initialization.
● rival_decision_x,y are the opponent’s decisions made in the
previous step, which can help you make better responses.
● You can read the board and save the decision through the read_ckbd and
save_decision functions. MAX_M and MAX_N are the size of the board
(equal to 15 in this game). They are defined in battle_base.
● C/C++: void read_ckbd(int step, int array[MAX_M][MAX_N]);
void save_decision(int x, int y);
● Python: read_ckbd(step:int)->List[List[int]]
save_decision(x:int, y:int)->None
● Java: battle_base.read_ckbd(int step) -> int [MAX_M][MAX_N];
battle_base.save_decision(int x, int y);
● In the array/list returned by read_ckbd, 0 represents the unplayed
area and you can make a decision here. 1 represents player A’s
decisions, 2 represents player B’s decisions, and 3 represents the
traps.
● Note that you must save your decision by calling save_decision in
the play_games function, don’t return anything. Do not try to
rewrite those functions, you just call them. You can read the
previous step of chess before the current step.
● The main function is not allowed in the answer.
● You can use print/printf/cout to print logs to help you debug. They will
be printed in the battle_log.txt.
5
● If you use Java, JVM will occupy memory, resulting in higher memory
usage.
Submission requirements:
● For Python users: python base modules (in sys.modules.keys()): functools,
random, sorted, heapq, collections, etc. are allowed. You are not allowed
to use other packages like numpy, sklearn, etc.
● For C/C++ users: most header files are allowed, even including
<bits/stdc++.h>, <iostream> and <algorithm>.
● For Java users: You cannot use external third-party libraries or other
non-standard Java packages that are not included in the JDK.
● You cannot use some system calls such as change directory, list file,
create file, remove file, etc.
● For all AI programs, we limit the running time and the total memory
usage, which you can find on the website.
● Violation of any of the above will raise an error and cause the game to be
lost.
Requirement for the report:
You should write a report to explain your AI. Describe your algorithm as clearly
as possible. Feel free to use examples and add screenshots or other figures if
they can help better illustrate your method. If you adopt some part of your code
from somewhere, you must fully acknowledge this and provide a reference to
where you obtained the code. You must declare how much of your submitted
code is obtained from someone/somewhere else and how much is indeed
written by you. At the end of your report, include the related references from
where you have gathered useful information in working on your assignment.
You need to submit your source code to the online judgment system and submit
your report to Canvas.
Name your files according to the following format, where XXXXXXXX is the 8
digits of your student ID number:
CS4386-2425B-A1-XXXXXXXX-Report.pdf (should be in PDF format)
6 Q&A
We will also create a discussion on Canvas. You can ask questions there; the TAs
will check it daily and answer your questions as soon as possible.
6
7 Academic Honesty
We have repeatedly emphasized the importance of academic honesty. Review
the website https://www.cityu.edu.hk/pvdp/ah/index.htm on academic
honesty if needed.
This is an individual assignment so each of you should write your own code. You
should never send any part of your code to your classmate “for his/her
reference” or copy any part of the code from your classmate. You should
obviously understand the code that you submit, and be able to explain your code
when asked.
Make sure that you do not commit any academic dishonest behaviors while
working on this assignment!
7
Appendix: Sample submission code
Python:
import random
from battle_base import read_ckbd, save_decision,MAX_M,MAX_N
def play_games(step:int,rival_decision_x:int,rival_decision_y:int)->None:
 states = read_ckbd(step-1)
 legal_decision = []
 for m in range(MAX_M):
 for n in range(MAX_N):
 if states[m][n]==0: # 0 is unplayed area
 legal_decision.append((m, n))
 # make your decision here
 decision = random.choice(legal_decision)
 save_decision(decision[0], decision[1])
C:
#include <stdio.h>
#include <stdlib.h>
#include "battle_base.h"
#define max(a,b) ((a) >= (b) ? (a) : (b))
void play_games(int step, int rival_decision_x,int rival_decision_y) {
 int states[MAX_M][MAX_N]; // Assuming MAX_M and MAX_N are defined board
size
 read_ckbd(step-1, states);
 int legal_decision[MAX_M*MAX_N][2];
 int legal_count = 0;
 for (int m = 0; m < MAX_M; m++) {
 for (int n = 0; n < MAX_N; n++) {
 if (states[m][n] == 0) // 0 is unplayed area
 {
 {
 legal_decision[legal_count][0] = m;
 legal_decision[legal_count][1] = n;
 legal_count++;
 }
 }
 }
 }
 // Make your decision here
 int random_index = rand() % legal_count;
 int* decision = legal_decision[random_index]; // Example of random
strategy
 save_decision(decision[0], decision[1]);
}
8
C++:
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include "battle_base.h"
void play_games(int step, int rival_decision1,int rival_decision2) {
 int states[MAX_M][MAX_N]; // Assuming MAX_M and MAX_N are defined board
size
 int states_count = 0;
 read_ckbd(step-1, states);
 int legal_decision[MAX_M*MAX_N][2];
 int legal_count = 0;
 for (int m = 0; m < MAX_M; m++) {
 for (int n = 0; n < MAX_N; n++) {
 if (states[m][n] == 0) // 0 is unplayed area
 {
 {
 legal_decision[legal_count][0] = m;
 legal_decision[legal_count][1] = n;
 legal_count++;
 }
 }
 }
 }
 // Make your decision here
 int random_index = rand() % legal_count;
 int* decision = legal_decision[random_index]; // Example of random
strategy
 save_decision(decision[0], decision[1]);
}
Java:
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class play_fun {// Do not change the class name
 static final int MAX_M = battle_base.MAX_M;
 static final int MAX_N = battle_base.MAX_N;
 public static void play_games(int step, int rival_decision_x, int
rival_decision_y) {
 int[][] states = battle_base.read_ckbd(step-1);
 List<int[]> legalDecision = new ArrayList<>();
 for (int m = 0; m < battle_base.MAX_M; m++) {
 for (int n = 0; n < battle_base.MAX_N; n++) {
 if (states[m][n] == 0) { // 0 is unplayed area
 legalDecision.add(new int[]{m, n});
9
 }
 }
 }
 // Make your decision here
 Random random = new Random();
 int[] decision =
legalDecision.get(random.nextInt(legalDecision.size()));
 battle_base.save_decision(decision[0], decision[1]);
 }
}





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

掃一掃在手機打開當前頁
  • 上一篇:小花分期客戶投訴客服電話-小花分期24小時人工服務熱線電話
  • 下一篇:橙多多全國客服電話-橙多多人工客服服務電話熱線
  • 無相關信息
    合肥生活資訊

    合肥圖文信息
    急尋熱仿真分析?代做熱仿真服務+熱設計優化
    急尋熱仿真分析?代做熱仿真服務+熱設計優化
    出評 開團工具
    出評 開團工具
    挖掘機濾芯提升發動機性能
    挖掘機濾芯提升發動機性能
    海信羅馬假日洗衣機亮相AWE  復古美學與現代科技完美結合
    海信羅馬假日洗衣機亮相AWE 復古美學與現代
    合肥機場巴士4號線
    合肥機場巴士4號線
    合肥機場巴士3號線
    合肥機場巴士3號線
    合肥機場巴士2號線
    合肥機場巴士2號線
    合肥機場巴士1號線
    合肥機場巴士1號線
  • 短信驗證碼 豆包 幣安下載 AI生圖 目錄網

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

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

    99爱在线视频这里只有精品_窝窝午夜看片成人精品_日韩精品久久久毛片一区二区_亚洲一区二区久久

          9000px;">

                亚洲同性同志一二三专区| 26uuu另类欧美| 久久99九九99精品| 蜜桃精品视频在线| 国内精品国产三级国产a久久| 精一区二区三区| av激情亚洲男人天堂| 欧美在线短视频| 久久这里只有精品首页| 亚洲人成在线观看一区二区| 久久精品国产精品青草| 99久久精品国产导航| 欧美一区二区三区的| 成人免费在线播放视频| 狠狠色丁香婷婷综合| av在线播放一区二区三区| 欧美久久久久免费| 国产精品美女久久久久久久久久久| 亚洲毛片av在线| 粉嫩av一区二区三区| 日韩欧美精品在线| 婷婷开心激情综合| 99久久精品国产毛片| 久久久午夜电影| 蜜臀精品久久久久久蜜臀| 一本一本大道香蕉久在线精品| 精品国产精品一区二区夜夜嗨| 亚洲国产sm捆绑调教视频| 夫妻av一区二区| 久久精品人人做人人综合| 国产一区二区成人久久免费影院| 欧美亚洲国产一区二区三区| 亚洲欧美日韩中文播放| 成人综合婷婷国产精品久久蜜臀 | 91久久精品一区二区| 国产视频在线观看一区二区三区| 99视频精品全部免费在线| 精品美女被调教视频大全网站| 亚洲美女屁股眼交3| 成人少妇影院yyyy| 国产女同性恋一区二区| 久久精品99国产国产精| 久久蜜桃av一区精品变态类天堂| 激情欧美一区二区| 欧美在线你懂得| 亚洲一区二区精品视频| 91丨九色丨尤物| 懂色一区二区三区免费观看| 国产又黄又大久久| 国产精品99久久久久久宅男| 国产一区二区免费视频| 精品在线免费观看| 美脚の诱脚舐め脚责91| 久久精品国产亚洲aⅴ| 亚洲三级电影全部在线观看高清| 国产精品看片你懂得| 久久久噜噜噜久久人人看| 国产欧美日产一区| 一区二区三区四区乱视频| 一个色在线综合| 日韩激情av在线| 狠狠色丁香婷综合久久| 色欧美88888久久久久久影院| 日韩欧美一级二级三级| 国产女人水真多18毛片18精品视频| 国产亚洲一本大道中文在线| 亚洲国产精品久久人人爱蜜臀| 亚洲欧美国产三级| 美国毛片一区二区三区| 国产福利一区二区三区在线视频| 国产91丝袜在线播放| 8v天堂国产在线一区二区| 国产欧美日韩亚州综合| 一区二区三区不卡视频| 亚洲日本丝袜连裤袜办公室| 日韩影院精彩在线| 国产麻豆精品在线| 欧美日韩精品二区第二页| 综合中文字幕亚洲| 国产精品888| 日韩视频一区二区三区在线播放| 亚洲综合色成人| 91精品国产一区二区三区| 26uuu精品一区二区| 青青草精品视频| 欧美三级欧美一级| 亚洲欧美在线视频| 国产乱码精品一区二区三区av| 日韩一区二区在线看| 亚洲欧美日韩国产综合在线 | 成人午夜在线播放| 日本韩国精品在线| 久久久精品国产免费观看同学| 亚洲国产精品久久久久婷婷884| 国产+成+人+亚洲欧洲自线| 欧美一区二区精美| 一区二区三区免费网站| 99国产精品视频免费观看| 日韩欧美国产精品| 久热成人在线视频| 日本一区二区不卡视频| 国产suv一区二区三区88区| 久久久高清一区二区三区| 麻豆成人久久精品二区三区红| 91麻豆精品91久久久久久清纯| 久久99精品国产麻豆不卡| 欧美亚洲禁片免费| 免费人成黄页网站在线一区二区| 欧美一级黄色片| 国产一区91精品张津瑜| 国产日产欧产精品推荐色 | 亚洲一区二区三区四区在线观看| 欧美色中文字幕| 精品一区二区三区在线视频| 日本丶国产丶欧美色综合| 日韩国产高清影视| 亚洲一区av在线| 国产精品久久久爽爽爽麻豆色哟哟| 51精品久久久久久久蜜臀| 欧美视频一区二区三区在线观看 | 亚洲五月六月丁香激情| 成人涩涩免费视频| 亚洲成a人v欧美综合天堂下载| 欧美性xxxxxxxx| 日日夜夜精品视频天天综合网| 欧美视频精品在线| 久久99国产乱子伦精品免费| 中文字幕精品一区二区精品绿巨人| 91麻豆国产香蕉久久精品| 国产精品国产三级国产普通话三级| www.亚洲在线| 精品在线你懂的| 天堂蜜桃一区二区三区 | 在线精品视频免费播放| 国产一区二区三区免费在线观看| 一区二区中文字幕在线| 在线播放中文字幕一区| 亚洲精品成a人| 国产欧美日本一区二区三区| 欧美日韩一区中文字幕| 激情五月婷婷综合网| 成人18视频日本| 欧美裸体一区二区三区| 国产精品久久久久久久午夜片| 亚洲一级二级在线| 成人免费高清在线观看| 精品国产一区二区精华| 一区二区三区日本| 国产一区二区看久久| 国模冰冰炮一区二区| 国产一区福利在线| 91丨porny丨蝌蚪视频| 国产精选一区二区三区 | 国产在线精品视频| 免费久久99精品国产| 免费在线观看一区| 亚洲成av人在线观看| 日本成人超碰在线观看| 亚洲综合色区另类av| 一个色在线综合| 国产精品美女久久久久高潮| 欧美大片日本大片免费观看| 精品国内片67194| 欧美一级片在线| 国产亚洲视频系列| 国产午夜精品一区二区| 久久影院电视剧免费观看| 国产精品久久久久天堂| 国产日韩一级二级三级| 亚洲成在人线免费| 日韩经典一区二区| www.亚洲激情.com| 欧美精品久久久久久久多人混战 | 日韩女优视频免费观看| 久久精品亚洲一区二区三区浴池| 国产精品无码永久免费888| 一区二区日韩av| 天天影视色香欲综合网老头| 日韩精品亚洲专区| 国产一区二三区好的| 欧美一区二区三区四区在线观看| 日韩欧美高清dvd碟片| 最新中文字幕一区二区三区 | 亚洲欧美偷拍另类a∨色屁股| 亚洲国产综合人成综合网站| 麻豆成人91精品二区三区| 国产成a人亚洲精| 精品三级在线看| 久久先锋影音av鲁色资源| 蜜臀av在线播放一区二区三区| 国产精品1区二区.| 欧美美女一区二区在线观看| 国产精品免费视频一区| 午夜视频久久久久久| 成人精品gif动图一区| 91精品福利视频| 久久久午夜精品| 日产欧产美韩系列久久99| 欧美色图片你懂的| 亚洲国产精品人人做人人爽|