亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? main.c

?? 基于arm平臺(tái)的五子棋
?? C
字號(hào):
#include"..\ucos-ii\includes.h"               /* uC/OS interface */
#include "..\ucos-ii\add\osaddition.h"
#include "..\inc\drv.h"

#include <string.h>

#pragma import(__use_no_semihosting_swi)  // ensure no functions that use semihosting 
#define WIDTH 20

///******************任務(wù)定義***************///
OS_STK Main_Stack[STACKSIZE*8]={0, };   //Main_Test_Task堆棧
void Main_Task(void *Id);             //Main_Test_Task
#define Main_Task_Prio     12

OS_STK Control_Stack[STACKSIZE*8]={0, };   //Main_Test_Task堆棧
void Control_Task(void *Id);             //Main_Test_Task
#define Control_Task_Prio     13

/**************已經(jīng)定義的OS任務(wù)*************
tcp監(jiān)控任務(wù)		11
以太網(wǎng)物理層監(jiān)控任務(wù)	8
觸摸屏任務(wù)		9
鍵盤任務(wù)		10
lcd刷新任務(wù)		59
系統(tǒng)任務(wù)		1
*****************************************************/

int X=5;
int Y=5;
int flag=0;
int Chess[10][10];
int count;
int blackorwhite=1;
int iswin=0;
///*****************事件定義*****************///
OS_EVENT *Nand_Rw_Sem;                   //Nand_Flash讀寫控制權(quán)旗語(yǔ)
//and you can use it as folloeing:
//    Nand_Rw_Sem=OSSemCreate(1);        //創(chuàng)建Nand-Flash讀寫控制權(quán)旗語(yǔ),初值為1滿足互斥條件//
//    OSSemPend(Nand_Rw_Sem,0,&err);
//    OSSemPost(Nand_Rw_Sem);

OS_EVENT *Uart_Rw_Sem;                   //Uart讀寫控制權(quán)旗語(yǔ)
//and you can use it as folloeing:
//    Uart_Rw_Sem=OSSemCreate(1);        //創(chuàng)建Uart讀寫控制權(quán)旗語(yǔ),初值為1滿足互斥條件//
//    OSSemPend(Uart_Rw_Sem,0,&err);
//    OSSemPost(Uart_Rw_Sem);
//////////////////////////////////////////////////////////

void recordinit() //數(shù)組的初始化
{int i,j;
 for(i=0;i<10;i++){
  for(j=0;j<10;j++){
    Chess[i][j]=0;
   }
 }
}

int judge(int blackorwhite)//交換權(quán)限
{
  if(blackorwhite==1) return 2;
  else return 1;
}
int borw(int  blackorwhite)//判斷是白方還是黑方
{
 int chess;
  if(blackorwhite==1)
         {chess=1;}  //blackorwrithe為真的時(shí)候?yàn)楹诜?      else if(blackorwhite==2)
         {chess=2;}  //blackorwrithe為假的時(shí)候?yàn)榘追? return chess;
 
}
void record(int x,int y,int blackorwhite)//對(duì)數(shù)組進(jìn)行記錄
{
 int chess;
 chess=borw(blackorwhite);
 Chess[x][y]=chess;
}

