您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“l(fā)inux實現(xiàn)的猜數(shù)字小游戲源碼分享”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“l(fā)inux實現(xiàn)的猜數(shù)字小游戲源碼分享”吧!
一個簡單的linux猜數(shù)字小游戲源碼
游戲規(guī)則:
猜數(shù)字游戲通常由兩個人玩,一方出數(shù)字,一方猜。出數(shù)字的人要想好一個沒有重復(fù)數(shù)字的 4 個數(shù),不能讓猜的人知道。猜的人就可以開始猜。每猜一個數(shù)字,出數(shù)者就要根據(jù)這個數(shù)字給出幾 A 幾 B,其中 A 前面的數(shù)字表示位置正確的數(shù)的個數(shù),而 B 前的數(shù)字表示數(shù)字正確而位置不對的數(shù)的個數(shù)。如正確答案為 5234,而猜的人猜 5346,則是 1A2B,其中有一個 5 的位置對了,記為 1A,而 3 和 4 這兩個數(shù)字對了,而位置沒對,因此記為 2B,合起來就是 1A2B。接著猜的人再根據(jù)出題者的幾 A 幾 B 繼續(xù)猜,直到猜中(即 4A0B)為止。
猜的人有 8 次機會。
例如:
乙出一個數(shù)字,甲猜。
甲 乙
1234 1A0B
5678 2A1B
5674 1A1B
5638 1A1B
2678 2A2B
6278 4A0B(猜中)
源碼:
#!/bin/bash clear echo echo "###################################################################" echo "# this is a bash-shell game write by lee #" echo "# this game is infinite frequency 猜數(shù)字 #" echo "# version 2.1.1.20200421 #" echo "###################################################################" echo -e "\n\n" declare INPUT declare PASSWORD declare LEN_PWD declare A declare B declare LOOP #this function is create random number random_number() { PASSWORD=$RANDOM LEN_PWD=`echo $PASSWORD | wc -L` if [[ $LEN_PWD -ne 4 ]] then random_number else #輸出標準值,測試需要,開發(fā)完成注釋掉 echo $PASSWORD input fi } #this function is accept the input from user's keyboard input() { read -n4 -p "please input a number between 0000-9999:" input # 10#${input} 進制轉(zhuǎn)換 if [[ 10#${input} -eq 10#${PASSWORD} ]] then echo -e "\n" echo "#############################################" echo "#congratulations!You have tried $LOOP times!#" echo "# The password is $PASSWORD ! #" echo "#############################################" exit elif [[ $LOOP -eq 6 ]] then echo -e "\n" echo "You have tried $LOOP times!Game over!" exit else A=0 B=0 count_a count_b echo -e "\n" echo "****************************" echo "* "$A"A"$B"B *" echo "****************************" echo "You have tried $LOOP times! You left `expr 6 - $LOOP` times!" LOOP=`expr $LOOP + 1` input fi } #this function is count the variable A's value count_a() { for i in `seq 4` do VAR_INPUT=`expr substr $input $i 1` for j in `seq 4` do VAR_PASSWORD=`expr substr $PASSWORD $j 1` if [[ $VAR_INPUT -eq $VAR_PASSWORD ]] && [[ $i -eq $j ]] then A=`expr $A + 1` fi done done } #this function is count the variable B's value count_b() { for i in `seq 4` do VAR_INPUT=`expr substr $input $i 1` for j in `seq 4` do VAR_PASSWORD=`expr substr $PASSWORD $j 1` if [[ $VAR_INPUT -eq $VAR_PASSWORD ]] && [[ $i -ne $j ]] then B=`expr $B + 1` fi done done } LOOP=1 random_number
到此,相信大家對“l(fā)inux實現(xiàn)的猜數(shù)字小游戲源碼分享”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學習!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。