c语言小游戏代码,游戏代码大全
老铁们,大家好,相信还有很多朋友对于c语言小游戏代码和游戏代码大全的相关问题不太懂,没关系,今天就由我来为大家分享分享c语言小游戏代码以及游戏代码大全的问题,文章篇幅可能偏长,希望可以帮助到大家,下面一起来看看吧!
用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("
猜数字小游戏
");
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语言个小游戏代码,简单的,要注释、、谢谢了、
// 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语言编写一个小游戏
一、数学知识:
长方形的面积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
",S,L);//输出结果。
}四、注意事项:
因为没有限制输入为整型,所以使用浮点型用来存储各项值。输入输出要用%lf。
OK,关于c语言小游戏代码和游戏代码大全的内容到此结束了,希望对大家有所帮助。