日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

大富翁(简易版)

發(fā)布時間:2023/12/14 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 大富翁(简易版) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

新手小白,希望各位大佬能多多提出建議,大家一同進(jìn)步






前言

設(shè)計題目:C語言游戲———大富翁(簡易版)


一、采用的數(shù)據(jù)存儲結(jié)構(gòu)及所代表的含義

Input:判斷是否進(jìn)行游戲

num1,num2,

a1,a2:累計擲出骰子數(shù)所對應(yīng)棋盤上的位置

fund=2000,fund2=2000:初始資金

c:判斷游戲是否終止

b1 = b2=:擲出的總數(shù)

i=1:判斷A/B進(jìn)行游戲



二、設(shè)計思路

第一步:判斷游戲是否進(jìn)行

第二步:判斷A/B玩家進(jìn)行

第三步:值骰子

第四步:判斷擲出的數(shù)所對應(yīng)效果

第五步:判斷是否獲得成就

第六步:判斷是否有玩家破產(chǎn)

第七步:若有破產(chǎn)則終止程序反之返回第二步

第八步:判斷誰獲勝并輸出

第九步:詢問是否重新游戲

三:設(shè)計中的難點及解決方案

難點1:產(chǎn)生隨機(jī)數(shù)

解決:利用rand函數(shù)但其只在一定范圍內(nèi)可以看成隨機(jī)的,所以在引入srand函數(shù)利用time(NULL)變化的種子使其隨機(jī)性增加

難點2:棋盤可變性

解決:利用頭文件宏定義變量可以改變棋盤大小








四:程序代碼

play.c

#include<stdio.h> #include<stdlib.h> #include<time.h> int num1,num2, a1,a2, fund=2000,fund2=2000,c, b1 = 0,b2=0,i=1;int play(int row , int col) {printf("玩家A與B的初始資金均2000元\n");do{printf("****************************\n");printf("********* 1.continue *****\n");printf("********* 0.end **********\n");printf("****************************\n");scanf("%d", &c);//是否繼續(xù)游戲if (c == 0)break;//判斷游戲是否終止if (i % 2 == 1)//判斷玩家A/B進(jìn)行{printf("玩家A的回合\n");srand((int)time(NULL));//用于設(shè)置rand()產(chǎn)生隨機(jī)數(shù)時的種子,time(NULL)變化的種子num1 = rand() % 6 + 1;//生成隨機(jī)數(shù)printf("擲出結(jié)果為%d\n", num1);b1 += num1;a1 = b1 % (((row+col))*2+4);//在地圖上所走位置i++;switch (a1)//判斷其走的步數(shù)所對應(yīng)效果{case 6:printf("倒退三步\n");a1 -= 3;b1 -= 3;break;case 2:printf("銀行利率增長\n");fund *= 2;printf("剩余資金為%d\n", fund);break;case 5:printf("科創(chuàng)獲獎得500元\n");fund += 500;printf("剩余資金為%d\n", fund);break;case 7:printf("被電信詐騙700元\n");fund -= 700;printf("剩余資金為%d\n", fund);break;case 9:printf("投資基金增長\n");fund *= 5;printf("剩余資金為%d\n", fund);break;case 8:printf("前進(jìn)四步\n");a1 += 4;b1 += 4;case 12:printf("獎學(xué)金得1000元\n");fund += 1000;printf("剩余資金為%d\n", fund);break;case 11:printf("股票暴跌\n");fund /= 4;printf("剩余資金為%d\n", fund);break;case 15:printf("投資被騙\n");fund /= 2;printf("剩余資金為%d\n", fund);break;default:printf("剩余資金為%d\n", fund);break;}if (fund > 20000 &&fund<50000)printf("累計達(dá)成成就初出茅廬\n");else if (fund > 50000&&fund<70000 )printf("累計達(dá)成成就初出茅廬 小有成就\n");else if (fund > 70000&&fund<100000 )printf("累計達(dá)成成就初出茅廬 小有成就 資金充裕\n");else if (fund > 100000 )printf("累計達(dá)成成就初出茅廬 小有成就 資金充裕 資金高手\n");//判斷獲得的成就}else{printf("玩家B的回合\n");srand((int)time(NULL));num2 = rand() % 6 + 1;printf("擲出結(jié)果為%d\n", num2);b2 += num2;a2 = b2 % (((row + col)) * 2 + 4);i++;switch (a2){case 6:printf("倒退三步\n");a2 -= 3;b2 -= 3;break;case 2:printf("銀行利率增長\n");fund2 *= 2;printf("剩余資金為%d\n", fund2);break;case 5:printf("科創(chuàng)獲獎得500元\n");fund2 += 500;printf("剩余資金為%d\n", fund2);break;case 7:printf("被電信詐騙700元\n");fund2 -= 700;printf("剩余資金為%d\n", fund2);break;case 9:printf("投資基金增長\n");fund2 *= 5;printf("剩余資金為%d\n", fund2);break;case 8:printf("前進(jìn)四步\n");a2 += 4;b2 += 4;case 12:printf("獎學(xué)金得1000元\n");fund2 += 1000;printf("剩余資金為%d\n", fund2);break;case 11:printf("股票暴跌\n");fund2 /= 4;printf("剩余資金為%d\n", fund2);break;case 15:printf("投資被騙\n");fund2 /= 2;printf("剩余資金為%d\n", fund2);break;default:printf("剩余資金為%d\n", fund2);break;}if (fund2 > 20000 && fund2 < 50000)printf("累計達(dá)成成就初出茅廬\n");else if (fund2 > 50000 && fund2 < 70000)printf("累計達(dá)成成就初出茅廬 小有成就\n");else if (fund2 > 70000 && fund2 < 100000)printf("累計達(dá)成成就初出茅廬 小有成就 資金充裕\n");else if (fund2 > 100000)printf("累計達(dá)成成就初出茅廬 小有成就 資金充裕 資金高手 資金高手\n");}} while (fund > 0&&fund2 > 0);//判斷是否出現(xiàn)破產(chǎn)if (fund2 > fund){printf("恭喜B勝利");}elseprintf("恭喜A勝利");return 0;//判斷A/B勝利 }

main.c

#include<stdio.h> #include"game.h" int main() {int input;do{printf("****************************\n");printf("********* 1.play *********\n");printf("********* 0.exit *********\n");printf("****************************\n");printf("請選擇:>");//請選擇是否開始游戲scanf("%d", &input);switch (input)//判斷用戶的選擇{case 1:play( ROW , COL);break;case 0:printf("退出游戲\n");break;default:printf("選擇錯誤重新選擇\n");break;}} while (input); }

game.h

#pragma once #define ROW 7 #define COL 4//確定棋盤大小 int play(int row, int col);//調(diào)用函數(shù)








總結(jié)

本次實驗設(shè)計通過對循環(huán)結(jié)構(gòu),選擇結(jié)構(gòu)的運(yùn)用,使我對這些結(jié)構(gòu)有了更好的理解;并且通過不斷學(xué)習(xí),也了解到了隨機(jī)數(shù)生成的方式以及頭文件的利用,讓我對程序設(shè)計有了新的理解,利用代碼可以更加方便的進(jìn)行一些工作,還可以獲得樂趣,同樣與同伴一起討論學(xué)習(xí),使代碼的編寫過程也不枯燥,一次很好的設(shè)計體驗。新手小白,希望大家對不對的地方多多指正,共同進(jìn)步。

總結(jié)

以上是生活随笔為你收集整理的大富翁(简易版)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。