首先我說(shuō)明下,第一你要準(zhǔn)備的是N個(gè)骰子所有的排列組合數(shù),這并不是編程問(wèn)題,是數(shù)學(xué)問(wèn)題,我一時(shí)忘記了算法...好像是A6n什么的...你去然后替代了下面的算法表達(dá)式就好了..我的算法的基本思路是,先對(duì)應(yīng)N個(gè)骰子算出排列的組合數(shù),然后隨機(jī)1-7的數(shù),判斷,list中是否有,有就不放,沒(méi)有就放,最后判斷下list的大小是否等于你算出的組合總數(shù),如果等于,就代表已經(jīng)算出所有組合了.... int total = 0;
創(chuàng)新互聯(lián)2013年開創(chuàng)至今,先為寶安等服務(wù)建站,寶安等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為寶安企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
public void addTotal(int n){
this.total =算法表達(dá)式; }
public void count(List list){
int i = random.nextInt(7);
if(list.contains(i)){
count(list);
}else{
list.add(i);
}
if(list.size()==this.total){
return;
}
}
public static void main(String[] args) {
Test t = new Test();
int n = 3;
t.addTotal(n);
List list = new ArrayList();
}
public class Dice {
public static void main(String[] args) {
int num = (int)(Math.random() * 6);//隨進(jìn)從1-6中取一個(gè)數(shù);
System.out.println("色子擲的數(shù):" + (num + 1));//輸出
}
}
Dice代碼如下:
import java.util.Random;
//(1)創(chuàng)建一個(gè)“骰子”類,命名為Dice。
public class Dice {
// 提示:初始化兩個(gè)Dice對(duì)象。
//(2)“骰子”類有兩個(gè)屬性:①最大值為固定值6,②點(diǎn)數(shù)為1-6之間的整數(shù)。屬性均設(shè)置為private。
private static int max = 6;
private int point;
// (3)“骰子”類有兩個(gè)構(gòu)造函數(shù):①無(wú)形參的構(gòu)造函數(shù),將點(diǎn)數(shù)默認(rèn)值設(shè)置為1;②有1個(gè)形參的構(gòu)造函數(shù),將形參賦值給點(diǎn)數(shù)。
public Dice() {
this.point = 1;
}
public Dice(int point) {
this.point = point;
}
// (4)自動(dòng)生成骰子點(diǎn)數(shù)的get和set方法。
public static int getMax() {
return max;
}
public static void setMax(int max) {
Dice.max = max;
}
public int getPoint() {
return point;
}
public void setPoint(int point) {
this.point = point;
}
// (5)編寫一個(gè)表示“擲骰子”的方法,將點(diǎn)數(shù)和函數(shù)返回值設(shè)置為1-6之間的隨機(jī)整數(shù)。
// 提示:Math.random() //隨機(jī)選取=0.0且1.0的double值
// double轉(zhuǎn)int的方法:(int) double值 //轉(zhuǎn)換后會(huì)舍棄小數(shù)點(diǎn)后面的值
public int throwDice() {
int result = 0;
while (true) {
int random = (int) (Math.random() * 10);
if (random 0 random = max) {
result = random;
break;
}
}
return result;
}
}
測(cè)試類方法如下:
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
//(6)新建一個(gè)類,在其main()函數(shù)中調(diào)用Dice類,實(shí)現(xiàn)以下功能:
public class TestDice {
public static void main(String[] args) {
// ①擲兩個(gè)骰子,顯示每個(gè)骰子的點(diǎn)數(shù),以及點(diǎn)數(shù)之和;
Dice dice = new Dice();
int one = dice.throwDice();
int two = dice.throwDice();
System.out.println("兩次點(diǎn)數(shù)之和:" + (one + two));
// ②輸入設(shè)置兩個(gè)骰子的點(diǎn)數(shù),顯示兩個(gè)骰子的點(diǎn)數(shù)之和。
Dice dice2 = new Dice(2);
Dice dice3 = new Dice(6);
System.out.println("所設(shè)置的點(diǎn)數(shù)之和:" + (dice2.getPoint() + dice3.getPoint()));
// ③連續(xù)10次擲兩個(gè)骰子,顯示每次擲骰子的結(jié)果,以及兩個(gè)骰子10次點(diǎn)數(shù)的平均值。
Dice dice4 = new Dice();
ListInteger points1 = new ArrayList();
ListInteger points2 = new ArrayList();
for (int i = 0; i 10; i++) {
int first = dice4.throwDice();
System.out.println("第一個(gè)骰子擲:" + (i + 1) + "次點(diǎn)數(shù)是:" + first);
int second = dice4.throwDice();
System.out.println("第二個(gè)骰子擲:" + (i + 1) + "次點(diǎn)數(shù)是:" + second);
points1.add(first);
points2.add(second);
}
long sum1 = points1.stream().reduce(Integer::sum).orElse(0);
System.out.println("第一個(gè)骰子10次點(diǎn)數(shù)的平均值:" + new BigDecimal(Long.valueOf(sum1).toString()).divide(new BigDecimal(Integer.valueOf(points1.size()).toString())));
long sum2 = points2.stream().reduce(Integer::sum).orElse(0);
System.out.println("第二個(gè)骰子10次點(diǎn)數(shù)的平均值:" + new BigDecimal(Long.valueOf(sum2).toString()).divide(new BigDecimal(Integer.valueOf(points2.size()).toString())));
}
}
具體如下:
連連看的小源碼
package Lianliankan;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class lianliankan implements ActionListener
{
JFrame mainFrame; //主面板
Container thisContainer;
JPanel centerPanel,southPanel,northPanel; //子面板
JButton diamondsButton[][] = new JButton[6][5];//游戲按鈕數(shù)組
JButton exitButton,resetButton,newlyButton; //退出,重列,重新開始按鈕
JLabel fractionLable=new JLabel("0"); //分?jǐn)?shù)標(biāo)簽
JButton firstButton,secondButton; //
分別記錄兩次62616964757a686964616fe59b9ee7ad9431333335326239被選中的按鈕
int grid[][] = new int[8][7];//儲(chǔ)存游戲按鈕位置
static boolean pressInformation=false; //判斷是否有按鈕被選中
int x0=0,y0=0,x=0,y=0,fristMsg=0,secondMsg=0,validateLV; //游戲按鈕的位置坐標(biāo)
int i,j,k,n;//消除方法控制
代碼(code)是程序員用開發(fā)工具所支持的語(yǔ)言寫出來(lái)的源文件,是一組由字符、符號(hào)或信號(hào)碼元以離散形式表示信息的明確的規(guī)則體系。
對(duì)于字符和Unicode數(shù)據(jù)的位模式的定義,此模式代表特定字母、數(shù)字或符號(hào)(例如 0x20 代表一個(gè)空格,而 0x74 代表字符“t”)。一些數(shù)據(jù)類型每個(gè)字符使用一個(gè)字節(jié);每個(gè)字節(jié)可以具有 256 個(gè)不同的位模式中的一個(gè)模式。
在計(jì)算機(jī)中,字符由不同的位模式(ON 或 OFF)表示。每個(gè)字節(jié)有 8 位,這 8 位可以有 256 種不同的 ON 和 OFF 組合模式。對(duì)于使用 1 個(gè)字節(jié)存儲(chǔ)每個(gè)字符的程序,通過(guò)給每個(gè)位模式指派字符可表示最多 256 個(gè)不同的字符。2 個(gè)字節(jié)有 16 位,這 16 位可以有 65,536 種唯一的 ON 和 OFF 組合模式。使用 2 個(gè)字節(jié)表示每個(gè)字符的程序可表示最多 65,536 個(gè)字符。
單字節(jié)代碼頁(yè)是字符定義,這些字符映射到每個(gè)字節(jié)可能有的 256 種位模式中的每一種。代碼頁(yè)定義大小寫字符、數(shù)字、符號(hào)以及 !、@、#、% 等特殊字符的位模式。每種歐洲語(yǔ)言(如德語(yǔ)和西班牙語(yǔ))都有各自的單字節(jié)代碼頁(yè)。
雖然用于表示 A 到 Z 拉丁字母表字符的位模式在所有的代碼頁(yè)中都相同,但用于表示重音字符(如"é"和"á")的位模式在不同的代碼頁(yè)中卻不同。如果在運(yùn)行不同代碼頁(yè)的計(jì)算機(jī)間交換數(shù)據(jù),必須將所有字符數(shù)據(jù)由發(fā)送計(jì)算機(jī)的代碼頁(yè)轉(zhuǎn)換為接收計(jì)算機(jī)的代碼頁(yè)。如果源數(shù)據(jù)中的擴(kuò)展字符在接收計(jì)算機(jī)的代碼頁(yè)中未定義,那么數(shù)據(jù)將丟失。
如果某個(gè)數(shù)據(jù)庫(kù)為來(lái)自許多不同國(guó)家的客戶端提供服務(wù),則很難為該數(shù)據(jù)庫(kù)選擇這樣一種代碼頁(yè),使其包括所有客戶端計(jì)算機(jī)所需的全部擴(kuò)展字符。而且,在代碼頁(yè)間不停地轉(zhuǎn)換需要花費(fèi)大量的處理時(shí)間。
文章標(biāo)題:搖色子代碼java 擲骰子java代碼
本文地址:http://chinadenli.net/article10/dogejgo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、App開發(fā)、軟件開發(fā)、做網(wǎng)站、品牌網(wǎng)站建設(shè)、面包屑導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)