嵌入式系統與實習期末專題 井字遊戲載入與使用 組員: 4970E037 黃繹銘 4970E012 袁竹緯 4970E105 郭撫龍.

Slides:



Advertisements
Similar presentations
While 迴圈 - 不知重複執行次數
Advertisements

CSIM, PU C Language Introduction to the C Programming Language 重覆敘述 (for,while,break,continue) 適合重複性的計算或判斷.
計算機程式語言實習課.
“八皇后”问题 崔萌萌 吕金华.
专题研讨课二: 数组在解决复杂问题中的作用
第4章 鏈結串列(Linked Lists) 4-1 動態記憶體配置-(6) 4-2 鏈結串列的基礎-(7)
Linked List Operations
C语言程序设计 第十二章 位运算.
C语言程序设计 课程 第5章 数组 主讲:李祥 博士、副教授 单位:软件学院软件工程系.
高级语言程序设计 主讲人:陈玉华.
循环结构又称为重复结构:用来处理需要重复处理的问题,它是程序中一种很重要的结构。
Do.For.While.正三角.倒正三角.倒九九乘法表
選擇排序法 通訊一甲 B 楊穎穆.
C的發展史 C程式初體驗 C程式設計基本注意事項 上機實習課程
Q101 在701 SDX Linux上的標準安裝與使用程序v2
If … else 選擇結構 P27.
Introduction to the C Programming Language
Introduction to the C Programming Language
QQ: 李祥 QQ: 欢迎多种方式的学习交流,祝大家学有所成.
计算概论 第十八讲 C语言高级编程 结构与习题课 北京大学信息学院.
C語言簡介 日期 : 2018/12/2.
第12章 從C到C++語言 12-1 C++語言的基礎 12-2 C++語言的輸出與輸入 12-3 C++語言的動態記憶體配置
程式撰寫流程.
C语言程序设计 李祥.
第5章 堆疊(Stacks) 5-1 堆疊的基礎 5-2 堆疊的表示法 5-3 堆疊的應用 - 運算式的計算與轉換
Introduction to the C Programming Language
6.4.1指针与二维数组 1、二维数组结构的分析 设有数组定义为:int a[3][4]; 则有: a表示数组在内存中的首地址。
1. 說明一個一維整數陣列passwd,下標範圍0至49 2. 在屏幕顯示 "Enter password"
C语言 程序设计基础与试验 刘新国、2012年秋.
第九章 文件 程序数据标准输入输出设备 程序数据文件 数据流和文件 文件的打开和关闭 文件读写函数.
字符串和字符数组 字符串的输入和输出 字符串的基本操作
計數式重複敘述 for 迴圈 P
第5讲 结构化程序设计(Part II) 周水庚 2018年10月11日.
第0章作业: 教材P12-练习与实践 1.写出用符号’*’输出描绘汉字”大”的流程图。
数组 梁春燕 华电信息管理教研室.
一、文件的基本概念 第十三章 文 件 所谓“文件”是指一组相关数据的有序集合。 这个数据集有一
C语言概述 第一章.
程式結構&語法.
C语言环境配置.
Main() { Dfas Asdfasf fasdfa } #include <stdio.h> void main( ) {
函式庫補充資料.
基本IO.
浙江长征职业技术学院—计算机与信息技术系—相方莉制作
Chap 5 函数 5.1 计算圆柱体积 5.2 使用函数编写程序 5.3 变量与函数.
第一章 C语言概述 教师:周芸.
C qsort.
第2章 认识C语言 教学要点 2. 1 项目二C语言程序识读 2 .2 项目三班级成绩排名 2 .3 知识链接 返回.
C程序设计.
資料結構與C++程式設計進階 遞迴(Recursion) 講師:林業峻 CSIE, NTU 6/ 17, 2010.
C++程式設計入門 變數與運算子 作者:黃建庭.
第一章 C语言概述 目录 什么是语言、程序 C语言的历史与发展 C语言的书写形式与程序结构 运行C语言的步骤与方法
第二章 类型、对象、运算符和表达式.
实验七 数 组 第21讲 C程序设计 Main() { int x,y; X=10; y=x*x+1;
本节内容 函数嵌套调用的内存布局 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
程序设计基础.
第七章  数 组.
程式設計--linear search 通訊一甲 B 楊穎穆.
第4章 鏈結串列(Linked Lists) 4-1 動態記憶體配置-(6) 4-2 鏈結串列的基礎-(7)
第1章 数据结构基础概论 本章主要介绍以下内容 数据结构研究的主要内容 数据结构中涉及的基本概念 算法的概念、描述方法以及评价标准.
程式設計--Quick Sort 通訊一甲 B 楊穎穆.
資料結構與C++程式設計進階 期末考 講師:林業峻 CSIE, NTU 7/ 15, 2010.
第6章 嵌入式软件开发基础.
第一次上機考參考答案 僅供參考,同學可自行再想更好的方法..
第三章 流程控制 程序的运行流程 选择结构语句 循环结构语句 主讲:李祥 时间:2015年10月.
陣列與檔案處理 授課:張朝麟 日期:2009/3/11.
C語言程式設計 老師:謝孟諺 助教:楊斯竣.
Introduction to the C Programming Language
函式庫補充資料 1.
C语言基础学习 从外行到入门.
隨機函數.
Presentation transcript:

嵌入式系統與實習期末專題 井字遊戲載入與使用 組員: 4970E037 黃繹銘 4970E012 袁竹緯 4970E105 郭撫龍

動機 相信每一個人都有童年,不管男女老少,都有過曾經純真的童年,但曾幾何時,這些天真美好通通都被這現實的社會所淹沒,為了讓每個人找回曾經的單純,我們設計了這個大家小時候都一定有玩過的小遊戲。

工作原理 arm-linux-gcc-o OX OX.c來進行編譯

編譯完後,回到minicom 按下Ctrl+A、Z開啟minicom功能表,接著輸入S傳送檔案 選著傳送的通訊協定,zmodem 上傳程式,傳送完後輸入任意鍵回到Embedded linux的terminal下 在minicom下輸入./OX執行程式 這是剛剛編譯好的程式,然後上傳到XSBase270開發板執行小遊戲

本程式是井行式圈叉連線的小遊戲,輸入1~9來應對井行上的數字,輸入的數字會轉變成O或X,當O或X為三個成線即達到連線獲勝,並顯示出O或X獲勝or平手,與是否在玩一次的選項,輸入n離開程式

程式碼 #include <stdio.h> #include <stdlib.h> int display1(char array1[]); //印出初始遊戲內容 int enter1(char e_array1[],char e1); //圈圈輸入 int enter2(char e_array2[],char e2); //叉叉輸入 int display2(char array2[]); //輸入後的遊戲內容 int change1(char c_array1[],char is_change1);//圈圈輸入修改 int change2(char c_array2[],char is_change2);//叉叉輸入修改 void win (char win_array[],int w_count); //判定勝負

main() { char array[9]= {'7' , '8', '9', '4', '5', '6', '1', '2', '3'}; //井字的九格 char ent1=0; //圈圈輸入的數字 char ent2=0; //叉叉輸入的數字 int count=0; //圈圈+叉叉所下的次數 display1(array); //印出遊戲初始內容 while(1) enter1(array,ent1); //呼叫函數進行圈圈輸入 count ++; display2(array); //列印出輸入修改後的數值 win (array,count); //判定勝負 enter2(array,ent2); //呼叫函數進行叉叉輸入 count++; display2(array); //列印出輸入修改後的數值 } system("PAUSE");

int display1(char array1[]) //印出初始遊戲內容 { int i; printf("===井字遊戲===\n"); printf("圈圈先下、叉叉後下。\n"); for(i=0;i<=8;i++) if((i+1)%3 == 0) printf("%c\n",array1[i]); if((i+1) == 3 || (i+1) == 6) printf("\n"); } else printf("%c | ",array1[i]); return 0;

int enter1(char e_array1[],char e1) //圈圈輸入 { int j; printf("\n請選擇一個數字:\n"); scanf(" %c",&e1); for(j=0;j<=8;j++) if(e_array1[j] == e1) change1(e_array1,e1); break; } else if(e_array1[j] != e1 && (j+1) == 9) printf("\n請重新輸入\n"); enter1(e_array1,e1); return 0;

int display2(char array2[]) //輸入後的遊戲內容 { int l; for(l=0;l<=8;l++) if((l+1)%3 == 0) printf("%c\n",array2[l]); if((l+1) == 3 || (l+1) == 6) printf("----------\n"); } else printf("%c | ",array2[l]); return 0;

int change1(char c_array1[],char is_change1) //圈圈輸入修改 { int k; for(k=0;k<=8;k++) if(c_array1[k] == is_change1) c_array1[k]= 'O'; } return 0;

void win (char win_array[],int w_count) //判定勝負 { char select; //select 選擇是否要再玩 if((win_array[0]=='O' && win_array[1]=='O' && win_array[2]=='O')||//判斷圈圈贏的八種情形 (win_array[3]=='O' && win_array[4]=='O' && win_array[5]=='O')|| (win_array[6]=='O' && win_array[7]=='O' && win_array[8]=='O')|| (win_array[0]=='O' && win_array[3]=='O' && win_array[6]=='O')|| (win_array[1]=='O' && win_array[4]=='O' && win_array[7]=='O')|| (win_array[2]=='O' && win_array[5]=='O' && win_array[8]=='O')|| (win_array[0]=='O' && win_array[4]=='O' && win_array[8]=='O')|| (win_array[2]=='O' && win_array[4]=='O' && win_array[6]=='O')) printf("圈圈獲勝\n"); printf("還要再玩一次嗎?(Y/N)\n"); scanf(" %c",&select); if(select == 'Y' || select == 'y') printf("==========================\n"); printf("\n"); main(); } else if(select == 'N' || select == 'n') printf("掰掰\n"); exit(1);

else //判斷平手的情形 { if(w_count == 9) printf("\n平手\n"); printf("還要再玩一次嗎?(Y/N)\n"); scanf(" %c",&select); if(select == 'Y' || select == 'y') printf("==========================\n"); printf("\n"); main(); } else if(select == 'N' || select == 'n') printf("掰掰\n"); exit(1);

討論 此作品非常具備環保概念,利用嵌入式裝置輕巧、易攜帶性、方便的特性,可以讓大家盡情的玩樂。 主要由pxa270開發版,Linux作業系統,Dev-C++撰寫