當前位置:首頁 » 編程語言 » c語言猜拳游戲怎麼設計
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言猜拳游戲怎麼設計

發布時間: 2022-07-02 18:53:16

㈠ 猜拳游戲c語言編程

#include <stdio.h> #include <string.h> #include <stdlib.h> #include <time.h> #define ORIGINGOLD 100 typedef struct { char name[100]; unsigned long score; } User; void Menu() { system("cls"); printf("========================made by 小恩 =====================\n"); printf("1:start game\n"); printf("2:show order\n"); printf("3:quit game\n"); printf("==========================================================\n"); } int choise() { int ch; printf("Input your choice(1~3): "); while(ch=getchar()) { if('\n'==ch) continue; while('\n'!=getchar()); if(ch>'3'||ch<'1') { printf("Error input,Try again(1~3): "); continue; } else break; } return ch; } int agree(const char *p) { char yes; printf("%s",p); while(scanf("%c",&yes),yes!='Y'&& yes!='N'&& yes!='y'&& yes!='n') { while('\n'!=getchar()); printf("Error input! Try again(Y/N): "); } while('\n'!=getchar()); if(yes=='Y'|| yes=='y') return 1; else return 0; } User getUser(const unsigned long score) { User gamer; int ch,i=0; memset(&gamer,0,sizeof(User)); printf("Please input the User's name:"); while(!strcmp(gamer.name,"")) { while((i<99) && ('\n'!=(ch=getchar()))) gamer.name[i++]=(char)ch; gamer.name[i]='\0'; } gamer.score=score; return gamer; } int getInt(int minR,int maxR) { int showhand; while(!scanf_s("%d",&showhand) || showhand<minR|| showhand>maxR) { while('\n'!=getchar()); printf("Invide input!Try again:(%d~%d) ",minR,maxR); } while('\n'!=getchar()); return showhand; } void save(const unsigned long score) { FILE *fp; int num=0; User gamer={"",0L},temp={"",0L},gm; if(fopen_s(&fp,"F:\\fist.gm","r+")) { if(fopen_s(&fp,"F:\\fist.gm","w")) { printf("Error,Can't open file F:\\fist.gm for save!\n"); exit(1);

希望採納

㈡ 用C語言編寫一個有趣的猜拳游戲

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<time.h>

#define maxn 10001

char p1[]="rock";
char p2[]="scissors";
char p3[]="cloth";
char *h[4];

void init(void)
{
h[1]=p1;
h[2]=p2;
h[3]=p3;
}

void begin(void)
{
char your[maxn];
long com;
char p[maxn];
srand(time(NULL));
for(;;)
{
printf("input your order ?( 1:rock 2:scissors 3:cloth )\n");

scanf("%s",your);
com=strlen(your);
if( your[0]>'3' || your[0]<'1' || com!=1)
{
printf("wrong order! please choose in(1~3);\n");
getchar();
continue;
}
printf("your order is %s!\n",h[your[0]-'0']);

getchar();
getchar();
com=rand()%3+1;
printf("The computer's order is %s!\n",h[com]);

getchar();
switch(com-your[0]+'0')
{
case 0:printf("draw game!\n");break;
case 1:
case -2:
printf("You wins!\n");break;
case -1:
case 2:
printf("The computer wins!\n");break;
}
com=1;
for(;com==1;)
{
printf("continue?(Y/N)\n");
scanf("%s",p);
com=0;
switch(p[0])
{

case 'Y':break;
case 'N':
printf("press any key to continue.\n");getchar();getchar();return ;
default:
printf("wrong order!\n");com=1;break;
}
}
}
}

main(void)
{
init();
begin();
return 0;
}

㈢ 用C語言編寫三局兩勝的猜拳游戲,怎麼編寫

隨機種子產生pc的隨機出拳
srand(time(0));

int pc = rand()%3; //0, 1, 2 石頭剪子布
屏幕輸入自己的結果。
scanf(" %d", &var);
一個負責比較的代碼塊,很簡單的邏輯處理。
一個最多執行三次的循環。
兩個負責記錄勝負次數的變數,針對單一角色,兩勝或者兩負,都會結束游戲。

