遊戲利用一大小為n×n的表格(即表格有n行和n列),其中n為2至8間(包括2和8)的整數。 表格內每一單元格可由所在的行數和列數參照。

Slides:



Advertisements
Similar presentations
1/67 美和科技大學 美和科技大學 社會工作系 社會工作系. 2/67 社工系基礎學程規劃 ( 四技 ) 一上一下二上二下三上 校訂必修校訂必修 英文 I 中文閱讀與寫作 I 計算機概論 I 體育 服務與學習教育 I 英文 II 中文閱讀與寫作 II 計算機概論 II 體育 服務與學習教育 II.
Advertisements

§ 3 格林公式 · 曲线积分 与路线的无关性 在计算定积分时, 牛顿 - 莱布尼茨公式反映 了区间上的定积分与其端点上的原函数值之 间的联系 ; 本节中的格林公式则反映了平面 区域上的二重积分与其边界上的第二型曲线 积分之间的联系. 一、格林公式 二、曲线积分与路线的无关性.
公司為社團法人 股東之人數 林宜慧 陳冠蓉. 公司之意義  根據公司法第一條規定 : 「本法所 稱公司,謂以營利為目的,依照 本法組織、登記、成立之社團法 人。」
專業科目必修 管理學概論、化 妝品行銷與管理、 專題討論、藥妝 品學、流行設計、 專題講座、時尚 創意造型與實務 專業科目必修 化妝品法規、生 理學、化妝品原 料學、化妝品有 效性評估、時尚 化妝品調製與實 務、藝術指甲、 生物化學概論、 美容經絡學、校 外實習 專業科目必修 應用色彩學、化 妝品概論、時尚.
CSIM, PU C Language Introduction to the C Programming Language 重覆敘述 (for,while,break,continue) 適合重複性的計算或判斷.
聖若翰天主教小學 聖若翰天主教小學歡迎各位家長蒞臨 自行分配中一學位家長會 自行分配中一學位家長會.
認識食品標示 東吳大學衛生保健組製作.
第二十三章 皮肤附属器疾病 主讲 朱姗姗.
颞下颌关节常见病.
「健康飲食在校園」運動 2008小學校長高峰會 講題:健康飲食政策個案分享 講者:啟基學校-莫鳳儀校長 日期:二零零八年五月六日(星期二)
致理科技大學保險金融管理系 實習月開幕暨頒獎典禮
☆ 104學年度第1學期 活動藏寶圖 ☆ II III IV V 找到心方向-談壓力調適 陳佩雯諮商心理師
脊柱损伤固定搬运术 无锡市急救中心 林长春.
第一节 工业的区位选择 一、工业的主要区位因素 1、工业区位选择应注意的问题 2、影响工业布局的主要区位因素 3、不同工业部门的区位选择
XXX分析室组长竞聘 演讲人: XXX
結腸直腸腫瘤的認知.
經歷復活的愛 約翰福音廿一1-23.
Loops.
大学英语教学在学分制教学的比重 类别 文科 理科 大学英语 《课程要求》 总学时 周学时 总学分
郭詩韻老師 (浸信會呂明才小學音樂科科主任)
《政府采购非招标采购方式管理办法》的理解与适用
務要火熱服事主.
通識教育科 單元三 現代中國 主題1:中國的改革開放 課題(四)︰ 中國的綜合國力及外交
作业现场违章分析.
蒙福夫妻相处之道 经文:弗5:21-33.
基于课程标准的教学与评价: 政策执行讲评与后续要求
2. 戰後的經濟重建與復興 A. 經濟重建的步驟與措施 1.
好好學習 標點符號 (一) 保良局朱正賢小學上午校.
糖尿病肾病的护理 陈佳莉.
快遞貨物常見之偽禁藥簡介與 通關注意事項 報告人:臺北關快遞機放組快遞一課 于志安 1.
4. 聯合國在解決國際衝突中扮演的角色 C. 聯合國解決國際衝突的個案研究.
6.5滑坡 一、概述 1.什么是滑坡? 是斜坡的土体或岩体在重力作用下失去原有的稳定状态,沿着斜坡内某些滑动面(滑动带)作整体向下滑动的现象。
新陸書局股份有限公司 發行 第十九章 稅捐稽徵法 稅務法規-理論與應用 楊葉承、宋秀玲編著 稅捐稽徵程序.
破漏的囊袋.
民法第四章:權利主體 法人 楊智傑.
C语言程序设计 第八章 函数.
C语言程序设计 第十二章 位运算.
C语言程序设计 第五章 选择结构程序设计.
C语言程序设计 课程 第5章 数组 主讲:李祥 博士、副教授 单位:软件学院软件工程系.
循环结构又称为重复结构:用来处理需要重复处理的问题,它是程序中一种很重要的结构。
If … else 選擇結構 P27.
Chap 2 用C语言编写程序 2.1 在屏幕上显示 Hello World! 2.2 求华氏温度 100°F 对应的摄氏温度
Introduction to the C Programming Language
第四章 C 语言中的输入和输出.
四年級 中 文 科.
第5讲 结构化程序设计(Part II) 周水庚 2018年10月11日.
聖本篤堂 主日三分鐘 天主教教理重温 (94) (此簡報由聖本篤堂培育組製作).
C语言概述 第一章.
聖誕禮物 歌羅西書 2:6-7.
「傳心傳意 2003」 工商機構創意義工服務計劃比賽 計劃主題 : ( I ) 減少廢物 ( II ) 節省能源 ( III ) 愛護大自然
指標
Chap 5 函数 5.1 计算圆柱体积 5.2 使用函数编写程序 5.3 变量与函数.
C程序设计.
项目1 C程序设计起步 学习目标: 通过该项目你可以知道: C语言的用途。 C语言的基本符号和关键字。 C语言程序的结构及特点。
圣依纳爵堂 主日三分钟 天主教教理重温 (95) (此简报由香港圣本笃堂培育组制作).
第二章 类型、对象、运算符和表达式.
Introduction to the C Programming Language
第四章 C 语言中的输入和输出.
本节内容 函数嵌套调用的内存布局 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
依撒意亞先知書 第一依撒意亞 公元前 740 – 700 (1 – 39 章) 天主是宇宙主宰,揀選以民立約,可惜他們犯罪遭
基督是更美的祭物 希伯來書 9:1-10:18.
C/C++基礎程式設計班 陣列 講師:林業峻 CSIE, NTU 3/14, 2015.
明愛屯門馬登基金中學 中國語文及文化科 下一頁.
第三章 流程控制 程序的运行流程 选择结构语句 循环结构语句 主讲:李祥 时间:2015年10月.
經文 : 創世紀一章1~2,26~28 創世紀二章7,三章6~9 主講 : 周淑慧牧師
圣经概論 09.
Q1(a) 小偉打算編寫一個程序。該程序把兩個44的表內的數字相加。表3內的數字是由表1和表2應格子內的數字相加而成。例如:
函式庫補充資料 1.
隨機函數.
Presentation transcript:

