首页游戏c语言编程小游戏代码?用c语言编写一个小游戏

c语言编程小游戏代码?用c语言编写一个小游戏

编程之家2026-05-16996次浏览

今天给各位分享c语言编程小游戏代码的知识,其中也会对用c语言编写一个小游戏进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

c语言编程小游戏代码?用c语言编写一个小游戏

用C语言编写的小游戏代码是什么

“猜数字小游戏”,每个数字后按空格,最后按回车确认

#include<stdio.h>

#include<stdlib.h>

#include<time.h>

int a[4],b[4];

int count=0;//计算猜测次数

c语言编程小游戏代码?用c语言编写一个小游戏

void csh();//初始化

void start();//开始游戏

int main()

{ csh();

start();

}

c语言编程小游戏代码?用c语言编写一个小游戏

void csh()//初始化

{ printf("

猜数字小游戏

");

printf(“猜四个数字,如数字与顺序都正确记为A,数字正确位置不对记为B.

”);

}

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个一位整数:

");

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次

",m,n,count);

if(m==4)break;

if(count==8){ count=0; break;}

}

printf("

");

if(m==4)printf("你猜对了(^-^)!就是:%d%d%d%d

",a[0],a[1],a[2],a[3]);

else printf("你输了(T-T)!哈哈!应该是:%d%d%d%d

",a[0],a[1],a[2],a[3]);

int z;

printf("(要继续吗?1或0)

");

scanf(“%d”,&z);

if(z==0) break;

}

}

c语言小游戏代码

最基础的贪吃蛇的代码

#include<stdio.h>

#include<windows.h>//基本型态定义。支援型态定义函数。使用者界面函数图形装置界面函数。

#include<conio.h>//用户通过按键盘产生的对应操作(控制台)

#include<stdlib.h>

#include<time.h>//日期和时间头文件

#define LEN 30

#define WID 25

int Snake[LEN][WID]={0};//数组的元素代表蛇的各个部位

char Sna_Hea_Dir='a';//记录蛇头的移动方向

int Sna_Hea_X, Sna_Hea_Y;//记录蛇头的位置

int Snake_Len= 3;//记录蛇的长度

clock_t Now_Time;//记录当前时间,以便自动移动

int Wait_Time;//记录自动移动的时间间隔

int Eat_Apple= 1;//吃到苹果表示为1

int Level;

int All_Score=-1;

int Apple_Num=-1;

HANDLE hConsole= GetStdHandle(STD_OUTPUT_HANDLE);//获取标准输出的句柄<windows.h>

//句柄:标志应用程序中的不同对象和同类对象中的不同的实例方便操控,

void gotoxy(int x, int y)//设置光标位置

{

COORD pos={x,y};//定义一个字符在控制台屏幕上的坐标POS

SetConsoleCursorPosition(hConsole, pos);//定位光标位置的函数<windows.h>

}

void Hide_Cursor()//隐藏光标固定函数

{

CONSOLE_CURSOR_INFO cursor_info={1, 0};

SetConsoleCursorInfo(hConsole,&cursor_info);

}

void SetColor(int color)//设置颜色

{

SetConsoleTextAttribute(hConsole, color);

//是API设置字体颜色和背景色的函数格式:SetConsoleTextAttribute(句柄,颜色);

}

void Print_Snake()//打印蛇头和蛇的脖子和蛇尾

{

int iy, ix, color;

for(iy= 0; iy< WID;++iy)

for(ix= 0; ix< LEN;++ix)

{

if(Snake[ix][iy]== 1)//蛇头

{

SetColor(0xf);//oxf代表分配的内存地址 setcolor:34行自定义设置颜色的函数

gotoxy(ix*2, iy);

printf("※");

}

if(Snake[ix][iy]== 2)//蛇的脖子

{

color= rand()%15+ 1;//rand()函数是产生随机数的一个随机函数。C语言里还有 srand()函数等。

//头文件:stdlib.h

if(color== 14)

color-= rand()% 13+ 1;//变色

SetColor(color);

gotoxy(ix*2, iy);

printf("■");

}

if(Snake[ix][iy]== Snake_Len)

{

gotoxy(ix*2, iy);

SetColor(0xe);

printf("≈");

}

}

}

void Clear_Snake()//擦除贪吃蛇

{

int iy, ix;

for(iy= 0; iy< WID;++iy)

for(ix= 0; ix< LEN;++ix)

{

gotoxy(ix*2, iy);

if(Snake[ix][iy]== Snake_Len)

printf("");

}

}

void Rand_Apple()//随机产生苹果

{

int ix, iy;

do

{

ix= rand()% LEN;

iy= rand()% WID;

}while(Snake[ix][iy]);

Snake[ix][iy]=-1;

gotoxy(ix*2, iy);

printf("⊙");

Eat_Apple= 0;

}

void Game_Over()//蛇死掉了

{

gotoxy(30, 10);

printf("Game Over");

Sleep(3000);

system("pause> nul");

exit(0);

}

void Move_Snake()//让蛇动起来

{

int ix, iy;

for(ix= 0; ix< LEN;++ix)//先标记蛇头

for(iy= 0; iy< WID;++iy)

if(Snake[ix][iy]== 1)

{

switch(Sna_Hea_Dir)//根据新的蛇头方向标志蛇头

{

case'w':

if(iy== 0)

Game_Over();

else

Sna_Hea_Y= iy- 1;

Sna_Hea_X= ix;

break;

case's':

if(iy==(WID-1))

Game_Over();

else

Sna_Hea_Y= iy+ 1;

Sna_Hea_X= ix;

break;

case'a':

if(ix== 0)

Game_Over();

else

Sna_Hea_X= ix- 1;

Sna_Hea_Y= iy;

break;

case'd':

if(ix==(LEN- 1))

Game_Over();

else

Sna_Hea_X= ix+ 1;

Sna_Hea_Y= iy;

break;

default:

break;

}

}

if(Snake[Sna_Hea_X][Sna_Hea_Y]!=1&&Snake[Sna_Hea_X][Sna_Hea_Y]!=0&&Snake[Sna_Hea_X][Sna_Hea_Y]!=-1)

Game_Over();

if(Snake[Sna_Hea_X][Sna_Hea_Y]< 0)//吃到苹果

{

++Snake_Len;

Eat_Apple= 1;

}

for(ix= 0; ix< LEN;++ix)//处理蛇尾

for(iy= 0; iy< WID;++iy)

{

if(Snake[ix][iy]> 0)

{

if(Snake[ix][iy]!= Snake_Len)

Snake[ix][iy]+= 1;

else

Snake[ix][iy]= 0;

}

}

Snake[Sna_Hea_X][Sna_Hea_Y]= 1;//处理蛇头

}

void Get_Input()//控制蛇的移动方向

{

if(kbhit())

{

switch(getch())

{

case 87:

Sna_Hea_Dir='w';

break;

case 83:

Sna_Hea_Dir='s';

break;

case 65:

Sna_Hea_Dir='a';

break;

case 68:

Sna_Hea_Dir='d';

break;

default:

break;

}

}

if(clock()- Now_Time>= Wait_Time)//蛇到时间自动行走

{

Clear_Snake();

Move_Snake();

Print_Snake();

Now_Time= clock();

}

}

void Init()//初始化

{

system("title贪吃毛毛蛇");

system("mode con: cols=80 lines=25");

Hide_Cursor();

gotoxy(61, 4);

printf("You Score:");

gotoxy(61, 6);

printf("You Level:");

gotoxy(61, 8);

printf("The Lenght:");

gotoxy(61, 10);

printf("The Speed:");

gotoxy(61, 12);

printf("Apple Num:");

int i;

for(i= 0; i< Snake_Len;++i)//生成蛇

Snake[10+i][15]= i+1;

int iy, ix;//打印蛇

for(iy= 0; iy< WID;++iy)

for(ix= 0; ix< LEN;++ix)

{

if(Snake[ix][iy])

{

SetColor(Snake[ix][iy]);

gotoxy(ix*2, iy);

printf("■");

}

}

}

void Pri_News()//打印信息

{

SetColor(0xe);

gotoxy(73,4);

All_Score+= Level;

printf("%3d", All_Score);

gotoxy(73, 6);

printf("%3d", Level);

gotoxy(73, 8);

printf("%3d",Snake_Len);

gotoxy(73, 10);

printf("0.%3ds", Wait_Time/10);

gotoxy(73, 12);

printf("%d", Apple_Num);

}

void Lev_Sys()//等级系统

{

if(((Apple_Num-1)/ 10)== Level)

{

++Level;

if(Wait_Time> 50)

Wait_Time-= 50;

else

if(Wait_Time> 10)

Wait_Time-= 10;

else

Wait_Time-= 1;

}

}

int main(void)

{

Init();

srand((unsigned)time(NULL));//设置随机数的种子

Now_Time= clock();

int speed1=1000,speed2,a;

printf("\n");

printf("请输入你想要的速度\n");

scanf("%d",&speed2);

Level=1;

Wait_Time=speed1-speed2;

printf("请输入你想要的苹果数\n");

scanf("%d",&a);

while(a--)

Rand_Apple();

while(1)

{

if(Eat_Apple)

{

++Apple_Num;

Rand_Apple();

Lev_Sys();

Pri_News();

}

Get_Input();

Sleep(10);

}

return 0;

}

求几C语言个小游戏代码,简单的,要注释、、谢谢了、

// Calcu24.cpp: Defines the entry point for the console application.

//

/*

6-6

24点游戏

*/

#include"conio.h"

#include"stdlib.h"

#include"time.h"

#include"math.h"

#include"string.h"/*

从一副扑克牌中,任取4张。

2-10按其点数计算(为了表示方便10用T表示),J,Q,K,A统一按 1计算

要求通过加减乘除四则运算得到数字 24。

本程序可以随机抽取纸牌,并用试探法求解。

*/void GivePuzzle(char* buf)

{

char card[]={'A','2','3','4','5','6','7','8','9','T','J','Q','K'}; for(int i=0; i<4; i++){

buf[i]= card[rand()% 13];

}

}

void shuffle(char* buf)

{

for(int i=0; i<5; i++){

int k= rand()% 4;

char t= buf[k];

buf[k]= buf[0];

buf[0]= t;

}

}

int GetCardValue(int c)

{

if(c=='T') return 10;

if(c>='0'&& c<='9') return c-'0';

return 1;

}

char GetOper(int n)

{

switch(n)

{

case 0:

return'+';

case 1:

return'-';

case 2:

return'*';

case 3:

return'/';

} return'';

}double MyCalcu(double op1, double op2, int oper)

{

switch(oper)

{

case 0:

return op1+ op2;

case 1:

return op1- op2;

case 2:

return op1* op2;

case 3:

if(fabs(op2)>0.0001)

return op1/ op2;

else

return 100000;

} return 0;

}

void MakeAnswer(char* answer, int type, char* question, int* oper)

{

char p[4][3];

for(int i=0; i<4; i++)

{

if( question[i]=='T')

strcpy(p[i],"10");

else

sprintf(p[i],"%c", question[i]);

}

switch(type)

{

case 0:

sprintf(answer,"%s%c(%s%c(%s%c%s))",

p[0], GetOper(oper[0]), p[1], GetOper(oper[1]), p[2], GetOper(oper[2]), p[3]);

break;

case 1:

sprintf(answer,"%s%c((%s%c%s)%c%s)",

p[0], GetOper(oper[0]), p[1], GetOper(oper[1]), p[2], GetOper(oper[2]), p[3]);

break;

case 2:

sprintf(answer,"(%s%c%s)%c(%s%c%s)",

p[0], GetOper(oper[0]), p[1], GetOper(oper[1]), p[2], GetOper(oper[2]), p[3]);

break;

case 3:

sprintf(answer,"((%s%c%s)%c%s)%c%s",

p[0], GetOper(oper[0]), p[1], GetOper(oper[1]), p[2], GetOper(oper[2]), p[3]);

break;

case 4:

sprintf(answer,"(%s%c(%s%c%s))%c%s",

p[0], GetOper(oper[0]), p[1], GetOper(oper[1]), p[2], GetOper(oper[2]), p[3]);

break;

}

}

bool TestResolve(char* question, int* oper, char* answer)

{

//等待考生完成

int type[5]={0,1,2,3,4};//计算类型

double p[4];

double sum=0;

//

for(int i=0; i<4; i++)//循环取得点数

{

p[i]=GetCardValue(int(question[i]));

} for(i=0;i<5;i++)

{

MakeAnswer(answer,type[i],question,oper);//获取可能的答案

switch(type[i])

{

case 0:

sum=MyCalcu(p[0],MyCalcu( p[1],MyCalcu(p[2], p[3], oper[2]),oper[1]),oper[0]);//A*(B*(c*D))

break;

case 1:

sum=MyCalcu(p[0],MyCalcu(MyCalcu(p[1], p[2], oper[1]),p[3],oper[2]),oper[0]);//A*((B*C)*D)

break;

case 2:

sum=MyCalcu(MyCalcu(p[0], p[1], oper[0]),MyCalcu(p[2], p[3], oper[2]),oper[1]);//(A*B)*(C*D)

break;

case 3:

sum=MyCalcu(MyCalcu(MyCalcu(p[0], p[1], oper[0]),p[2],oper[1]),p[3],oper[2]);//((A*B)*C)*D

break;

case 4:

sum=MyCalcu(MyCalcu(p[0],MyCalcu(p[1], p[2], oper[1]),oper[0]),p[3],oper[2]);//(A*(B*C))*D

break;

}

if(sum==24) return true;

}

return false;

}

/*

采用随机试探法:就是通过随机数字产生加减乘除的组合,通过大量的测试来命中的解法

提示:

1.需要考虑用括号控制计算次序的问题比如:( 10- 4)*( 3+ A),实际上计算次序的数目是有限的:

A*(B*(c*D))

A*((B*C)*D)

(A*B)*(C*D)

((A*B)*C)*D

(A*(B*C))*D

2.需要考虑计算结果为分数的情况:( 3+(3/ 7))* 7

3.题目中牌的位置可以任意交换

*/

bool TryResolve(char* question, char* answer)

{

int oper[3];//存储运算符,0:加法 1:减法 2:乘法 3:除法

for(int i=0; i<1000* 1000; i++)

{

//打乱纸牌顺序

shuffle(question);

//随机产生运算符

for(int j=0; j<3; j++)

oper[j]= rand()% 4; if( TestResolve(question, oper, answer)) return true;

} return false;

}

int main(int argc, char* argv[])

{

//初始化随机种子

srand((unsigned)time( NULL)); char buf1[4];//题目

char buf2[30];//解答

printf("***************************\n");

printf("计算24\n");

printf("A J Q K均按1计算,其它按牌点计算\n");

printf("目标是:通过四则运算组合出结果:24\n");

printf("***************************\n\n");

for(;;)

{

GivePuzzle(buf1);//出题

printf("题目:");

for(int j=0; j<4; j++){

if( buf1[j]=='T')

printf("10");

else

printf("%c", buf1[j]);

} printf("\n按任意键参考答案...\n");

getch(); if( TryResolve(buf1, buf2))//解题

printf("参考:%s\n", buf2);

else

printf("可能是无解...\n"); printf("按任意键出下一题目,x键退出...\n");

if( getch()=='x') break;

} return 0;

}

文章到此结束,如果本次分享的c语言编程小游戏代码和用c语言编写一个小游戏的问题解决了您的问题,那么我们由衷的感到高兴!

java程序设计基础电子书 java基础案例教程第三版电子版phpstorm(php编程用什么软件)