国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

原創的C語言控制臺小游戲

2020-01-26 15:08:51
字體:
來源:轉載
供稿:網友

最開始左上色塊被感染,通過切換顏色,不斷感染同色色塊。亮點是可以切換圖案,設置方塊個數和最大限制次數。整體還是比較滿意,希望大神指教。

#include <stdio.h>#include <windows.h>#include <conio.h>#include <time.h>#include <stdlib.h> int DIFFICULT=44;int count=0 ;int TYPE_SHAPE=2 ;int flag=7 ;int LINE=12; struct MyStruct{  int shape ;  int color ;  int infect ;}; void SetColor(unsigned short ForeColor,unsigned short BackGroundColor){  HANDLE hCon=GetStdHandle(STD_OUTPUT_HANDLE);  SetConsoleTextAttribute(hCon,ForeColor|BackGroundColor);} void WelcomeScr(){  int i;  printf("/n/n/n/t/t");  printf("●程序初始化中〉");  for(i=0; i<=100; i++)  {    SetColor(i%6+8,0);    printf("%3d",i);    SetColor(15,0);    printf(" %%");    SetColor(i%6+8,0);    printf(" Written by Oliver!");    Sleep(20);    printf("/b/b/b/b/b/b/b/b/b/b/b/b/b/b/b/b/b/b/b/b/b/b/b/b");  }  printf("/a");  Sleep(1000);  system("cls");  printf("/n/n/n/t/t");  SetColor(15,0);  printf("●請輸入方塊行數 〉 (最好不超過21行)");  printf("/b/b/b/b/b/b/b/b/b/b/b/b/b/b/b/b/b/b/b/b");  scanf("%d",&LINE);  printf("/n/n/n/t/t");  printf("●請輸入最大次數 〉");  scanf("%d",&DIFFICULT);  system("cls");} void Show(){  int i ;  SetColor(15,0);  printf("/n ※ 操作次數: %-2d / %d  (共%3d個色塊)/n",count,DIFFICULT,LINE*LINE);  printf("/n ※ 操作方法: ");  for(i=1; i<7; i++)  {    SetColor(15,0);    printf("%d.",i);    SetColor(i+8,0);    printf("%c ",TYPE_SHAPE);  }  SetColor(15,0);  printf("7.");  SetColor(9,0);  printf("重");  SetColor(10,0);  printf("新");  SetColor(11,0);  printf("生");  SetColor(12,0);  printf("成 ");  SetColor(15,0);  printf("0.");  SetColor(14,0);  printf("改");  SetColor(13,0);  printf("變");  SetColor(12,0);  printf("圖");  SetColor(11,0);  printf("案 ");  SetColor(15,0);  printf("/n/n ※ 請按下 0 ~ 7 鍵位> ");} int Choose(){  int choose ;  fflush(stdin);  scanf("%d",&choose);  switch(choose)  {  case 0 :    TYPE_SHAPE++;    if(TYPE_SHAPE==7)    {      TYPE_SHAPE=1 ;    }    return 0 ;  case 1 :    return 1 ;  case 2 :    return 2 ;  case 3 :    return 3 ;  case 4 :    return 4 ;  case 5 :    return 5 ;  case 6 :    return 6 ;  case 7 :    return 7 ;  default :    printf("/n/t/t/a● 輸入無效,請重新輸入!");    Sleep(1000);    return 0 ;  }} void main(){  int i,j ;  int num=0 ;  char ch ;  int cc ;  int jj;  struct MyStruct array[41][41];  system("title 感染方塊 Oliver's QQ 564404096");  srand((time(NULL)%100)*rand());  WelcomeScr();loop :  for(i=0; i<LINE; i++)  {    for(j=0; j<LINE; j++)    {      array[i][j].shape=TYPE_SHAPE ;      if(flag==7)      {        array[i][j].color=rand()%6+1 ;        array[i][j].infect=0 ;        count=0 ;        cc=1 ;      }    }  }  printf("/n");  array[0][0].infect=1 ;  for(jj=0; jj<LINE; jj++)  {    for(i=0; i<LINE; i++)    {      for(j=0; j<LINE; j++)      {        if(array[i][j].color==array[i][j+1].color&&array[i][j].infect==1&&array[i][j+1].infect!=1)        {          array[i][j+1].infect=1 ;        }        if(array[i][j].color==array[i+1][j].color&&array[i][j].infect==1&&array[i+1][j].infect!=1)        {          array[i+1][j].infect=1 ;        }      }    }     for(i=LINE-1; i>0; i--)    {      for(j=LINE-1; j>0; j--)      {        if(array[i][j].color==array[i-1][j].color&&array[i][j].infect==1&&array[i-1][j].color!=1)        {          array[i-1][j].infect=1 ;        }        if(array[i][j].color==array[i][j-1].color&&array[i][j].infect==1&&array[i][j-1].color!=1)        {          array[i][j-1].infect=1 ;        }      }    }    cc=1 ;    for(i=0; i<LINE; i++)      for(j=0; j<LINE; j++)      {        if(array[i][j].infect==0)        {          cc=0 ;          break ;        }      }  }  for(i=0; i<LINE; i++)  {    printf(" ");    for(j=0; j<LINE; j++)    {      SetColor(array[i][j].color+8,0);      printf("%c ",array[i][j]);    }    printf("/n");  }  Show();  if(count<=DIFFICULT&&cc==1&&flag!=7&&flag!=0)  {    system("cls");    printf("/n/n/n/n/t/t/t●%5d個色塊你用了%d步完成  ●",LINE*LINE,count);    printf("/n/n/t/t/t● 恭喜你,您獲得了勝利!/n");loop2 :    printf("/n/t/t/t/a● 是否繼續?(Y/N)>");    fflush(stdin);    if((ch=getch())=='Y'||ch=='y')    {      system("cls");      flag=7 ;      goto loop ;    }    else if(ch=='n'||ch=='N')    {      system("cls");      printf("/n/t/t/t● 謝 謝 您 的 使 用 !/n/n/t/t/t● 作 者: Oliver/n/n/t/t/t● Q Q: 564404096/n/n/t/t/t● 代 碼 原 創,版 權 所 有 ●");      Sleep(5000);      exit(1);    }    else    {      printf("/n/n/t/t/t/a● 輸入錯誤重新輸入 >");      Sleep(1000);      system("cls");      goto loop2 ;    }  }  else if(count>DIFFICULT)  {    system("cls");    printf("/n/n/n/n/t/t/t/a● 很遺憾,您闖關失敗!/n");    goto loop2 ;  }  else    ;  flag=Choose();  if(flag!=0)  {    array[0][0].color=flag ;    if(flag!=7)    {      count++;    }    for(i=0; i<LINE; i++)    {      for(j=0; j<LINE; j++)      {        if(array[i][j].infect==1)        {          array[i][j].color=flag ;        }      }    }  }  system("cls");  goto loop ;}

演示圖:

以上即是本文所述的全部內容了,希望大家能夠喜歡,能夠對大家學習C有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 忻城县| 南城县| 大庆市| 扶沟县| 理塘县| 宾川县| 东海县| 淮北市| 临澧县| 淳化县| 轮台县| 团风县| 囊谦县| 台山市| 儋州市| 嘉善县| 沧州市| 镶黄旗| 嘉峪关市| 连城县| 青铜峡市| 双江| 厦门市| 新密市| 蒙自县| 大余县| 大厂| 阳泉市| 尼玛县| 云林县| 丰城市| 孟津县| 开阳县| 从江县| 五家渠市| 报价| 巩留县| 景谷| 诸城市| 绿春县| 宣化县|