原創的C說話掌握台小游戲。本站提示廣大學習愛好者:(原創的C說話掌握台小游戲)文章只能為提供參考,不一定能成為您想要的結果。以下是原創的C說話掌握台小游戲正文
最開端左上色塊被沾染,經由過程切換色彩,赓續沾染同色色塊。亮點是可以切換圖案,設置方塊個數和最年夜限制次數。全體照樣比擬滿足,願望年夜神指教。
#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有所贊助。