当前位置: 首页 手游资讯 手游资讯

C语言小游戏代码,c语言小游戏代码100行

一、用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);

}

标签: 手游

声明:

1、本文来源于互联网,所有内容仅代表作者本人的观点,与本网站立场无关,作者文责自负。

2、本网站部份内容来自互联网收集整理,对于不当转载或引用而引起的民事纷争、行政处理或其他损失,本网不承担责任。

3、如果有侵权内容、不妥之处,请第一时间联系我们删除,请联系