❶ 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;
}
鬥地主的不知道你的具體需求是什麼,你詳細說下吧。