㈣ 用1,2,3分別代表石頭剪刀布,輸入甲乙的猜 拳選擇輸出甲乙猜拳結果。(分支結構)。C語言程序設計

void func(int a,int b)
{
int num=0;
if((a==1)&&(b==1))
printf("打平\n");
else if((a==1)&&(b==2))
printf("甲獲勝\n");
else if((a==1)&&(b==3))
printf("乙獲勝\n");
else if((a==2)&&(b==1))
printf("乙獲勝\n");
else if((a==2)&&(b==2))
printf("打平\n");
else if((a==2)&&(b==3))
printf("甲獲勝\n");
else if((a==3)&&(b==1))
printf("甲獲勝\n");
else if((a==3)&&(b==2))
printf("乙獲勝\n");
else if((a==3)&&(b==3))
printf("打平\n");
}

㈤ 猜拳游戲c代碼

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
char gamer; // 玩家出拳
int computer; // 電腦出拳
int result; // 比賽結果
// 為了避免玩一次游戲就退出程序,可以將代碼放在循環中
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: //B
case 98: //b
gamer=7;
break;
case 67: //C
case 99: //c
gamer=10;
break;
case 68: //D
case 100: //d
return 0;

default:
printf("你的選擇為 %c 選擇錯誤,退出...\n",gamer);
getchar();
system("cls"); // 清屏
return 0;
break;
}

srand((unsigned)time(NULL)); // 隨機數種子
computer=rand()%3; // 產生隨機數並取余,得到電腦出拳
result=(int)gamer+computer; // gamer 為 char 類型,數學運算時要強制轉換類型
printf("電腦出了");
switch (computer)
{
case 0:printf("剪刀\n");break; //4 1
case 1:printf("石頭\n");break; //7 2
case 2:printf("布\n");break; //10 3
}
printf("你出了");
switch (gamer)
{
case 4:printf("剪刀\n");break;
case 7:printf("石頭\n");break;
case 10:printf("布\n");break;
}
if (result==6||result==7||result==11) printf("你贏了!");
else if (result==5||result==9||result==10) printf("電腦贏了!");
else printf("平手");
system("pause>nul&&cls"); // 暫停並清屏
}
return 0;
}

㈥ 用c語言怎麼寫猜拳游戲啊!我剛剛學一個月

#include<cstdio>
#include<cstdlib>
#include<ctime>
intmain()
{
inta=0,b=0,i,c,h,wr;
printf("飛行棋,先輸入格子數,之後每次輸入1-3的數(上限100) ");
printf("輸入格子數:");
scanf("%d",&h);
a=a+h;b=b+h;
while(1)
{
printf("1=石頭2=剪刀3=布 ");
printf("****** ******** ****** ");
printf("輸入1~3 ");
printf("---------------------------------- ");
scanf("%d",&i);
srand(time(0));
c=rand()%3;
if(i==1&&c==2||i==2&&c==3||i==3&&c==1)
{a=a-1;
printf("你贏了,前進一步 你還剩%d電腦剩%d ",a,b);
printf("*--------------------------------* ");}
elseif(c==1&&i==2||c==2&&i==3||c==3&&i==1)
{b=b-1;
printf("你輸了,電腦前進 你還剩%d電腦剩%d ",a,b);
printf("/--------------------------------/ ");}
else{printf("平局 你還剩%d電腦剩%d ",a,b);
printf("?--------------------------------? ");}
if(a==0||b==0)break;}

if(a==0)printf("youwin ");
elseprintf("youlose ");

system("pause");
}

㈦ 怎樣用C語言編寫一個猜拳游戲

*幫助做程序主體(開始游戲部分)*/
#include
<iostream.h>
#include
<stdlib.h>
void
main()
{
int
computer,
user,
money,
bet;
money=100;
for(
;
money==0;
)
{
cout
<<
"your
money:
"
<<
money
<<
endl;
cout
<<
"bet:
";
cin
>>
bet;
money=money-bet
if(bet>money)
break;
cout
<<
"set:
";
cin
>>
user;
computer=round(sin(rand())*2+1);
switch(user,computer)
{
.../*這地方你自己填一填*/
}
}
cout
<<
"game
over";
}