遊戲利用一大小為n×n的表格(即表格有n行和n列),其中n為2至8間(包括2和8)的整數。 表格內每一單元格可由所在的行數和列數參照。 Q3 I 遊戲由二人對奕。 II 格數 遊戲利用一大小為n×n的表格(即表格有n行和n列),其中n為2至8間(包括2和8)的整數。 表格內每一單元格可由所在的行數和列數參照。 III 選擇 遊戲開始,電腦要求遊戲者輸入n後,便會建立一大小為n×n的表格。 表格內各單元格的值為介乎0至8間(包括0和8)的隨機整數。 例如,若玩者輸入的n值為3 ,則電腦會建立如下的3×3表格: IV 減一 對奕二人輪流選擇表格中的單元格。 當某人選擇了一單元格後,表格的內容會根據下列規則改變: 規則A :在任何情況下,已為0值的單元格,其值不會改變。 規則B :將被選取單元格的值減一。 規則C :將被選取單元格同一列的其他各單元格的值減一。row 規則D :將被選取單元格同一行的其他各單元格的值減一。column V 勝負 每次輪流選擇後,若符合以下三個條件中的任何一個,則該次玩者勝出,遊戲終結。 條件1 :任何一列的總和為0。 條件2 :任何一行的總和為0。 條件3 :任何一對角線的總和為0。 CS2000

