用C语言编写一个石头剪子布游戏,具体要求如下,高分急求

用C语言编写一个石头剪子布游戏,具体要求如下,高分急求,第1张

刚刚的有点问题,现在改好了:

#include<stdio.h>

#include<time.h>

#include<stdlib.h>

#include<string.h>

char name[100],way[3][10]={"石头","嫌斗激剪子","布"},mode_name[2][20]={"三局两胜","五局三胜"}

void new_game(int mode,int *p_win,int * p_lose,int *p_tide){

char cmd[10]

int computer,user,win=0,lose=0

int cnt[2]={3,5}

printf("***当前模式:\t%s\n",mode_name[mode])

for(int i=0i<cnt[mode]i++){

printf("***1 -- 石头芹袜\t 2 -- 剪子\t 3 -- 布\n")

fgets(cmd,9,stdin)

user=(cmd[0]-'1')%3

if(user<0)user+=3

computer=rand()%3

printf("***%-10s:%s\n",name,way[user])

printf("***%-10s:%s","电脑",way[computer])

if(computer==user)

{

printf("\t\t平\n")

}

else if(user-computer==-1 || user-computer==2)

{

printf("\t%s\t赢\n",name)

win++

}

else

{

printf("\t电脑\t赢\n")

lose++

}

if(win>lose+cnt[mode]-i-1 || lose>win+cnt[mode]-i-1)

break

}

if(win>lose)

{

printf("恭喜!该局你赢家了!\n")

(*p_win)++

}

else if(win<lose)

{

(*p_lose)++

printf(" 可惜!,你输了本局!\n")

}

else

{

(*p_tide)++

printf(" 此局平局!\n")

}

}

int main(){

srand(time(0))

char cmd[10]

int mode=0

int win,lose,tide

win=lose=tide=0

printf("请输入玩家姓名:\t")

fgets(name,99,stdin)

name[strlen(name)-1]='\0'

while(1){

printf("/******************石头剪子布游戏 ******************\n")

printf("***玩家:\t%s\n",name)

printf("***比赛情况:\t赢:\t%d\t输:\t%d\t平:\t%d\n",win,lose,tide)

printf("***当前模式:\t%s\n",mode_name[mode])

printf("***N -- 开始游戏;\tC -- 切换模式;\tQ -- 退出;\n")

fgets(cmd,9,stdin)

if(cmd[0]=='N' || cmd[0]=='n')

new_game(mode,&win,&lose,&tide)

else if(cmd[0]=='Q'销雹 || cmd[0]=='q')

break

else

mode=1-mode

}

return 0

}

#include <stdio.h>

#include <string.h> //字符串库

#include <time.h> //时间库

//开发游戏开始界面。

void InitGameDisplay()

{

printf("================================欢迎您进入游戏================================")

printf("颂慧|***********************************************|")

printf("| 游戏规则|")

printf("| 选择1代表剪刀、选择2代表石头、选择3代表布 |")

printf("| 1°用户首先选择一个1~3的整数. |")

printf("| 2°电脑会随机从1~3选择一个整数. |")

printf("| 3°由剪刀>布>石头>剪刀作出结答樱逗果. |")

printf("| |")

printf("|Author: 刘超 |")

printf(" instructor:刘国柱|")

printf("|***********************************************|")

}

//开发游戏结束界面。

void EndGameDisplay()

{

printf("|***********************************************|")

printf("| |")

printf("|GAME OVER |")

printf("| |")

printf("| 欢迎下次使用! |")

printf("| QQ:2542872403|")

printf("|***********************************************|")

}

//计算机出牌(数字牌)

//输入: 无

//返回数值: 数字牌 (1,2,3)

int ComputerCreateNumberCard()

{

return time(NULL)%3+1

}

//把用户与计算机产生的数字牌转化为文字牌

//输入清卖:数字牌(计算机或者用户: e.g. 1, 2,3.)

//输出:文字牌(“剪刀”,“石头”,“布”)

//返回数值: 无

void ConvertNumberToWord(int intNumberCard, char charWord[])

{

if(intNumberCard==1)

{

strcpy(charWord,"剪子") //字符串赋值

}else if(intNumberCard==2)

{

strcpy(charWord,"石头")

}else if(intNumberCard==3)

{

strcpy(charWord,"布")

}

}

//判断胜负

//输入: 用户的数字牌

// 计算机产生的数字牌

//输出: 结果字符串 (“计赢”,“用赢”,“平”)

//返回数值: 无

//

//判断原理:

// 计算机 用户 判断结果

// 1 1平

// 1 2用赢

// 1 3计赢

// 2 1计赢

// 2 2平

// 2 3用赢

// 3 1用赢

// 3 2计赢

// 3 3平

void JudgeWiner(int intUserNumberCard,int intComputerNumberCard,char charWiner[])