㈧ c語言問題 猜拳游戲

整體還是很好的。

問題在這里:

  1. 「scanf("%c,%C",&player1,&player2); 」這一句,第二個%c大寫了,改一下。

  2. scanf的實質是將鍵盤輸入字元存入聲明字元變數時開辟的一段存儲區域。第一局運行正常,而第二局往後你只是單純的想覆蓋輸入,這是不可以的——因為你在上一次使用scanf後沒有清空輸入緩存, 這樣再次使用scanf的時候函數就會認為你已經輸入過了。

  3. 改進只需要在scanf之前加上fflush(stdin)清空輸入緩存。

如圖:

希望幫上忙。

㈨ 用c語言設計人和電腦的猜拳游戲,越簡單越好,謝謝

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
intisWin(int,int);//返回:0:平均。1:玩家勝。2:玩家敗
intmain()
{
charp,name[3][5]={"石頭","剪刀","布"};
intn;
srand(time(NULL));
while(1)
{
printf("請輸入你要出拳對應的數字:0、石頭。1、剪刀。2、布。 ");
scanf("%[0-2]",&p);
getchar();
n=rand()%3;
printf("電腦:%s! 玩家:%s! ",name[n],name[(p-'0')]);
switch(isWin(n,p-'0'))
{
case0:printf("玩家敗! ");break;
case1:printf("玩家勝! ");break;
case2:printf("平局! ");break;
default:printf("error ");
}
}
return0;
}

intisWin(intn1,intn2)//n1:電腦出拳。n2:玩家出拳。返回:2:平均。1:玩家勝。2:玩家敗
{
if(n1==n2)
return2;
if(n2-n1==-1||n2-n1==2)
return1;
if(n2-n1==1||n2-n1==-2)
return0;
return-1;
}

㈩ 就C語言中 猜拳游戲的代碼

這是一個簡單的猜拳游戲(剪子包子錘),讓你與電腦對決。你出的拳頭由你自己決定,電腦則隨機出拳,最後判斷勝負。
下面的代碼會實現一個猜拳游戲,讓你與電腦對決。你出的拳頭由你自己決定,電腦則隨機出拳,最後判斷勝負。
啟動程序後,讓用戶出拳,截圖:

用戶出拳,顯示對決結果:截圖:

代碼實現:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
char gamer; // 玩家出拳
int computer; // 電腦出拳
int result; // 比賽結果
// 為了避免玩一次游戲就退出程序,可以將代碼放在循環中
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: //B
case 98: //b
gamer=7;
break;
case 67: //C
case 99: //c
gamer=10;
break;
case 68: //D
case 100: //d
return 0;

default:
printf("你的選擇為 %c 選擇錯誤,退出...\n",gamer);
getchar();
system("cls"); // 清屏
return 0;
break;
}

srand((unsigned)time(NULL)); // 隨機數種子
computer=rand()%3; // 產生隨機數並取余,得到電腦出拳
result=(int)gamer+computer; // gamer 為 char 類型,數學運算時要強制轉換類型
printf("電腦出了");
switch (computer)
{
case 0:printf("剪刀\n");break; //4 1
case 1:printf("石頭\n");break; //7 2
case 2:printf("布\n");break; //10 3
}
printf("你出了");
switch (gamer)
{
case 4:printf("剪刀\n");break;
case 7:printf("石頭\n");break;
case 10:printf("布\n");break;
}
if (result==6||result==7||result==11) printf("你贏了!");
else if (result==5||result==9||result==10) printf("電腦贏了!");
else printf("平手");
system("pause>nul&&cls"); // 暫停並清屏
}
return 0;
}
代碼分析
1) 首先,我們需要定義3個變數來儲存玩家出的拳頭(gamer)、電腦出的拳頭(computer)和最後的結果(result),然後給出文字提示,讓玩家出拳。
接下來接收玩家輸入:
scanf("%c%*c",&gamer);