一、用C语言编写的小游戏代码是什么
“猜数字小游戏”,每个数字后按空格,最后按回车确认
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int a[4],b[4];
int count=0;//计算猜测次数
void csh();//初始化
void start();//开始游戏
int main()
{ csh();
start();
}
void csh()//初始化
{ printf("\n\n猜数字小游戏\n\n");
printf(“猜四个数字,如数字与顺序都正确记为A,数字正确位置不对记为B.\n”);
}
void start()//开始游戏
{int m,n;//m是完全猜对的个数,n是顺序不对的个数
while(1)
{srand((unsigned)time(NULL));//初始化随机数发生器srand()
while(1){ for(int i=0;i<4;i++) a[i]=rand()%10;//rand()函数每次随机产生一个0-9的数
if((a[3]!=a[2]&&a[3]!=a[1]&&a[3]!=a[0])&&
(a[2]!=a[1]&&a[2]!=a[0])&&a[1]!=a[0]) break;}//4个随机数各自不相等
printf("请依次输入4个一位整数:\n\n");
while(1)
{for(int i=0;i<4;i++) scanf(“%d”,&b[i]);
printf("你输入的是:%d%d%d%d",b[0],b[1],b[2],b[3]);
m=0;n=0;
for(int i=0;i<4;i++)
{for(int j=0;j<4;j++)
{ if(b[i]==a[j]&&i==j)m=m+1; if(b[i]==a[j]&&i!=j)n=n+1;}
}
count=count+1;
printf("%dA%dB你试了%d次\n",m,n,count);
if(m==4)break;
if(count==8){ count=0; break;}
}
printf("\n");
if(m==4)printf("你猜对了(^-^)!就是:%d%d%d%d\n",a[0],a[1],a[2],a[3]);
else printf("你输了(T-T)!哈哈!应该是:%d%d%d%d\n",a[0],a[1],a[2],a[3]);
int z;
printf("(要继续吗?1或0)\n");
scanf(“%d”,&z);
if(z==0) break;
}
}
二、如何用c语言编写一个小游戏
一、数学知识:
长方形的面积S=a*b
长方形周长L=2*(a+b)
其中a b分别为长方形的宽和高。
二、算法分析:
长方形面积及周长均依赖于宽和高,所以先要输入宽高值,然后根据公式计算,输出结果即可。
三、参考代码:
#include<stdio.h>
voidmain()
{
doublea,b;
doubleL,S;
scanf("%lf%lf",&a,&b);//输入宽和高。
L=2*(a+b);//计算周长。
S=a*b;//计算面积。
printf("面积=%lf,周长=%lf\n",S,L);//输出结果。
}
四、注意事项:
因为没有限制输入为整型,所以使用浮点型用来存储各项值。输入输出要用%lf。
三、c语言猜数字游戏源代码
小游戏2048:
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<time.h>
#include<windows.h>
int jsk();//计算空格数
void rsgm();//重置游戏
void inkey();//按键输入
void left();//向左移动
void right();//向右移动
void up();//向上移动
void down();//向下移动
void show();//输出界面
void adnum();//添加随机数
void yes();//游戏是否结束(1是0否)
void gtxy(int x, int y);//控制光标位置的函数
int a[4][4];//存储16个格子中的数字
int score= 0;//每局得分
int best= 0;//最高得分
int ifnum;//是否需要添加数字(1是0否)
int over;//游戏结束标志(1是0否)
int i,j,k;
int main()
{ rsgm();//重置游戏
inkey();//按键输入
return 0;
}
void Color(int a)//设定字符颜色的函数(a应为1-15)
{ SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a);}
void rsgm()//重置游戏
{ score= 0; ifnum= 1; over= 0; srand((unsigned)time(0));//启动随机数发生器
int n= rand()% 16;//随机函数产生0-15的数字
for(i= 0; i< 4; i++)
{for(j= 0; j< 4; j++)
{ if(n== 0){ int k= rand()% 3; if(k== 0|| k== 1){ a[i][j]= 2;}
else{ a[i][j]= 4;} n--;}
else{ a[i][j]= 0; n--;}
}
}
adnum();
system("cls");
CONSOLE_CURSOR_INFO gb={1,0};//以下两行是隐藏光标的设置,gb代指光标
SetConsoleCursorInfo( GetStdHandle(STD_OUTPUT_HANDLE),&gb);
Color(14);//设置字体淡黄色
printf("\n\n\t\t 2048小游戏"); Color(7);//恢复白字黑底
printf("\n\t┌──────┬──────┬──────┬──────┐");
printf("\n\t│││││");
printf("\n\t├──────┼──────┼──────┼──────┤");
printf("\n\t│││││");
printf("\n\t├──────┼──────┼──────┼──────┤");
printf("\n\t│││││");
printf("\n\t├──────┼──────┼──────┼──────┤");
printf("\n\t│││││");
printf("\n\t└──────┴──────┴──────┴──────┘");
show();
}
void show()//输出界面
{ for(i=0;i<4;i++)
for(j=0;j<4;j++)
{ gtxy(7*j+9,2*i+4);//gtxy(7*j+9, 2*i+4)是光标到指定位置输出数字
if(a[i][j]==0){printf(""); Color(7); printf("│");}
else if(a[i][j]<10){ if(a[i][j]== 2){ Color(14);}
else if(a[i][j]== 4){ Color(13);}
else if(a[i][j]== 8){ Color(12);}
printf("%d", a[i][j]); Color(7); printf("│");
}
else if(a[i][j]< 100){if(a[i][j]== 16){ Color(12);}
else if(a[i][j]== 32){ Color(10);}
else if(a[i][j]== 64){ Color(2);}
printf("%d", a[i][j]); Color(7); printf("│");
}
else if(a[i][j]< 1000){if(a[i][j]== 128){ Color(9);}
else if(a[i][j]== 256){ Color(1);}
else if(a[i][j]== 512){ Color(13);}
printf("%d", a[i][j]); Color(7); printf("│");
}
else if(a[i][j]< 10000){if(a[i][j]== 1024){ Color(5);}
else{ Color(15);}
printf("%d", a[i][j]); Color(7); printf("│");
}
}
if(jsk()== 0)
{ yes(); if(over){ gtxy(9,12); Color(10);
printf("\n\n游戏结束!是否继续? [ Y/N ]:");}
}
}
void inkey()//按键输入
{ int key;
while(1)
{ key= getch();
if(over){ if(key== 89|| key== 121){ rsgm(); continue;}
else if(key== 78|| key== 110){ return;}
else continue;}
ifnum= 0;
if(key==224)key=getch();
switch(key)
{ case 75: left(); break;
case 77: right(); break;
case 72: up(); break;
case 80: down();break;
}
if(score> best){ best= score;}
if(ifnum){ adnum(); show();}
}
}
int jsk()//计算空格数
{ int n= 0;
for(i= 0; i< 4; i++)
{ for(j= 0; j< 4; j++){ if( a[i][j]== 0){n++;}}}
return n;
}
void left()//向左移动
{ for(i= 0; i< 4; i++)
{for(j= 1, k= 0; j< 4; j++)
{ if(a[i][j]> 0)
{ if( a[i][k]== a[i][j])
{ a[i][k]*= 2; k++;
score= score+ 2* a[i][j];
a[i][j]= 0; ifnum= 1;}
else if( a[i][k]== 0){ a[i][k]= a[i][j]; a[i][j]= 0; ifnum= 1;}
else{ a[i][k+ 1]= a[i][j]; if((k+ 1)!= j){ a[i][j]= 0; ifnum= 1;}
k++;}
}
}
}
}
void right()//向右移动
{for(i= 0; i< 4; i++)
{for(j= 2, k= 3; j>= 0; j--)
{if(a[i][j]> 0)
{ if(a[i][k]== a[i][j])
{a[i][k]*= 2; k--; score= score+ 2* a[i][j]; a[i][j]= 0; ifnum= 1;}
else if( a[i][k]== 0){a[i][k]= a[i][j]; a[i][j]= 0; ifnum= 1;}
else{ a[i][k- 1]= a[i][j]; if((k- 1)!= j){ a[i][j]= 0; ifnum= 1;} k--;}
}
}
}
}
void up()//向上移动
{for(i= 0; i< 4; i++)
{for(j= 1, k= 0; j< 4; j++)
{if(a[j][i]> 0)
{if( a[k][i]== a[j][i]){ a[k][i]*= 2; k++;score= score+ 2* a[j][i];
a[j][i]= 0; ifnum= 1;}
else if( a[k][i]== 0){ a[k][i]= a[j][i]; a[j][i]= 0; ifnum= 1;}
else{ a[k+ 1][i]= a[j][i]; if((k+ 1)!= j){ a[j][i]= 0; ifnum= 1;}
k++;}
}
}
}
}
void down()//向下移动
{ for(i= 0; i< 4; i++)
{for(j= 2, k= 3; j>= 0; j--)
{if(a[j][i]> 0)
{if(a[k][i]== a[j][i])
{a[k][i]*= 2; k--;score= score+ 2* a[j][i]; a[j][i]= 0; ifnum= 1;}
else if(a[k][i]== 0){a[k][i]= a[j][i]; a[j][i]= 0; ifnum= 1;}
else{a[k- 1][i]= a[j][i];
if((k- 1)!= j){a[j][i]= 0; ifnum= 1;} k--;}
}
}
}
}
void adnum()//添加随机数
{ srand(time(0)); int n= rand()% jsk();
for(int i= 0; i< 4; i++)
{for(int j= 0; j< 4; j++)
{ if(a[i][j]== 0){if(n!= 0){ n--;}
else{int k= rand()% 3;
if(k== 0|| k== 1){a[i][j]= 2; return;}
else{a[i][j]= 4; return;}}
}
}
}
}
void yes()//游戏是否结束
{ for(int i= 0; i< 4; i++)
{for(int j= 0; j< 3; j++)
{if(a[i][j]== a[i][j+ 1]|| a[j][i]== a[j+ 1][i]){over= 0; return;}}
}
over= 1;
}
void gtxy(int x, int y)//控制光标位置的函数
{ COORD zb;//zb代指坐标
zb.X= x;
zb.Y= y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), zb);
}