编程小达人,你是否曾在某个午后,坐在电脑前,渴望用代码编织出一个属于自己的小小世界?今天,就让我带你走进C语言的奇妙世界,一起探索那些简单又有趣的小游戏代码吧!
一、石头剪刀布:指尖上的对决
还记得小时候和朋友玩石头剪刀布的乐趣吗?现在,我们可以用C语言来重现这个经典游戏。下面是一个简单的石头剪刀布游戏代码:
```c
include
include
include
int main() {
char computer, user;
int guess;
srand(time(NULL));
printf(\欢迎来到石头剪刀布游戏!\
do {
printf(\请出拳(1.石头、2.剪刀、3.布): \);
scanf(\%d\, &guess);
computer = '0' + (rand() % 3 + 1);
printf(\电脑出%s,你出%s,\, computer == '1' ? \石头\ : computer == '2' ? \剪刀\ : \布\, guess == 1 ? \石头\ : guess == 2 ? \剪刀\ : \布\);
if (guess == computer) {
printf(\平手!\
} else if ((guess == 1 && computer == '2') || (guess == 2 && computer == '3') || (guess == 3 && computer == '1')) {
printf(\你赢了!\
} else {
printf(\电脑赢了!\
}
printf(\继续游戏按y键、退出按其他键:\);
scanf(\ %c\, &user); // 注意前面的空格,用于消耗上一个输入后的换行符
} while (user == 'y' || user == 'Y');
return 0;
这个游戏简单易懂,只需要几个基本的C语言知识就能实现。你可以根据自己的喜好,添加更多的功能,比如计分系统、难度选择等。
二、猜数字:智慧与运气的较量
猜数字游戏是一个经典的编程练习,它不仅能锻炼你的编程技巧,还能考验你的智慧和运气。下面是一个简单的猜数字游戏代码:
```c
include
include
include
int main() {
int target, guess, numGuesses = 0;
srand(time(NULL));
target = rand() % 100 + 1;
printf(\猜数字游戏开始!\
printf(\请输入你猜测的数字(1-100):\
do {
scanf(\%d\, &guess);
numGuesses++;
if (guess == target) {
printf(\恭喜你!猜对了!\
printf(\你一共猜了 %d 次。\
\, numGuesses);
break;
} else if (guess < target) {
printf(\猜小了,再试试!\
} else {
printf(\猜大了,再试试!\
}
} while (guess != target);
return 0;
这个游戏的关键在于随机数生成和用户输入的处理。你可以尝试修改代码,增加难度,比如让用户猜测一个更小的范围,或者增加提示功能。
三、贪吃蛇:经典重现
贪吃蛇游戏是许多人的童年回忆,现在,我们可以用C语言来重现这个经典游戏。下面是一个简单的贪吃蛇游戏代码:
```c
include
include
include
include
define LEN 30
define WID 25
int Snake[LEN][WID] = {0};
char SnaHeaDir = 'a';
int SnaHeaX, SnaHeaY;
int SnakeLen = 3;
clock_t NowTime;
int WaitTime = 100;
int EatApple = 1;
int Level = 1;
int AllScore = 0;
int AppleNum = 0;
void gotoxy(int x, int y) {
COORD pos = {x, y};
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos);
int main() {
int key;
srand(time(NULL));
// 初始化蛇的位置
SnaHeaX = LEN / 2;
SnaHeaY = WID / 2;
Snake[SnaHeaY][SnaHeaX] = 1;
while (1) {
key = _getch();
switch (key) {
case 'w': SnaHeaDir = 'w'; break;
case 's': SnaHeaDir = 's'; break;
case 'a': SnaHeaDir = 'a'; break;