#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
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)