資源簡介
代碼片段和文件信息
/**************************************************************************/
/*功能:猜拳小游戲*********************************************************/
/*作者:李志龍************************************************************/
/*完成時間:2020.07.30***************************************************/
/*聯系方式:lzl_sjlx12345@163.com?********************************/
/**********************************************************************/
#include“game.h“
//獲取電腦隨機生成的四個數
void?Four_Randon(){
int?temp;
do{
temp=rand()%(10000-1000+1)+1000;
a[0]=temp%10;
temp/=10;
a[1]=temp%10;
temp/=10;
a[2]=temp%10;
temp/=10;
a[3]=temp;
}while((a[0]==a[1])||(a[0]==a[2])||(a[0]==a[3])
||(a[1]==a[2])||(a[1]==a[3])||(a[2]==a[3])
||(a[0]==0)||(a[1]==0)||(a[2]==0)||(a[3]==0));//
printf(“%d%d%d%d“a[0]a[1]a[2]a[3]);
}
//處理用戶輸入的四個數
void?Get_Four(int?input_number){
b[0]=input_number/1000;
b[1]=input_number/100%10;
b[2]=input_number/10%10;
b[3]=input_number%10;
}
//生成A和B前面的數字
void?CountAB(){
int?countA=0;
int?countB=0;
/*只允許在?C99?模式下使用‘for’循環初始化聲明*/
int?i;
int?j;
int?k;
int?in_num;
printf(“please?input?four?number:\n“);
scanf(“%d“&in_num);
//垃圾字符回收
getchar();
//對用戶輸入的四個數進行處理
Get_Four(in_num);
//生成A前面的數字
for(i=0;i<4;i++){
if(a[i]==b[i]){
countA++;
}
}
//生成B前面的數字
for(j=0;j<4;j++){
for(k=0;k<4;k++){
if(a[j]==b[k]){
countB++;
}
}
}
countB=countB-countA;
//存儲A和B的值
count[0]=countA;
count[1]=countB;
}
//猜拳游戲
int?Play_Game(MSG*?msgsqlite3?*?db){
//初始化
count[0]=0;
count[1]=0;
win_count=0;
printf(“**************************************************\n“);
printf(“*******************start?game*********************\n“);
printf(“**************************************************\n“);
Four_Randon();
printf(“computer?have?make?four?random?number\n“);
while(count[0]!=4){
CountAB();
win_count++;
printf(“%dA%dB\n“count[0]count[1]);
}
//數值清零,為下次游戲準備
count[0]=0;
count[1]=0;
printf(“**************************************************\n“);
printf(“*************************you?win******************\n“);
printf(“**************************************************\n“);
printf(“%d\n“win_count);
//linux下int轉string
? char?cishu[10];
? sprintf(cishu“%d“win_count);
//游戲結束之后將獲勝者的ID與獲勝所需的次數寫入數據庫
char?*?errmsg;
char?sql[128]?=?{0};
//若存在數據先清空
sprintf(sql“insert?into?history?values(‘%s‘‘%s‘);“msg->namecishu);
if(sqlite3_exec(dbsqlNULLNULL&errmsg)?!=?SQLITE_OK)
{
char?sql2[128]?=?{0};
sprintf(sql2“delete?from?history?where?ID?=?‘%s‘;“msg->name);
if(sqlite3_exec(dbsql2NULLNULL&errmsg)?!=?SQLITE_OK)
{
printf(“%s“errmsg);
}
sqlite3_exec(dbsqlNULLNULL&errmsg);
}
return?0;
}
//排名信息打印函數
int?displaycb(void?*paraint?ncolumnchar?**?columnvaluechar?*columnname[])
{
? int?i;
if(ncolumn>10){
ncolumn=10;
}
for(i?=?0;?i? {
printf(“%s:%s“columnname[i]columnvalue[i]);
printf(“%s:%s“columnname[i+1]columnvalue[i+1]);
printf(“\n“);
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????7925??2020-07-30?20:39??猜拳游戲作業\game.c
?????文件???????1090??2020-07-30?20:39??猜拳游戲作業\game.h
?????文件????????150??2020-07-30?20:39??猜拳游戲作業\makefile
?????文件??????71168??2020-07-30?20:05??猜拳游戲作業\游戲流程.vsd
?????目錄??????????0??2020-08-12?16:49??猜拳游戲作業
-----------?---------??----------?-----??----
????????????????80333????????????????????5
評論
共有 條評論