C/C++学习:感染方块控制台游戏

编程入门 行业动态 更新时间:2024-10-07 09:17:04

C/C++学习:感染方块<a href=https://www.elefans.com/category/jswz/34/1771374.html style=控制台游戏"/>

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 ;
}

enjoy ;-)
 
          

更多推荐

C/C++学习:感染方块控制台游戏

本文发布于:2024-02-28 13:15:17,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1769781.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:控制台   方块   游戏

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!