C语言编写简单游戏:剪刀、石头、布

Python053

C语言编写简单游戏:剪刀、石头、布,第1张

呵呵,这是我去年初学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

}

}

}

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

int main()

{

char m //表示选择的是哪个人

int a,b //分别表示人和电脑

printf("(J)iandao, (S)hitou, hu(B)u :\n")

scanf("%c",&m)

if(m!='J' &&m!='S' &&m!='B')

printf("Input error!\n")

else //分别用0,1,2代表石头,剪刀,布

{

srand(time(NULL))

a = rand()%3

switch(a)

{

case 0:

printf("人出的是石头\n")

break

case 1:

printf("人出的是剪刀\n")

break

case 2:

printf("人出的是布\n")

break

default:

break

}

b = rand()%3

switch(b)

{

case 0:

printf("电脑出的是石头\n")

break

case 1:

printf("电脑出的是剪刀\n")

break

case 2:

printf("电脑出的是布\n")

break

default:

break

}

if(a >b)

printf("人赢了!\n")

else if(a == b)

printf("平局!\n")

else

printf("电脑赢了!\n")

}

return 0

}

刚刚的有点问题,现在改好了:\x0d\x0a#include\x0d\x0a#include\x0d\x0a#include\x0d\x0a#include\x0d\x0achar name[100],way[3][10]={"石头","剪子","布"},mode_name[2][20]={"三局两胜","五局三胜"}\x0d\x0avoid new_game(int mode,int *p_win,int * p_lose,int *p_tide){\x0d\x0achar cmd[10]\x0d\x0aint computer,user,win=0,lose=0\x0d\x0aint cnt[2]={3,5}\x0d\x0aprintf("***当前模式:\t%s\n",mode_name[mode])\x0d\x0afor(int i=0i