例子 行C0 行C1 行C2 列R0 5 6 3 列R1 2 1 7 列R2 4 9 若玩者1 選擇了列R1、行C0的單元格, 則表格內各單元格的值將更新如下: 行C0 行C1 行C2 列R0 4 6 3 列R1 1 列R2 9 若玩者2 選擇了列R0、行C1的單元格, 則表格內各單元格的值將更新如下: 行C0 行C1 行C2 列R0 3 5 2 列R1 1 6 列R2 9 橫列row、 直行column 各減一 CS2000

#include <stdio.h> int square[8][8]; int turn, row_chosen, column_chosen, n, finish; // 1,2,3 1 2 完成 //(a) void init(){ int r,c; srand(time(NULL)); for(r=0; r<n; r++) for(c=0; c<n; c++) square[r][c] = rand()%9+1; } //(b) void getRowCol(){ printf("Please enter the 行row number: "); scanf("%d",&row_chosen); printf("Please enter the 列column number: "); scanf("%d",&column_chosen); } CS2000

printf("\nThe values of the cells in the table are >\n"); void show_square(){ int r,c; printf("\nThe values of the cells in the table are >\n"); for(r=0;r<n;r++){ for(c=0;c<n;c++) printf("%5d", square[r][c]); printf("\n"); } 行C0 行C1 行C2 列R0 4 6 3 列R1 1 列R2 9 1 //(d) void process(int row, int column){ int r,c; for(r=0; r<n; r++) if(square[r][column]>0) square[r][column]--; for(c=0; c<n; c++) if(square[row][c]>0 && c!=column) square[row][c]--; } 3 0,0 0,1 0,2 … 0,7 1,1 2,1 3,1 4,1 5,1 6,1 7,1 CS2000

for(c=0; c<n; c++) sum += square[r][c]; return sum; } 0,1,2 int sumRow (int r){ int c, sum=0; for(c=0; c<n; c++) sum += square[r][c]; return sum; } int sumColumn (int c){ int r, sum=0; for(r=0; r<n; r++) sum += square[r][c]; r=0 0,0 0,1 0,2 … 0,7 c=1 0,1 1,1 : 6,1 7,1 0,1,2 0,0 1,1 : 7,7 int sumDiagonal1(){ int pt, sum=0; for(pt=0; pt<n; pt++) sum += square[pt][pt]; return sum; } int sumDiagonal2(){ for(pt=0; pt<n; pt++) sum += square[pt][n-pt-1]; 0,7 1,6 : 6,1 7,0 CS2000

if(sumRow(r)==0) theEnd=1; for(c=0; c<n; c++) int endGame(){ int r, c, sum, theEnd=0; for(r=0; r<n; r++) if(sumRow(r)==0) theEnd=1; for(c=0; c<n; c++) if(sumColumn(c)==0) theEnd=1; if(sumDiagonal1()==0) theEnd=1; if(sumDiagonal2()==0) theEnd=1; return theEnd; } CS2000

printf("Enter the size of table: "); scanf("%d",&n); init(); main(){ printf("Enter the size of table: "); scanf("%d",&n); init(); printf("A %d X %d table is generated ",n,n); printf("and the values of the cell are >\n"); show_square(); turn=1; finish=0; printf("\nPlayer %d wins the game.\n", turn%2+1); } do{ turn++; printf("\nTurn > Player %d\n", turn%2+1); getRowCol(); process(row_chosen,column_chosen); show_square(); finish=endGame(); }while(!finish); CS2000