❶ C语言斗地主发牌程序,急求,谢谢
我爱吃的水果有很多,而我最爱吃的是葡萄。;;细雨如丝,茂密的葡萄藤贪婪地吮吸着春天的甘露。它们伸展着嫩绿的枝条,一片片掌形的叶子在雨雾中欢笑着。;;;;清明节过后,葡萄藤长出了一粒粒小籽,这就是葡萄花的花苞。过了几天,葡萄花开了,花小小的,白中带有一点黄,像一团团雪花。风把香气吹得四处飘散,引来了一群群辛勤的蜜蜂和翩翩起舞的蝴蝶。我走到葡萄藤下,闻到一阵清香,使人感到心旷神怡。;;;;春末夏初时,葡萄花纷纷凋谢,开花的地方又长出一粒粒小籽,这就是葡萄了。葡萄先是嫩绿色的,上面就像蒙上了一层“白霜”,粉扑扑的。然后渐渐变成紫色,一个个绿中透紫的珍珠,挂在葡萄藤上,闪着诱人的亮光。最后葡萄已经成熟了,一串串亮晶晶、紫红色的葡萄,挂满了葡萄藤,让人真想尝一尝。;;;摘下一颗葡萄,剥去它的表皮,便看见一颗诱人的晶球。把它放进嘴里,舌尖触到葡萄那晶莹透明的果肉,使人感到细腻。没有熟透的葡萄甜中带酸,熟透了就甜滋滋的,叫人越吃越想吃。;;;葡萄不但营养丰富,含有多种维生素,是水果中的佳品,而且还有一定的医药价值。;;;我真喜爱葡萄啊。
❷ 帮我分析下下面的C语言程序涉及的知识,和大概解释下这些语句。 用C语言模拟斗地主发牌。
程序有问题,没有调用srand(),导致每次发的牌都是一样的。有一个2没有显示花色。
❸ 谁有能在vc++6.0上运行的c语言小游戏代码
学习一下数字版“拼图”代码写法:
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<time.h>
#include<windows.h>
inti,j,r,k;//i、j、r用于循环,k存放随机数值
intm,n;//m、n是当前空位的下标,t标记排序是否成功
inta[4][4];//存储4×4共16个数字的数组
voidshow(void);//输出数组表格
voidcsh(void);//初始化界面
intyes(void);//判断排序是否成功
voip(void);//数字向上移动到空位(空位则下移)
voiddown(void);//数字向下移
voidleft(void);//数字向左移
voidrght(void);//数字向右移
voidinkey(void);//按键操作
voidgtxy(intx,inty);//控制光标移动的函数
intmain(void)
{while(1)
{csh();
while(1)
{inkey();
show();
if(yes())
{gtxy(6,12);printf("你成功了!再来一局y/n?");break;}
}
if(getch()==‘n’)break;
}
return0;
}
voidcsh(void)//初始化
{r=0;
CONSOLE_CURSOR_INFOcursor_info={1,0};//以下两行是隐藏光标的设置
SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&cursor_info);
for(i=0;i<4;i++)//给数组a依序赋值
for(j=0;j<4;j++)
{if(i==3&&j==3)a[i][j]=0;
elsea[i][j]=1+r++;
}
a[3][3]=a[1][1];a[1][1]=0;//把a[3][3]与a[1][1]的值交换一下
m=1;n=1;
srand((unsigned)time(0));//初始化随机数发生器
for(r=0;r<500;r++)//将数组各值打乱
{k=rand()%(4);
switch(k)
{case0:{up();break;}
case1:{down();break;}
case2:{left();break;}
case3:{rght();break;}
}
}
printf(" 数字拼图");
printf(" ┌──────┬──────┬──────┬──────┐");
printf(" │││││");
printf(" ├──────┼──────┼──────┼──────┤");
printf(" │││││");
printf(" ├──────┼──────┼──────┼──────┤");
printf(" │││││");
printf(" ├──────┼──────┼──────┼──────┤");
printf(" │││││");
printf(" └──────┴──────┴──────┴──────┘");
show();
}
voidshow(void)//输出表格与数字
{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("│");
elseif(a[i][j]>9)printf("%d│",a[i][j]);
elseprintf("%d│",a[i][j]);
}
}
voidinkey(void)//按键操作
{intkey;
key=getch();
switch(key)
{case72:{up();break;}
case80:{down();break;}
case75:{left();break;}
case77:{rght();break;}
}
}
voip(void)
{if(m!=3)//空位不得在下边界
{a[m][n]=a[m+1][n];m++;a[m][n]=0;}
}
voiddown(void)
{if(m!=0)//空位不得在上边界
{a[m][n]=a[m-1][n];m--;a[m][n]=0;}
}
voidleft(void)
{if(n!=3)//空位不得在右边界
{a[m][n]=a[m][n+1];n++;a[m][n]=0;}
}
voidrght(void)
{if(n!=0)//空位不得在左边界
{a[m][n]=a[m][n-1];n--;a[m][n]=0;}
}
intyes(void)//判断是否成功(1是0否)
{r=0;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{if(a[i][j]!=1+r++)return(r==16)?1:0;}
}
voidgtxy(intx,inty)//控制光标移动的函数
{COORDcoord;
coord.X=x;
coord.Y=y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),coord);
}
❹ 用C语言做一个小游戏,比如说拱猪,斗地主等等,各位大虾给小弟支几招
我想做个五子棋之类的更简单,涉及的知识点少,但是是重点。可能会用到二叉树和矩阵的知识,不太难,完全可以只用C实现。用坐标代表棋盘上的点,0和1代表是否有棋子,当在横竖对角方向有5个棋子连成线时判定游戏结束。二叉树搜索用于查找棋子落点,找到每次落点的最优树。
❺ c语言编程代码
两种方法我写在一起,可以独立拆开。
#include <stdio.h>
void finda1(char a[3][10]);
void finda2(char a[3][10]);
void show(char (*p)[10]);
int main()
{
char a[3][10]={{"gehajl"},{"788a987a7"},{"ccabbbabbb"}};
printf("原数组内容: ");
show(a);
printf(" 1、用数组指针的方法(函数finda1): ");
finda1(a);
printf("执行后: ");
show(a);
printf(" --------------------- ");
char b[3][10]={{"gehajl"},{"788a987a7"},{"ccabbbabbb"}};
printf("原数组内容: ");
show(a);
printf(" 2、用指针数组的方法(函数finda2): ");
finda2(b);
printf("执行后: ");
show(b);
return 0;
}
void finda1(char a[3][10])
{
int i,j;
char (*p)[10]=a;
for(i=0;i<3;i++)
for(j=0;j<10;j++)
if(p[i][j]=='a')
printf("发现:第%d行第%d个元素是‘a’,已替换 ",i+1,j+1),p[i][j]='1';
}
void finda2(char a[3][10])
{
int i,j;
char *p[3]={&a[0][0],&a[1][0],&a[2][0]};
for(i=0;i<3;i++)
for(j=0;j<10;j++)
if(p[i][j]=='a')
printf("发现:第%d行第%d个元素是‘a’,已替换 ",i+1,j+1),p[i][j]='1';
}
void show(char (*p)[10])
{
int i,j;
for(i=0;i<3;i++,printf(" "))
for(j=0;j<10;j++)
printf("%c ",p[i][j]);
}
❻ C语言n!和 c语言斗地主出牌
这是大数阶乘的代码,参考下哈:
#include<stdio.h>
intmain(void)
{
intData[10001];
intdigit;
inti,j,r,k;
intN;
for(i=1;i<10000+1;i++)
Data[i]=0;
Data[0]=1;
Data[1]=1;
digit=1;
printf(":");
scanf("%d",&N);
for(i=1;i<N+1;i++)
{
for(j=1;j<digit+1;j++)
Data[j]*=i;
for(j=1;j<digit+1;j++)
{
if(Data[j]>10)
{
for(r=1;r<digit+1;r++)
{
if(Data[digit]>9)
digit++;
Data[r+1]+=Data[r]/10;
Data[r]=Data[r]%10;
}
}
}
}
printf("%d!=",N);
for(k=digit;k>0;k--)
printf("%d",Data[k]);
printf(" ");
return0;
}
斗地主的不知道你的具体需求是什么,你详细说下吧。