int scan(int x,int y,int blackorwrithe){ //對(duì)棋盤對(duì)應(yīng)的二維向量進(jìn)行掃描并判斷輸2贏1
         int chess;
         chess=borw(blackorwrithe);
         while(Chess[x][y]==chess){
             count++;
             x--;
             if(x<0) break;


         }
         if(count>=5){
             //win
             count=0;
             //掃描在同一x上有無可能組成連續(xù)的5個(gè)棋子1
             return 1;

         }else{ //掃描在同一x上有無可能組成連續(xù)的5個(gè)棋子
             x=X+1;
             while(Chess[x][y]==chess){
                 count++;
                 x++;
                 if(x>9) break;

             }
         if(count>=5){
             //掃描在同一x上有無可能組成連續(xù)的5個(gè)棋子2
             count=0;
             return 1;
         }else{  //掃描在同一y上有無可能組成連續(xù)的5個(gè)棋子
             count=0;
             x=X;
             while(Chess[x][y]==chess){
                 y++; 
                 count++;
                 if(y>9) break;
             }
             if(count>=5){
                 //掃描在同一y上有無可能組成連續(xù)的5個(gè)棋子1;
                 count=0;
                 return 1;
             }else{
                 y=Y-1;
                 while(Chess[x][y]==chess){
                  y--; 
 		  count++;
                  if(y<0) break;
              }
             if(count>=5){
                 //win
                 //掃描在同一y上有無可能組成連續(xù)的5個(gè)棋子2;
                 count=0;
                 return 1;
             }else{  //掃描在同一(x-1,y-1)(x+1,y+1)上有無可能組成連續(xù)的5個(gè)棋子
                 count=0;
                 x=X;
                 y=Y;
                 while(Chess[x][y]==chess){
                     x--; y--; count++;
                     if(x<0&&y<0) break;
                 }
                 if(count>=5){
                     //win
                     //掃描在同一(x-1,y-1)(x+1,y+1)上有無可能組成連續(xù)的5個(gè)棋子1;
                     count=0;
                     return 1;
                 }else{
                     x=X+1;
                     y=Y+1;
                     while(Chess[x][y]==chess){
                      x++; y++; count++;
                      if(x>9&&y>9) break;
                    }

                 }
                 if(count>=5){
                     //win
                     //掃描在同一(x-1,y-1)(x+1,y+1)上有無可能組成連續(xù)的5個(gè)棋子2;
                     count=0;
                     return 1;
                 }else{  //掃描在同一(x-1,y+1)(x+1,y-1)上有無可能組成連續(xù)的5個(gè)棋子
                     count=0;
                     x=X;
                     y=Y;
                     while(Chess[x][y]==chess){
                     x--;
                     y++; 
                     count++;
                     if(x<0&&y>9) break;
                     }
                     if(count>=5){
                     //win
                     //掃描在同一(x-1,y+1)(x+1,y-1)上有無可能組成連續(xù)的5個(gè)棋子1;
                     count=0;
                     return 1;
                    }else{
                      x=X+1;
                       y=Y-1;
                       while(Chess[x][y]==chess){
                        x++; y--; count++;
                        if(x>9&&y<0) break;
                       }

                     }
                      if(count>=5){
                        //win
                        //掃描在同一(x-1,y+1)(x+1,y-1)上有無可能組成連續(xù)的5個(gè)棋子2;
                        count=0;
                        return 1;
                      }else{
                          count=0;
                          return 2;
                      }


                 }

             }
             }
         }
         }
     }


void initOSGUI()	//初始化操作系統(tǒng)的圖形界面
{
	initOSMessage();
	initOSList();
	initOSDC();
	initOSCtrl();
	initOSFile();
}
/////////////////////////////////////////////////////
//                  Main function.                //
////////////////////////////////////////////////////

int main(void)
{
	ARMTargetInit(); //開發(fā)板初始化
	OSInit(); //操作系統(tǒng)初始化      
	uHALr_ResetMMU();//復(fù)位MMU
	LCD_Init();             //初始化LCD模塊
	LCD_printf("LCD initialization is OK\n");//向液晶屏輸出數(shù)據(jù)
	LCD_printf("320 x 240  Text Mode\n");
	initOSGUI();//初始化圖形界面
	LoadFont();//調(diào)Unicode字庫(kù)
	LoadConfigSys();//使用config.sys文件配置系統(tǒng)設(shè)置
	LCD_printf("Create task on uCOS-II...\n");
	
	OSTaskCreate(Main_Task,  (void *)0,  (OS_STK *)&Main_Stack[STACKSIZE*8-1],  Main_Task_Prio);// 創(chuàng)建系統(tǒng)任務(wù)
   // OSTaskCreate(Control_Task,  (void *)0,  (OS_STK *)&Control_Stack[STACKSIZE*8-1],  Control_Task_Prio);// 創(chuàng)建系統(tǒng)任務(wù)
	OSAddTask_Init();//創(chuàng)建系統(tǒng)附加任務(wù)
	LCD_printf("Starting uCOS-II...\n");
	LCD_printf("Entering graph mode...\n");
	LCD_ChangeMode(DspGraMode);//變LCD顯示模式為文本模式
	InitRtc();//初始化系統(tǒng)時(shí)鐘
	Nand_Rw_Sem=OSSemCreate(1);   //創(chuàng)建Nand-Flash讀寫控制權(quán)旗語(yǔ),初值為1滿足互斥條件//
	OSStart();//操作系統(tǒng)任務(wù)調(diào)度開始
	//不會(huì)執(zhí)行到這里
	return 0;
}


