21點c課程設計
Ⅰ 21點C語言編程
代做c語言課程設計,資料里qq聯系
Ⅱ 求一個c語言的21點游戲代碼,最好加說明的。TC環境.人機對戰。游戲規則:先發兩張牌,沒有庄閑,然後要牌
在電腦上登錄過的微信號,如果你在登錄的時候勾選了同步歷史消息,就會在電腦裡面回保存你以前的所答有歷史記錄,一般就是只要你手機上有的記錄都會同步過去。 但是這個文件是個加密文件,用記事本之類的軟體打開會顯示亂碼,但是有專門的軟體可以查看這一類文件。 想要防止出現這類情況,在電腦上登錄微信的時候,一點要把同步歷史消息的勾選去掉,這個選項在你手機上面彈出確認登錄時。 最後說個題外話,會這樣查看你微信聊天記錄的朋友還是少來往為好,心理有點不太正常了。
Ⅲ visit[n]在21點游戲c 課程設計中表示什麼
第一,進一步考查和驗證畢業論文作者對所著論文的認識程度和當場論證論題的能力是高等學校組織畢業論文答辯的目的之一。一般說來,從學員所提交的論文中,已能大致反映出各個學員對自己所寫論文的認識程度和論證論題的能力。但由於種種原因,有些問題沒有充分展開細說,有的可能是限於全局結構不便展開,有的可能是受篇幅所限不能展開,有的可能是作者認為這個問題不重要或者以為沒有必要展開詳細說明的;有的很可能是作者深不下去或者說不清楚而故意迴避了的薄弱環節,有的還可能是作者自己根本就沒有認識到的不足之處等等。通過對這些問題的提問和答辯就可以進一步弄清作者是由於哪種情況而沒有展開深入分析的,從而了解學員對自己所寫的論文的認識程度、理解深度和當場論證論題的能力。
第二,進一步考察畢業論文作者對專業知識掌握的深度和廣度是組織畢業論文答辯所要達到的目的之二。通過論文,雖然也可以看出學員已掌握知識面的深度和廣度。但是,撰寫畢業論文的主要目的不是考查學員掌握知識的深廣度,而是考查學員綜合運用所學知識獨立地分析問題和解決問題的能力,培養和鍛煉進行科學研究的能力。學員在寫作論文中所運用的知識有的已確實掌握,能融會貫通的運用;有的可能是一知半解,並沒有轉化為自己的知識;還有的可能是從別人的文章中生搬硬套過來,其基本涵義都沒搞清楚。在答辯會上,答辯小組成員把論文中有闡述不清楚、不祥細、不完備、不確切、不完善之處提出來,讓作者當場作出回答,從而就可以檢查出作者對所論述的問題是否有深廣的知識基礎、創造性見解和充分扎實的理由。
第三,審查畢業論文是否學員獨立完成即檢驗畢業論文的真實性是進行畢業論文答辯的目的之三。撰寫畢業論文,要求學員在教師的指導下獨立完成,但它不像考試、考查那樣,在老師嚴格監視下完成,而是在一個較長的時期(一般為一個學期)內完成,難免會有少數不自覺的學生會投機取巧,採取各種手段作弊。尤其是像電大、函大等開放性大學,學員面廣、量大、人多、組織鬆散、素質參差不齊,很難消除捉刀代筆、抄襲剽竊等不正之風的出現。指導教師固然要嚴格把關,可是在一個教師要指導多個學員的不同題目,不同范圍論文的情況下對作假舞弊,很難做到沒有疏漏。而答辯小組或答辯委員會有三名以上教師組成,鑒別論文真的能力就更強些,而且在答辯會上還可通過提問與答辯來暴露作弊者,從而保證畢業論文的質量。
Ⅳ 21點游戲,c語言編程求解!!!
估計這個函數上面的代碼也用了 scanf("%c", &變數); 吧,在每個這句子後面加上getchar();
Ⅳ 21點游戲C語言編程
建議你去編程的一些論壇或網站跟別人互動交流一下,例如編程愛好者之類的 ,在那你應該會得到想要的答案
Ⅵ c語言:如何編寫一個21點的游戲
21點的游戲?
Ⅶ C#課程設計 21點游戲
留下郵箱,我發給你
已發,注意查收
Ⅷ Visual C++課程設計案例精選與編程指導 21點撲克牌游戲答案
我有個24點的詳細案例,你可以參考一下。如果要的話給我留言或直接Hi我。
Ⅸ 21點游戲C程序設計(緊急使用,跪求高手,要完整版的若成功加分,明天問題就失效了)
Too many things
What do you want
Just ignore
There is only one person who loves you the most
Ⅹ 誰幫我設計一個C語言程序 21點
/**********************問題需求:實現一個電腦做莊,你當玩家的21點游戲**********************
*********************數據結構:player_card[n],host_card[m]*********************************
0<n<=5,0<m<=5
程序結構:主函數:輸入選擇,輸出結果
判斷函數:判斷是否要牌,若不要牌,則返回0;否則返回1;
比較函數:若沒有爆牌,而且player不想要牌或n=5,則比較player與host的大小,
若player大,則返回0;否則返回1;
*************************version 2.0 right@2009************************************
***************************designed By Allen************************************************
*************************all rights deserved******************************************** 程序難點:1,如何在A-K中隨機選取一張牌
當時解決方案:用rand()函數
2,如何實現電腦(即莊家)自動判斷是否要牌
當時解決方案:規定一個要牌范圍(18-21為不要牌,1-18為要牌)
今天(19號)的解決方案:用隨機數0~1,1為要牌,0為不要牌實現
3,調用rand()函數時,不知道該如何為srand()播種
當時解決方案,用時間播種。
srand((int)time(null));
4,種的種子不是我想要的
當時的解決方案:用1+int (10.0*rand()/(RAND_MAX+1.0))表達式
5,隨機數不是真正的隨機,每次隨機數都一樣
當時解決方案:用time(0)產生真正的隨機數
程序還未實現的功能:
1,A可以當11,也可以當1的功能
已經實現
2,圖形化界面
由於考試等原因,不準備實現,暑假再實現
3,菜單
實現
4,顯示出每張牌的值,用A~K表示
正在實現中,未調試成功
21號已經實現
5,程序全部完成後把莊家的前幾次的牌點全部不顯示
已經實現
6,實現電腦自動判斷是否要牌
已經實現
程序錯誤已改正的地方:
1,a做為11時,值並未加上去
程序錯誤未改正的地方:
暫時沒有
*****************************************************************************************
*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
#define NULL 0
int compare(char player_sum,char host_sum)//比較玩家與莊家的牌面大小
{
if(player_sum > host_sum)
return 1;
else
return 0;
}/*int sentC_sumC(char temp[],int k)//發牌,並求和
{
int i,sum=0,j;
temp[k]=1+int (10.0*rand()/(RAND_MAX+1.0));
for(i=0;i<k;i++)
{
for(j=i+1;j<k;j++)
if(temp[i]==11 && temp[j]==1)
temp[j]=11;
sum+=temp[k];
}//以上用於實現玩家一手牌里A只能做1或11
return sum;
}*//*此函數用於檢驗是否爆牌,yes,return 1;no,return 0*/
int over(int sum)
{
if(sum>21)
return 1;
else
return 0;
}
/*int change(int n)//a is 11 or 1?
{
int m=0;
if(n==1)
m=1;
else if(n==2)
m=11;
return m;
}*//*int acer(char player_card[],int n,int player_sum,int host_sum)
{
int k;
if(player_card[n]==1)
{
printf("你初始的牌面值%d 莊家的初始的牌面值%d\n",player_sum,host_sum);
printf("你有一張ACE!\n");
printf("***********************************");
printf("\n想要A做1還是做11?\n1,1\n2,11\n");
scanf("%d",&k);
printf("***********************************\n");
//player_card[n]=change(k);
if(k==1)
player_card[n]=1;
else
player_card[n]=11;
}//以上if語句實現選擇這手牌里A做1還是11的問題
return player_card[n];
}*//*char translate_2_ch(int temp)
{
int n=0,m=0;
char ch;
switch(temp)
{
case '1': ch='A';
break;
case '10': {
n=1+int(rand()/(RAND_MAX+1.0));
if(n==1)
{
m=1+int(rand()/(RAND_MAX+1.0));
if(m==1)
ch='J';
else
ch='Q';
}
else
ch='K';
}
break;
}
return ch;
}*/ /*將數字轉換成A~K*/
/*int translate_2_int()
{
return 0;
}*/void game_start()
{
int i,k,j,l,choice,player_sum=0,host_sum=0;
int flag=0;//此變數用來標記是否爆牌,然後跳出多餘循環
int n=0,m=0,x=0,count=2,aceflag=0;
srand(time(0));
char player_card[10],host_card[10],ch;
printf(" GAME START! \n");
for(i=0;i<2;i++)
{
player_card[i]=1+int (10.0*rand()/(RAND_MAX+1.0));
switch(player_card[i])
{
case 1: ch='A';
break;
case 10: {
n=1+int(rand()/(RAND_MAX+1.0));
if(n==1)
{
m=1+int(rand()/(RAND_MAX+1.0));
if(m==1)
{
x=1+int(rand()/(RAND_MAX+1.0));
if(x==1)
ch=10;
else
ch='J';
}
else
ch='Q';
}
else
ch='K';
}
break;
}//switch語句用於將數字轉換成字元
if(player_card[i]>1 && player_card[i]<10)
printf("你的第%d張牌%d\t",i+1,player_card[i]);
else
{
if(ch==10)
printf("你的第%d張牌%d\t",i+1,ch);
else
printf("你的第%d張牌%c\t",i+1,ch);
}
host_card[i]=1+int (10.0*rand()/(RAND_MAX+1.0));
switch(host_card[i])
{
case 1: ch='A';
break;
case 10: {
n=1+int(rand()/(RAND_MAX+1.0));
if(n==1)
{
m=1+int(rand()/(RAND_MAX+1.0));
if(m==1)
{
x=1+int(rand()/(RAND_MAX+1.0));
if(x==1)
ch=10;
else
ch='J';
}
else
ch='Q';
}
else
ch='K';
}
break;
}//switch語句用於將數字轉換成字元
//屏蔽莊家的牌點,除總牌點外
/*if(host_card[i]>1 && host_card[i]<10)
printf("莊家的第%d張牌%d\n",i+1,host_card[i]);
else
{
if(ch==10)
printf("莊家的第%d張牌%d\n",i+1,ch);
else
printf("莊家的第%d張牌%c\n",i+1,ch);
}*/
if(host_card[i]==1)
{
k=int(rand()/(RAND_MAX+1.0))+1;
if(k==1)
host_card[i]=1;
else
host_card[i]=11;
}//以上用於實現電腦自動判斷莊家是讓A做11還是1
}//endfor for(i=0;i<2;i++)1
for(j=0;j<2;j++)
player_sum+=player_card[j];//先對2張牌進行累加
for(i=0;i<2;i++)
{
for(j=1;j<2;j++)
{
if(host_card[i]==11 && host_card[j]==1)
host_card[i]=11;
}
host_sum +=host_card[i];//對莊家的兩張牌進行累加
if(player_card[i]==1)
{
if(aceflag==1)
break;
//player_card[i]=acer(player_card,i,player_sum,host_sum);
else
{
printf("\n你初始的牌面值%d\n",player_sum,host_sum);
printf("你有一張ACE!\n");
printf("***********************************");
printf("\n想要A做1還是做11?\n1,1\n2,11\n");
scanf("%d",&k);
printf("***********************************\n");
//player_card[n]=change(k);
if(k==1)
player_card[i]=1;
else
{
player_card[i]=11;
player_sum+=10;
}
aceflag=1;
}
}//以上if語句實現選擇這手牌里A做1還是11的問題
for(j=1;j<2;j++)
{
if(player_card[i]==11 && player_card[j]==1)
{
player_card[j]=11;
player_sum+=10;
}
}
}//endfor for(i=0;i<2;i++)4
printf("你的牌面值%d\n",player_sum);
if(over(host_sum)==1 )
{
if(over(player_sum)==1)
printf("你爆牌了,莊家也爆牌了\nYOU LOSE!\n");
else
printf("莊家爆牌了\nYOU WIN!\n");
flag=1;
}
else if (over(player_sum)==1)
{
printf("你爆牌了\nYOU LOSE!\n");
flag=1;
}
//以上為是否爆牌
for(i=0, k=2;i<2;i++,k++)
{
if(host_sum<18 && host_sum>0)
{
host_card[k]=1+int (10.0*rand()/(RAND_MAX+1.0));//電腦自動判斷莊家是否要牌
for(j=1;j<5;j++)
if(host_card[i]==11 && host_card[j]==1)
host_card[j]=11;//以上實現一手牌里A只能做1或11
host_sum+=host_card[k];
}
else
break;
}//endfor for(i=0;i<2;i++) 2
for(i=0,k=2;i<5;i++,k++)
{
printf("DO YOU WANT ONE MORE CARD? \n");
printf("***********************************\n");
printf("1,YES\n2,NO\n");
scanf("%d",&choice);
printf("***********************************\n");
if(choice==2)
break;
else
{
//sum=sentC_sumC(player_card,k);
//為什麼調用後sum值為原來調用值的2倍?
//player_sum+=sum;
player_card[k]=1+int(10.0*rand()/(RAND_MAX+1.0));
if(aceflag==0 && player_card[k]==1)
{
printf("你有一張ACE!\n");
printf("***********************************");
printf("\n想要A做1還是做11?\n1,1\n2,11\n");
scanf("%d",&l);
printf("***********************************\n");
//player_card[n]=change(k);
if(l==1)
player_card[k]=1;
else
{
player_card[k]=11;
player_sum+=10;
}
aceflag=1;
}//以上if語句實現選擇這手牌里A做1還是11的問題
for(l=0;l<k;l++)
{
if(player_card[k]==11 && player_card[l]==1)
{
player_card[l]=11;
player_sum+=10;
}
}
switch(player_card[k])
{
case 1: ch='A';
break;
case 10: {
n=1+int(rand()/(RAND_MAX+1.0));
if(n==1)
{
m=1+int(rand()/(RAND_MAX+1.0));
if(m==1)
{
x=1+int(rand()/(RAND_MAX+1.0));
if(x==1)
ch=10;
else
ch='J';
}
else
ch='Q';
}
else
ch='K';
}
break;
}
//switch語句用於將數字轉換成字元
if(player_card[k]>1 && player_card[k]<10)
printf("你的第%d張牌%d\n",i+3,player_card[k]);
else
{
if(ch==10)
printf("你的第%d張牌%d\n",i+3,ch);
else
printf("你的第%d張牌%c\n",i+3,ch);
}
for(l=0;l<k;l++)
{
for(j=l+1;j<k;j++)
if(player_card[l]==11 && player_card[j]==1)
player_card[j]=11;
}
player_sum+=player_card[k];
count++;
if(over(host_sum)==1 )
{
if(over(player_sum)==1)
printf("你爆牌了,莊家也爆牌了\n你的牌面值%d\t莊家的牌面值%d\nYOU LOSE!\n",
player_sum,host_sum);
else
printf("莊家爆牌了\n莊家的牌面值%d\nYOU WIN!\n",host_sum);
flag=1;
}
else if (over(player_sum)==1)
{
printf("你爆牌了\n你的牌面值是%d\nYOU LOSE!\n",player_sum);
flag=1;
}
if(flag==1)//用於跳出循環,防止做無用的循環
break;
if(count==5)
{
printf("已經發了5張牌了,該決一勝負了!\n");
break;
}
}//end for else
if(over(host_sum)==1 )
{
if(over(player_sum)==1)
printf("你爆牌了,莊家也爆牌了\n你的牌面值%d\t莊家的牌面值%dYOU LOSE!\n",
player_sum,host_sum);
else
printf("莊家爆牌了\n莊家的牌面值%d\nYOU WIN!\n",host_sum);
flag=1;
}
else if (over(player_sum)==1)
{
printf("你爆牌了\n你的牌面值是%d\nYOU LOSE!\n",player_sum);
flag=1;
}
}
//以上為是否爆牌
if(flag==0)
{
if(compare(player_sum,host_sum)==1)
{
printf("你的牌面值%d 莊家的牌面值%d\n",player_sum,host_sum);
printf("YOU WIN!\n");
}
else
{
//printf("已經發了5張牌了,該決一勝負了!\n");
printf("你的牌面值%d 莊家的牌面值%d\n",player_sum,host_sum);
printf("YOU LOSE!\n");
}
}
}
void menu()
{
printf("***********************************************************\n");
printf("**********************21 POINT GAME************************\n");
printf("***********************************************************\n");
printf("** MAKE A SELECTION **\n");
printf("** 1,PLAY **\n");
printf("** 2,EXIT **\n");
printf("***********************************************************\n");
printf("***********************************************************\n");
printf("***********************************************************\n");
}int main()
{
int n;
menu();
scanf("%d",&n);
if(n==1)
game_start();
else
{
printf("GAME OVER! BYE-BYE!\n");
exit(0);
}
return 0;
}