{"id":749,"date":"2025-05-21T15:56:11","date_gmt":"2025-05-21T07:56:11","guid":{"rendered":"https:\/\/garfieldgod.cn\/?p=749"},"modified":"2025-05-21T15:57:23","modified_gmt":"2025-05-21T07:57:23","slug":"from-final-fantasy-7-rebirth","status":"publish","type":"post","link":"https:\/\/garfieldgod.cn\/index.php\/749\/","title":{"rendered":"From Final Fantasy 7 Rebirth"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\"><br><strong>FFF7R<\/strong><\/h1>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>DownLoad<\/strong><\/h2>\n\n\n\n<p>GitHub: <a href=\"https:\/\/github.com\/GarfieldGod\/FFF7R\">https:\/\/github.com\/GarfieldGod\/FFF7R<\/a><\/p>\n\n\n\n<p>Gitee: <a href=\"https:\/\/gitee.com\/garfieldgod\/fff7-r\">https:\/\/gitee.com\/garfieldgod\/fff7-r<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><a href=\"https:\/\/gitee.com\/garfieldgod\/fff7-r#introduction\"><\/a><strong>Introduction<\/strong><\/h2>\n\n\n\n<p>Algorithmic programs replicate the card game mechanics [ From Final Fantasy 7 Rebirth ].<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><a href=\"https:\/\/gitee.com\/garfieldgod\/fff7-r#attention\"><\/a><strong>Attention<\/strong><\/h2>\n\n\n\n<p><s>The latest update mostly appears in the UnityProject branch.<\/s><\/p>\n\n\n\n<p>In order to better decouple the logical code from the Unity-specific code, the update of the Unity project has been temporarily suspended.<\/p>\n\n\n\n<p><strong>Now, the game and test cases can be executed in the console without relying on Unity.<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><a href=\"https:\/\/gitee.com\/garfieldgod\/fff7-r#test-case\"><\/a><strong>Test Case<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/gitee.com\/garfieldgod\/fff7-r#example\"><\/a>Example<\/h3>\n\n\n\n<p>For example, refer to&nbsp;<code>Native\/Console\/TestCases\/TestCase1.cs<\/code>&nbsp;for more information.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/gitee.com\/garfieldgod\/fff7-r#add-new-test-cases\"><\/a>Add new test cases<\/h3>\n\n\n\n<p>To add a new test case, you need to create a new class under&nbsp;<code>Native\/Console\/Entry\/TestCase<\/code>&nbsp;and inherit it from&nbsp;<code>TestCase<\/code>, for example,&nbsp;<code>NewTestCase : TestCase<\/code>.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Override the\u00a0<code>ChessPad InitChessPad()<\/code>\u00a0method to initialize the chessboard.<\/li>\n\n\n\n<li>Override the\u00a0<code>void InitSteps()<\/code>\u00a0method to add the steps for the test case.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/gitee.com\/garfieldgod\/fff7-r#init-the-chessboard\"><\/a>Init the chessboard<\/h3>\n\n\n\n<p>init the test chessboard at the start of the game by override the&nbsp;<code>ChessPad InitChessPad()<\/code>&nbsp;method.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/gitee.com\/garfieldgod\/fff7-r#add-test-steps\"><\/a>Add test steps<\/h3>\n\n\n\n<p><code>AddStep(InputerType inputerType, int index, string cardCode, List&lt;List&lt;int&gt;&gt; expectPad1, List&lt;List&lt;int&gt;&gt; expectPad2)<\/code><\/p>\n\n\n\n<p>You should use the&nbsp;<code>AddStep<\/code>&nbsp;method inside the&nbsp;<code>void InitSteps()<\/code>&nbsp;method to define the steps for your test case.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><a href=\"https:\/\/gitee.com\/garfieldgod\/fff7-r#parameters-explanation\"><\/a>Parameters Explanation:<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>inputerType<\/code>: Indicates who performed the input on the chessboard. It can be either\u00a0<code>InputerType.PLAYER<\/code>\u00a0or\u00a0<code>InputerType.RIVAL<\/code>.<\/li>\n\n\n\n<li><code>index<\/code>: Specifies which grid on the chessboard you want to input to. The range is based on the size of the chessboard.<\/li>\n\n\n\n<li><code>cardCode<\/code>: Specifies which card you want to input. For more information, see\u00a0<code>Json\/ChessProperties.json<\/code>.<\/li>\n\n\n\n<li><code>expectPad1<\/code>: Represents the expected grid levels on the chessboard. It should have the same meaning as the corresponding effects in FF7Rb.<\/li>\n\n\n\n<li><code>expectPad2<\/code>: Represents the expected card levels on the chessboard. It should have the same meaning as the corresponding effects in FF7Rb.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/gitee.com\/garfieldgod\/fff7-r#run\"><\/a>Run<\/h3>\n\n\n\n<p>Create an instance of your test case class and call the&nbsp;<code>Run()<\/code>&nbsp;method to execute the test steps you have added, in&nbsp;<code>Native\/Console\/Entry\/Main.cs<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/gitee.com\/garfieldgod\/fff7-r#notes\"><\/a>Notes<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ensure that the\u00a0<code>cardCode<\/code>\u00a0matches one of the valid codes defined in\u00a0<code>Json\/ChessProperties.json<\/code>.<\/li>\n\n\n\n<li>Ensure that your input is valid. Note that if the\u00a0<code>InputerType<\/code>\u00a0is\u00a0<code>RIVAL<\/code>, the\u00a0<code>GridEffect<\/code>\u00a0and\u00a0<code>CardEffect<\/code>\u00a0caused by the input will be reversed.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><a href=\"https:\/\/gitee.com\/garfieldgod\/fff7-r#console-game\"><\/a><strong>Console Game<\/strong><\/h2>\n\n\n\n<p>It is not recommended to run the console game, as it is currently not being maintained.<\/p>\n\n\n\n<p>Try it from&nbsp;<code>Native\/Console\/Entry\/Main.cs<\/code>&nbsp;using the&nbsp;<code>StartConsoleGame()<\/code>&nbsp;method.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>FFF7R DownLoad GitHub: https:\/\/github.com\/GarfieldGod\/F [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":750,"comment_status":"open","ping_status":"open","sticky":false,"template":"wp-custom-template-god%e7%9a%84%e9%a1%b9%e7%9b%ae","format":"standard","meta":{"_eb_attr":"","footnotes":""},"categories":[9,11,42],"tags":[],"class_list":["post-749","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-9","category-11","category-42"],"_links":{"self":[{"href":"https:\/\/garfieldgod.cn\/index.php\/wp-json\/wp\/v2\/posts\/749","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/garfieldgod.cn\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/garfieldgod.cn\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/garfieldgod.cn\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/garfieldgod.cn\/index.php\/wp-json\/wp\/v2\/comments?post=749"}],"version-history":[{"count":1,"href":"https:\/\/garfieldgod.cn\/index.php\/wp-json\/wp\/v2\/posts\/749\/revisions"}],"predecessor-version":[{"id":751,"href":"https:\/\/garfieldgod.cn\/index.php\/wp-json\/wp\/v2\/posts\/749\/revisions\/751"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/garfieldgod.cn\/index.php\/wp-json\/wp\/v2\/media\/750"}],"wp:attachment":[{"href":"https:\/\/garfieldgod.cn\/index.php\/wp-json\/wp\/v2\/media?parent=749"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/garfieldgod.cn\/index.php\/wp-json\/wp\/v2\/categories?post=749"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/garfieldgod.cn\/index.php\/wp-json\/wp\/v2\/tags?post=749"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}