char KeyTable[]={'N','/','*','-','7','8','9','+','4','5','6','1','2','3','E','0','.'};
char* red="red win!";
char* green="green win!";

void Main_Task(void *Id)             //Main_Test_Task
{
	POSMSG pMsg=0;//創(chuàng)建消息指針
	U16 red16[20];
	U16 green16[20];
	int oldx,oldy;//用來保存原來坐標(biāo)系位置
	PDC pdc;//定義繪圖設(shè)備上下文結(jié)構(gòu)
	
        int i;
       // for(;;){
 L:       ClearScreen();
        recordinit();
        Delay(5000);
        pdc=CreateDC();
        SetPenWidth(pdc,1);
        SetPenColor(pdc,0x000000);
        MoveTo(pdc,10,20);
        LineTo(pdc,210,20);
        MoveTo(pdc,10,20);
        LineTo(pdc,10,220);
        for(i=1;i<=10;i++)
        {
           MoveTo(pdc,10+i*WIDTH,20);
           LineTo(pdc,10+i*WIDTH,220);
        }
        for(i=1;i<=10;i++)
        {
           MoveTo(pdc,10,20+i*WIDTH);
           LineTo(pdc,210,20+i*WIDTH);
        }
        
        
        OSTimeDly(500);
       // ClearScreen();
        for(;;){
		     pMsg=WaitMessage(0); //等待消息
		     switch(pMsg->Message){
		     case OSM_KEY://鍵盤消息
			     // onKey(pMsg->WParam,pMsg->LParam);
			     // Uart_Printf("key=%c\n",KeyTable[pMsg->WParam]);//向串口發(fā)送按鍵值對(duì)應(yīng)的ASCII嗎
	             // strChar2Unicode(ch,KeyTable[pMsg->WParam]);//將整形數(shù)據(jù)轉(zhuǎn)化成Unicode
	             // TextOut(pdc, 150, 100, ch, TRUE, FONTSIZE_MIDDLE);//文本模式下顯示文
	             SetPenWidth(pdc,2);
                 SetPenColor(pdc,0xffffff);
                 SetDrawOrg(pdc,10,20,&oldx,&oldy);
                 DrawRectFrame(pdc,X*20+2,Y*20+2,X*20+18,Y*20+18);
	              
	              if(KeyTable[pMsg->WParam]=='8')
	              {
	                 Y--;
                     if(Y<0)
                     Y=9;
	              }
	              else if(KeyTable[pMsg->WParam]=='2')
	              {
	 
                     Y++;
                     if(Y>9)
                     Y=0;
                  }
                  else if(KeyTable[pMsg->WParam]=='4')
                  {
                      X--;
                     if(X<0)
                     X=9;
                  }
                  else if(KeyTable[pMsg->WParam]=='6')
                  {    
                      X++;
                      if(X>9)
                      X=0;
                  }
	              else if(KeyTable[pMsg->WParam]=='5')
	              {
	                if(Chess[X][Y]==0)
                    {
                     record(X,Y,blackorwhite);
                     if(blackorwhite==1){
                        SetPenWidth(pdc,3);
                        SetPenColor(pdc,0x00ff00);
                        Circle(pdc,X*20+10,Y*20+10,7);
                     }
                     else
                     {
                        SetPenWidth(pdc,3);
                        SetPenColor(pdc,0x0000ff);
                        Circle(pdc,X*20+10,Y*20+10,7);
                     }
                     SetPenColor(pdc,0xffffff);
                     iswin=scan(X,Y,blackorwhite);
                     if(iswin==1) {
                          ClearScreen();
                          if(blackorwhite==1)
                          {
                               strChar2Unicode(green16,green);//將整形數(shù)據(jù)轉(zhuǎn)化成Unicode
	                           TextOut(pdc, 150, 100, green16, TRUE, FONTSIZE_MIDDLE);//文本模式下顯示文
                          }
                          else
                          {
                               strChar2Unicode(red16,red);//將整形數(shù)據(jù)轉(zhuǎn)化成Unicode
	                           TextOut(pdc, 150, 100, red16, TRUE, FONTSIZE_MIDDLE);//文本模式下顯示文
	        
                          }
                           OSTimeDly(5000);
                           goto L;
                     
                      }//贏界面
                     else
                        blackorwhite=judge(blackorwhite);
                    }
                 
	              }
                 //	else   break;
                // ClearScreen();
                 if(iswin!=1){
                    SetPenWidth(pdc,2);
                    SetPenColor(pdc,0x0000FF);
                    SetDrawOrg(pdc,10,20,&oldx,&oldy);
                    DrawRectFrame(pdc,X*20+2,Y*20+2,X*20+18,Y*20+18);
                 }
                
	              
			      OSTimeDly(50);
			      break;
		     }
		     DeleteMessage(pMsg);//刪除消息,釋放資源
	    }
	    DestoryDC(pdc);
	   // Delay(5000);
	   // }
       
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久久久久久久久免费看| 国产99久久久国产精品潘金| 精品国产一区二区三区久久久蜜月| 亚洲国产精品久久久久婷婷884| 日韩一二三四区| 国产成人精品www牛牛影视| 亚洲欧洲日产国码二区| 亚洲人成网站在线| 午夜欧美一区二区三区在线播放 | 91精品欧美福利在线观看| 亚洲成av人综合在线观看| 精品蜜桃在线看| 欧美日韩成人综合在线一区二区| 国产制服丝袜一区| 日韩福利视频网| 亚洲色图欧美偷拍| 2020国产精品| 日韩免费一区二区| 欧美日韩综合在线| 99久久综合精品| 国产一区二区成人久久免费影院| 激情五月婷婷综合| 国产精品国产三级国产三级人妇 | 亚洲永久精品国产| 有坂深雪av一区二区精品| 国产精品久久久爽爽爽麻豆色哟哟| 国产午夜三级一区二区三| 久久网站热最新地址| 日韩欧美成人激情| 国产网站一区二区三区| 国产欧美一区二区三区在线老狼| 成人永久免费视频| 不卡影院免费观看| 欧美色图12p| av中文字幕亚洲| 国产a视频精品免费观看| 欧美三级日韩三级国产三级| 精品国产免费一区二区三区香蕉| 亚洲精品v日韩精品| 国产成人综合自拍| 精品国产伦一区二区三区观看方式 | 国产欧美一区二区精品久导航| ●精品国产综合乱码久久久久| 日韩激情视频在线观看| 国产成人午夜精品影院观看视频| 欧美性videosxxxxx| 精品少妇一区二区三区日产乱码 | 成人免费视频网站在线观看| 欧洲亚洲精品在线| 欧美高清在线视频| 经典三级视频一区| 欧美色图免费看| 亚洲蜜臀av乱码久久精品| 日本三级亚洲精品| 久久久久久久久久久电影| 韩国三级在线一区| 国产欧美一区二区精品秋霞影院| 春色校园综合激情亚洲| 亚洲视频在线一区| 欧美日韩黄视频| 国产一区二区三区四区五区入口| 久久久久久久久久久久久久久99 | 国产欧美一区二区精品性| 成人少妇影院yyyy| 午夜视频久久久久久| 久久女同互慰一区二区三区| 国产精品66部| 亚洲国产wwwccc36天堂| 91精品国产综合久久福利| 国产成人精品影视| 亚洲成人精品一区| 国产精品欧美极品| 欧美日韩午夜精品| 国产成人自拍网| 国产精品欧美久久久久一区二区| 久久99精品久久久| 国产精品九色蝌蚪自拍| 欧美午夜一区二区三区免费大片| 日本不卡123| 日本一区二区高清| 色国产精品一区在线观看| 日本欧美一区二区三区| 国产精品国产三级国产普通话99 | 精品国产一区二区国模嫣然| 懂色av一区二区夜夜嗨| 亚洲国产三级在线| 精品久久久久久久久久久久久久久| 成人网男人的天堂| 亚洲福利视频一区| 一卡二卡三卡日韩欧美| 九九久久精品视频| 亚洲视频免费在线| 中文字幕欧美国产| 精品国产伦一区二区三区观看体验| 欧美系列在线观看| 99国产精品视频免费观看| 国产成人精品免费在线| 激情文学综合丁香| 三级一区在线视频先锋 | 91麻豆精品91久久久久久清纯| 美女网站色91| 一区二区三区在线视频免费观看| 欧美美女黄视频| 成人黄页毛片网站| 韩国女主播成人在线观看| 亚洲精品一二三区| 欧美激情一区二区三区在线| 91精品久久久久久久久99蜜臂| 99精品欧美一区二区三区综合在线| 日本一不卡视频| 三级精品在线观看| 亚洲区小说区图片区qvod| 国产精品嫩草影院av蜜臀| 91精品欧美福利在线观看| 在线视频观看一区| 色琪琪一区二区三区亚洲区| 成人免费视频app| 国产精品66部| 成人免费看黄yyy456| 国产老女人精品毛片久久| 久久精品av麻豆的观看方式| 丝瓜av网站精品一区二区 | 一区二区三区在线播| 国产精品视频一二三区| 中文av一区二区| 久久久不卡影院| 国产精品久久久一区麻豆最新章节| 国产日韩成人精品| 国产精品久久久久久户外露出| 久久久久久久久久久久电影 | 亚洲一区二区三区美女| 亚洲午夜羞羞片| 蜜臀精品一区二区三区在线观看| 日韩av高清在线观看| 久久精品国产999大香线蕉| 国内外成人在线| 成人黄色片在线观看| 色综合久久天天| 欧美日韩综合在线免费观看| 日韩一区二区电影网| 久久久久久久国产精品影院| 国产精品日日摸夜夜摸av| 中文字幕日韩一区| 蜜臀久久99精品久久久画质超高清 | 亚洲国产精品一区二区久久 | 亚洲人成网站色在线观看| 亚洲午夜久久久久久久久电影院| 强制捆绑调教一区二区| 福利一区二区在线| 欧美日韩另类一区| 国产欧美1区2区3区| 午夜影视日本亚洲欧洲精品| 国产一区二区不卡老阿姨| 欧洲在线/亚洲| 国产精品第13页| 国产一区二区在线观看视频| 色婷婷亚洲婷婷| 国产精品美日韩| 国产乱码精品一区二区三区忘忧草| 欧美亚洲一区二区在线| 国产精品美女久久久久aⅴ国产馆| 亚洲一级片在线观看| www.亚洲精品| 国产婷婷色一区二区三区 | 日韩av成人高清| 欧美亚洲国产一区二区三区| 国产精品视频一区二区三区不卡| 人禽交欧美网站| 欧美一级午夜免费电影| 亚洲精品水蜜桃| kk眼镜猥琐国模调教系列一区二区| 日韩午夜三级在线| 久久精品久久久精品美女| 欧美嫩在线观看| 日韩在线观看一区二区| 欧美日韩亚洲综合一区| 午夜视频在线观看一区二区三区| 99国产精品99久久久久久| 国产精品视频九色porn| 成人一级片在线观看| 国产精品午夜电影| 97久久久精品综合88久久| 一区二区欧美在线观看| 欧美日韩在线亚洲一区蜜芽| 亚洲第一成年网| 日韩精品一区二区三区视频| 精品综合久久久久久8888| 久久一区二区三区四区| 成人av手机在线观看| 亚洲欧洲成人av每日更新| 欧美亚洲愉拍一区二区| 日韩激情av在线| 久久精品一区二区三区不卡牛牛| 成人av在线电影| 亚洲综合在线五月| 精品国产1区二区| 色猫猫国产区一区二在线视频| 亚洲高清不卡在线| 国产午夜精品一区二区| 91成人在线免费观看|