{

if(intUserNumberCard==intComputerNumberCard)

{

strcpy(charWiner,"平")

}else{

if(intComputerNumberCard==1 &&intUserNumberCard==3)

{

strcpy(charWiner,"输")

}else if(intComputerNumberCard==1 &&intUserNumberCard==2)

{

strcpy(charWiner,"赢")

}else if(intComputerNumberCard==2 &&intUserNumberCard==3 )

{

strcpy(charWiner,"赢")

}else if(intComputerNumberCard==2 &&intUserNumberCard==1 )

{

strcpy(charWiner,"输")

}else if(intComputerNumberCard==3 &&intUserNumberCard==2 )

{

strcpy(charWiner,"输")

}else if(intComputerNumberCard==3 &&intUserNumberCard==1 )

{

strcpy(charWiner,"赢")

}

}

}//JudgeWiner_end

void main()

{

int intUseNumCard//用户出的数字牌

int intComputerNumCard //计算机出的数字牌

char charWiner[100] //判断结果

int n,m,number1,number2

//1: 开发游戏开始界面。

InitGameDisplay()

int num[3] = {0}//用于计数

printf("\n请从1,2,3中选择一个数字")

while(num[1]+num[2]+num[0] !=3)

{

while(true)

{

//2: 用户出牌。

printf("请劳驾出牌\n")

scanf("%d",&intUseNumCard)

if(intUseNumCard>=1 &&intUseNumCard<=3)

{

break

}else{

printf("输入错误,请重新输入!\n")

}

}

//3: 计算机出牌

intComputerNumCard=ComputerCreateNumberCard()

//3.1) 把用户与计算机产生的数字牌转化为文字牌

char CharUseTextCard[6]

char CharComputerTextCard[6]

ConvertNumberToWord(intUseNumCard,CharUseTextCard)

ConvertNumberToWord(intComputerNumCard,CharComputerTextCard)

printf("您出的牌是 %s,计算机出的牌是 %s\n",CharUseTextCard,CharComputerTextCard)

//4: 判断胜负

JudgeWiner(intUseNumCard,intComputerNumCard,charWiner)

//显示

if(strcmp(charWiner,"平")==0)

{

printf("%s=%s结果: 平!!\n",CharUseTextCard,CharComputerTextCard)

num[0]++

}else if(strcmp(charWiner,"赢")==0){

printf("%s>%s结果: 赢!\n",CharUseTextCard,CharComputerTextCard)

num[1]++

}else if(strcmp(charWiner,"输")==0){

printf("%s<%s结果: 输!\n",CharUseTextCard,CharComputerTextCard)

num[2]++

}

printf("\n")

printf("\n")

printf("\n")

printf("\n")

}//while_end

printf("一共进行了3局比赛,你赢了%d局,计算机赢了%d局,平局%d次\n",num[1],num[2],num[0])

//6: 游戏结束界面。

EndGameDisplay()

}

呵呵,这是我去年初学C语言时写的,当时水平低,高手就不要指责了~~~

#include<time.h>

#include<stdio.h>

#include<conio.h>

#include <stdlib.h>

char x,response

int y,draw,win,loss

void main()

{

c: draw = 0,win = 0,loss = 0

d: system("cls")

printf("欢迎挑战\n\n")

printf("0:石头 1:剪子 2:布\n")

printf("\n请你出拳:")

if((x = getch()) == '0')

printf("石头")

else if(x == '1')

printf("剪子")

else if(x == '2')

printf("布")

else

{

printf("请按0-2\n按任意键继续\n")

getch()

goto d

}

srand((unsigned)time(NULL))

y = rand()%3

switch(y)

{

case 0:

printf("\n\n电脑出拳谈败做:石头\n\n")

break

case 1:

printf("\n\n电脑出拳:剪子\n\n")

break

case 2:

printf("\n\n电脑出拳:布\n\n")

break

}

if(x == '0')

{

switch(y)

{

case 0:

printf("平局")

draw++

break

case 1:

printf("你赢了")

win++

break

case 2:

printf("你输了")

loss++

break

}

}

else if(x == '1')

{

switch(y)

{

case 0:

printf("你输了")

loss++

break

case 1:

printf("平局")

draw++

break

case 2:

printf("你赢了")

win++

break

}

}

else if(x == '2'枯尘)

{

switch(y)

{

case 0:

printf("你赢了")

win++

break

case 1:

printf("你输了")

loss++

break

case 2:

printf("平局")

draw++

break

}

}

printf("\n\n你的战况:赢%d局 输%d局平%d局", win, loss, draw)

if(win <= loss+draw)

{

printf("\n\n还不服气?\nY or N?\n")

response=getch()

if(response == 'Y' || response == 'y' || response == 13)

{

printf("\n战况清零?\nY or N?\n")

response = getch()

if(response == 'Y' || response == 'y' || response == 13)

{

goto c

}

goto d

}

}

else

{

printf("\n\n厉害含衡,继续?\nY or N?\n")

response = getch()

if(response == 'Y' || response == 'y' || response == 13)

{

printf("\n战况清零?\nY or N?\n")

response = getch()

if(response == 'Y' || response == 'y' || response == 13)

{

goto c

}

goto d

}

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12381440.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存