求几C语言个小游戏代码,简单的,要注释、、谢谢了、
可以说个大概方向吗?
光说1000行,要做什么都不知道。
是什么管理系统?
还是什么算法设计?
还是解决一个什么经典问题?
1000行,就Visual C++6.0的基于MFC的应用程序框架,自动生成的代码都不止1000行!!!
书上不是有么
// 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;
}
//这是一个显示方格的小程序,小方格可一左右移动的,可以按A键、D键、方向键,按n
//时则退出程序。这个程序整体很简单你看一会就能明白了,上下移动还没弄好。
#include<stdio.h>
void main(){
int i,keyCount=0;
int n=196,e=179,wu=218,eu=191,wd=192,ed=217; //定义方格边框
char move='';
while(1){
move=getch();
if(move==0)
move=getch();
if(move=='n')
break;
if((move=='a'||move=='A'||move==75)&&keyCount>0)
keyCount--;
if((move=='d'||move=='D'||move==77)&&keyCount<76)
keyCount++;
printf("--------------------------------------------\n"); //线条打印
printf("Press \'a\' the square move left ,\n and press \'d\' the square move right!\nPress \'n\' to exit!\n"); //打印说明
printf("--------------------------------------------\n");
for(i=1;i<=16;i++)
printf("\n");
for(i=1;i<=keyCount;i++)
printf(" ");
printf("%c%c%c\n",wu,n,eu); //打印上边框
for(i=1;i<=keyCount;i++)
printf(" ");
printf("%c %c\n",e,e) ; //打印中间边框
for(i=1;i<=keyCount;i++)
printf(" ");
printf("%c%c%c\n",wd,n,ed); //打印底边框
}
}
用C语言设计小游戏的程序??急!!!
\/\/四个方向 { up,down,left,right }Direction;typedef enum { false,true }bool;\/\/*\/ void InitGraphMode();\/\/初始化图形驱动 void CloseGraphMode();void Foot(int,int);void Head(int,int);void CreateFrame();\/\/完成整个游戏框架的绘制 void CreateSnake();\/\/创建一条两个节点的蛇,蛇的...
给我提供个小游戏的C 语言代码
本原代码是基于C语言的原程序。是经典中的小游戏。-primitive code is based on the C language of the original procedure. Classic is a small game.一个小游戏,用C语言编写的:俄罗斯方块.C原码及应用程序都在里面哦 -a small game using the C language : Russian cubes. The original C ...
求一个c语言制作的小游戏或者小软件,行数不小于600,挺急的
贪吃蛇代码 include <stdio.h> include <graphics.h> include <stdlib.h> include <dos.h> \/*引用的库函数*\/ define LEFT 0x4b00 define RIGHT 0x4d00 define DOWN 0x5000 define UP 0x4800 define ESC 0x011b\/*宏定义键名*\/ define N 200 int i,key;int level;\/*游戏等级*\/ int score...
用c语言编写小游戏 要有解释
2018-01-09 用C语言编写的小游戏代码是什么? 8 2013-11-16 教你如何使用C语言编写简单小游戏 183 2018-04-15 使用C语言编写小游戏的方法是什么? 2011-12-29 求一个用C语言编写的小游戏代码 552 2009-11-27 用C语言编写一个小游戏要在vc++6.0里运行 47 2013-08-28 怎样用C语言编写一个小游戏?
c语言小游戏代码
color = rand()%15 + 1; \/\/rand()函数是产生随机数的一个随机函数。C语言里还有 srand()函数等...fod.x=rand()%(W-4)+2; \/\/随机函数rand( )产生一个从0到比”(W-4)”小1的数再加2 fod...gtxy(2,H+2); printf(“游戏得分:%d”,score); if (snk.x[0] == 0 || snk.x[0] ==...
急求c语言小游戏代码!!!
include<stdio.h>#include<conio.h>#include<stdlib.h>#include<windows.h>int board[10] = {2,2,2,2,2,2,2,2,2,2};int turn = 1,flag = 0;int player,comp;void menu(); void go(int n);void start_game();void check_draw();void draw_board();\/\/打印棋盘void player_...
就C语言中 猜拳游戏的代码
\/\/ 为了避免玩一次游戏就退出程序,可以将代码放在循环中 while (1){ printf("这是一个猜拳的小游戏,请输入你要出的拳头:\\n");printf("A:剪刀\\nB:石头\\nC:布\\nD:不玩了\\n");scanf("%c%*c",&gamer);switch (gamer){ case 65: \/\/A case 97: \/\/a gamer=4;break;case 66: \/\/...
打字游戏超细讲解(C语言基础小游戏)
深入探索:C语言基础打字游戏开发指南 让我们一起走进C语言的世界,亲手打造一款简单却富有挑战性的打字游戏。游戏的核心是提高打字速度与准确度,而实现过程分为几个关键步骤:环境搭建:在Ubuntu系统云环境中,借助Sublime Text这样的高效开发工具。 游戏框架构建: 主循环:一个永不停歇的while循环...
如何使用C语言编写简单小游戏?
C语言是计算机专业都要学习的一门基础学科。一般来说,是比较枯燥的.那么,我们能不能通过编一些小游戏来提高它的趣味性呢?这样学习程序设计,就不会是一件艰苦 ,枯燥的事,它变得象电脑游戏一样充满好奇,富有乐趣。例如2048这款游戏:方法\/步骤:include<stdio.h> include<stdlib.h> include include<con...
如何做一个C语言编程的汉诺塔游戏?要有源代码。
(1)按顺时针方向把圆盘1从现在的柱子移动到下一根柱子,即当n为偶数时,若圆盘1在柱子A,则把它移动到B;若圆盘1在柱子B,则把它移动到C;若圆盘1在柱子C,则把它移动到A。 (2)接着,把另外两根柱子上可以移动的圆盘移动到新的柱子上。即把非空柱子上的圆盘移动到空柱子上,当两根柱子都非空时,移动较小的圆...
养彼翰施: 可以学写“贪吃蛇”代码:#include <stdio.h>#include <stdlib.h>#include <conio.h>#include <time.h>#include <Windows.h>#define W 78 //游戏框的宽,x轴#define H 26 //游戏框的高,y轴 int dir=3; //方向变量,初值3表示向“左” int Flag=0; ...
柳江县15817357962: 求助,用C语言做一个小游戏(不要太复杂),最最最基础的C语言就可以,并赋予代码,谢谢! - ?
养彼翰施: 猜数字 超简单 去掉说明文字,也就十几行 简单说明见注释#include <stdio.h>#include <stdlib.h>#include<time.h> int main() { int i; int a; int t; printf("欢迎玩猜数字小游戏!\n"); printf("玩法介绍:\n"); printf("每次游戏会设置一个数...
柳江县15817357962: 求C语言写一个简单的小游戏 - ?
养彼翰施: 如果是纯C语言的话那要用TC了,它有图形模式,不过具体的还得你自己去实现
柳江县15817357962: 用c语言编写一个剪刀石头布的游戏,简单点最好,不要用太复杂的c语言知识,c语言刚学. - ?
养彼翰施: #include<stdio.h> #include<stdlib.h> #include<time.h>/*************\ * 剪刀 石头 布 * * 最简单小游戏 * \*************/int main(void){char gesture[3][10] = {"scissor","stone","cloth"};int man, computer, result, ret;/*随机数初始化函数*/...
柳江县15817357962: 求一款简单游戏的c语言代码 200行内的.让我参考下 我的编辑器是c4driod的不支持#incl - ?
养彼翰施: #include <stdio.h> #include <signal.h>#if __MINGW32__ #define ENVIR "mingw " #elif __DJGPP__ #define ENVIR "djgpp " #elif __TURBOC__ #define ENVIR "turboc " #elif __PACIFIC__ #define MSDOS #define ENVIR "pacific " #...
柳江县15817357962: 求助,用C语言做一个小游戏(什么游戏都行不要太复杂),最最最基础的C语言就可以,并赋予代码,求助大神 - ?
养彼翰施: 如果不需要图形界面,我倒是有个非常的简单的游戏,请复制中间的代码,建议你看下最后的注释#include<stdio.h>#include<stdlib.h>#include<time.h>#include<windows.h> int main(void) { int num[6], num1[6], num2[6]; int a, b; int number, number...
柳江县15817357962: 哪位高手可以给我一个简单的C语言游戏程序,要有大概解释的 - ?
养彼翰施: //简单游戏..哈哈,暴简单 游戏:#include<iostream.h>#include<stdlib.h>#include<time.h>#include<iomanip.h>#include<stdio.h> void main() {int i,j,m=8,n=8,h,k,l,d,s=2;char q,w; char a[]={'*','>','>','>','>','>','>','>','>','>','>','>','>','>','>','>'}; char b[]={'*','...
柳江县15817357962: 用C语言编一个小游戏,注明编码,(简单易懂的游戏,不要复杂) - ?
养彼翰施: 我这有许多C的小游戏.给你一个基础的简单的汉诺塔程序.你看看:这是个汉诺塔程序,在调试的时候,输入的数字最好不要大于15,因为每大一个数 所得的结果的步骤都会多一倍.如果你有耐心等待结果的话除外.汉诺塔是在欧洲 流行的...
柳江县15817357962: 求一个最简单的小游戏的c语言代码 - ?
养彼翰施: 最简单的就是数字游戏了
柳江县15817357962: c语言编一个简单的剪刀石头布游戏? - ?
养彼翰施: 定义0、1、2三个数分别代表剪刀石头和布 通过生成一个随机数(0-2)与输入的数据对比就好了然后根据规则(游戏规则)判断输赢如果自己不想写代码的话 我可以提供有偿代劳