求J2SE编写的梭哈小游戏! 我只要重要的算法就是了~~高手请赐教~~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 //你想要的(梭哈发牌和比牌算法),希望对你有用!牌形 = function (对象, 花色, 点数) { //trace("执行牌形 "+对象+" "+花色+" "+点数); //把数字花色换为字符花色 if (花色 == 0) { 花色 = "方块"; } else if (花色 == 1) { 花色 = "梅花"; } else if (花色 == 2) { 花色 = "红桃"; } else if (花色 == 3) { 花色 = "黑桃"; } this[对象].黑桃._visible = false; this[对象].红桃._visible = false; this[对象].梅花._visible = false; this[对象].方块._visible = false; this[对象][花色]._visible = true; this[对象][花色].gotoAndStop(点数);};洗牌 = function () { //动态设置总牌52张 var 总牌:Array = new Array(); for (var i = 0; i<4; i++) { for (var j = 8; j<=14; j++) { 总牌.push([i, j]); } } //设置玩家的牌组 //5个玩家 for (var i = 1; i<=5; i++) { this["牌组"+i] = new Array(); //发牌数据给玩家(5张) for (var j = 1; j<=5; j++) { //随机抽总牌 var 随机值 = int(random(总牌.length)); //添进牌组 var 抽中值 = 总牌.splice(随机值, 1); this["牌组"+i].push(抽中值[0]); //让牌数据形象化 牌形(("玩家"+i+j), 抽中值[0][0], 抽中值[0][1]); //this["玩家"+i+j].牌形(this["牌组"+i][0, this["牌组"+i][1]]); } } /* for (var i = 1; i<=4; i++) { trace(this["牌组"+i]); } */};洗牌();//牌级分类类型数组 = ["散牌", "对子", "双对", "三条", "顺子", "同花", "葫芦", "铁支", "同花顺"];判断牌类型 = function (牌, 判断起始) { 牌数 = 牌.length; var 牌组 = new Array(); //设置默认值 if (判断起始 == undefined) { 判断起始 = 0; } if (牌数 == undefined) { 牌数 = 5; } var 最终类型 = ""; var 追加值 = [0, 0]; 牌数--; //排序 if (判断起始 == 0) { //trace("排序牌"); 牌组 = 牌; } else { for (var i = 判断起始; i<=牌数; i++) { 牌组.push(牌[i]); } } 牌组.sortOn(1, 2 | 16); //trace(牌组); //临时显示 /* var 显示 = ""; for (var i = 0; i<牌数; i++) { 显示 += 牌组[i][1]+" "; } //trace(显示); // */ //牌数为4 从0算起 if (牌数 == 4) { var 对比值 = 牌组[0][1]; //检测是否是顺子 for (var i = 1; i<5; i++) { 对比值--; if (对比值 != 牌组[i][1]) { //返回不是同花顺也不是顺子 //return false; 最终类型 = 0; break; } } //检测是否是同花 var 对比值 = 牌组[0][0]; for (var i = 1; i<5; i++) { if (对比值 != 牌组[i][0]) { if (最终类型 != 0) { 最终类型 = 4; break; } } } if (最终类型 == "") { 最终类型 = 8; } } else { 最终类型 = 0; } //追加最大牌的花色和牌面 if (判断起始 == 0) { 追加值 = [牌组[0][1], 牌组[0][0]]; } else { 追加值 = [牌组[判断起始-1][1], 牌组[判断起始-1][0]]; } //检查对子 var 对比值 = 0; var 牌类型 = 0; var 对子数 = 1; var 最终对子数 = 0; var temp = 0; if (判断起始 != 0) { 判断起始--; } for (var i = 判断起始; i<=牌数; i++) { /* trace(""); trace("i="+i); trace("对比值"+对比值); trace("牌值"+牌组[i][1]); */ if (对比值 != 牌组[i][1]) { //trace("牌不同"); if (对子数>最终对子数) { 最终对子数 = 对子数; //trace("最终对子数"+最终对子数); } 对子数 = 1; 对比值 = 牌组[i][1]; //牌类如果全散牌为5点。2对为2类或3类 牌类型++; } else { //trace("牌同"); //对子数++; 对子数++; //对子数追加 //单对追加 if (temp == 0 or 对子数>=3) { 追加值[0] = 牌组[i][1]; 追加值[1] = 0; temp = 牌类型; } else if (temp != 牌类型) { //双对追加 if (追加值[0]>牌组[i][1]) { 追加值[1] = 牌组[i][1]; } else { //当位置1小于位置2时换位 var temp_h = 追加值[0]; 追加值[0] = 牌组[i][1]; 追加值[1] = temp_h; } } } } if (对子数>最终对子数) { 最终对子数 = 对子数; //trace("最终对子数"+最终对子数); } //判断类型 var 类型值 = [牌类型, 最终对子数]; trace("类型值="+类型值); if (类型值.toString() == "2,4") { //4带1 最终类型 = 7; } else if (类型值.toString() == "2,3") { //3带对 最终类型 = 6; } else if (类型值.toString() == (牌数-1)+",3") { //3带1 最终类型 = 3; } else if (类型值.toString() == (牌数-1)+",2") { //双对 最终类型 = 2; } else if (类型值.toString() == 牌数+",2") { //单对 最终类型 = 1; } //判断同色 if (牌数 == 4) { if (最终类型 != 8) { var 对比值 = 牌组[0][0]; for (var i = 1; i<5; i++) { if (对比值 != 牌组[i][0]) { i = 10; } } //trace(i); if (i == 5) { 最终类型 = 5; } } } //trace("追加值="+追加值); //trace(最终类型); trace("牌类型及大小: "+[最终类型, 追加值[0], 追加值[1]]); trace(""); return [最终类型, 追加值[0], 追加值[1]];};//比较牌大小比较牌 = function () { //显示各玩家牌级 比牌级 = new Array(); for (var i = 1; i<=5; i++) { 返回值 = 判断牌类型(this["牌组"+i], 0); 返回值.push("牌组"+i); 比牌级.push(返回值); this["状态"+i].text = 类型数组[返回值[0]]; } 比牌级.sortOn([0, 1, 2], 2 | 16); //trace(比牌级); //trace(比牌级[0][3]); //显示 for (var i = 0; i<5; i++) { _root["大小"+比牌级[i][3].charAt(2)].text = "第"+(i+1); }};比较牌();//按钮重刷button1.onRelease = function() { trace("---------------------"); 洗牌(); 比较牌();}; 一道Java简单题 请问 appletviewer 如何加载 jar包? 大家帮我看看这个简单的JAVA程序 急救:关于数据库的更新问题 Internet新技术,欲制定国际标准,寻找志同道合的朋友! 菜鸟想飞,请各位大虾赐教! 请教一个问题. 如何将图象从Oracle数据库中读出直接显示到Jsp页面上?谢谢 存储过程问题? 生成SVG的工具 jdk5.0 不定长参数 正在表达式校验是不是英文输入法的字符串(高难度)
牌形 = function (对象, 花色, 点数) {
//trace("执行牌形 "+对象+" "+花色+" "+点数);
//把数字花色换为字符花色
if (花色 == 0) {
花色 = "方块";
} else if (花色 == 1) {
花色 = "梅花";
} else if (花色 == 2) {
花色 = "红桃";
} else if (花色 == 3) {
花色 = "黑桃";
}
this[对象].黑桃._visible = false;
this[对象].红桃._visible = false;
this[对象].梅花._visible = false;
this[对象].方块._visible = false;
this[对象][花色]._visible = true;
this[对象][花色].gotoAndStop(点数);
};
洗牌 = function () {
//动态设置总牌52张
var 总牌:Array = new Array();
for (var i = 0; i<4; i++) {
for (var j = 8; j<=14; j++) {
总牌.push([i, j]);
}
}
//设置玩家的牌组
//5个玩家
for (var i = 1; i<=5; i++) {
this["牌组"+i] = new Array();
//发牌数据给玩家(5张)
for (var j = 1; j<=5; j++) {
//随机抽总牌
var 随机值 = int(random(总牌.length));
//添进牌组
var 抽中值 = 总牌.splice(随机值, 1);
this["牌组"+i].push(抽中值[0]);
//让牌数据形象化
牌形(("玩家"+i+j), 抽中值[0][0], 抽中值[0][1]);
//this["玩家"+i+j].牌形(this["牌组"+i][0, this["牌组"+i][1]]);
}
}
/*
for (var i = 1; i<=4; i++) {
trace(this["牌组"+i]);
}
*/
};
洗牌();
//牌级分类
类型数组 = ["散牌", "对子", "双对", "三条", "顺子", "同花", "葫芦", "铁支", "同花顺"];
判断牌类型 = function (牌, 判断起始) {
牌数 = 牌.length;
var 牌组 = new Array();
//设置默认值
if (判断起始 == undefined) {
判断起始 = 0;
}
if (牌数 == undefined) {
牌数 = 5;
}
var 最终类型 = "";
var 追加值 = [0, 0];
牌数--;
//排序
if (判断起始 == 0) {
//trace("排序牌");
牌组 = 牌;
} else {
for (var i = 判断起始; i<=牌数; i++) {
牌组.push(牌[i]);
}
}
牌组.sortOn(1, 2 | 16);
//trace(牌组);
//临时显示
/*
var 显示 = "";
for (var i = 0; i<牌数; i++) {
显示 += 牌组[i][1]+" ";
}
//trace(显示);
//
*/
//牌数为4 从0算起
if (牌数 == 4) {
var 对比值 = 牌组[0][1];
//检测是否是顺子
for (var i = 1; i<5; i++) {
对比值--;
if (对比值 != 牌组[i][1]) {
//返回不是同花顺也不是顺子
//return false;
最终类型 = 0;
break;
}
}
//检测是否是同花
var 对比值 = 牌组[0][0];
for (var i = 1; i<5; i++) {
if (对比值 != 牌组[i][0]) {
if (最终类型 != 0) {
最终类型 = 4;
break;
}
}
}
if (最终类型 == "") {
最终类型 = 8;
}
} else {
最终类型 = 0;
}
//追加最大牌的花色和牌面
if (判断起始 == 0) {
追加值 = [牌组[0][1], 牌组[0][0]];
} else {
追加值 = [牌组[判断起始-1][1], 牌组[判断起始-1][0]];
}
//检查对子
var 对比值 = 0;
var 牌类型 = 0;
var 对子数 = 1;
var 最终对子数 = 0;
var temp = 0;
if (判断起始 != 0) {
判断起始--;
}
for (var i = 判断起始; i<=牌数; i++) {
/*
trace("");
trace("i="+i);
trace("对比值"+对比值);
trace("牌值"+牌组[i][1]);
*/
if (对比值 != 牌组[i][1]) {
//trace("牌不同");
if (对子数>最终对子数) {
最终对子数 = 对子数;
//trace("最终对子数"+最终对子数);
}
对子数 = 1;
对比值 = 牌组[i][1];
//牌类如果全散牌为5点。2对为2类或3类
牌类型++;
} else {
//trace("牌同");
//对子数++;
对子数++;
//对子数追加
//单对追加
if (temp == 0 or 对子数>=3) {
追加值[0] = 牌组[i][1];
追加值[1] = 0;
temp = 牌类型;
} else if (temp != 牌类型) {
//双对追加
if (追加值[0]>牌组[i][1]) {
追加值[1] = 牌组[i][1];
} else {
//当位置1小于位置2时换位
var temp_h = 追加值[0];
追加值[0] = 牌组[i][1];
追加值[1] = temp_h;
}
}
}
}
if (对子数>最终对子数) {
最终对子数 = 对子数;
//trace("最终对子数"+最终对子数);
}
//判断类型
var 类型值 = [牌类型, 最终对子数];
trace("类型值="+类型值);
if (类型值.toString() == "2,4") {
//4带1
最终类型 = 7;
} else if (类型值.toString() == "2,3") {
//3带对
最终类型 = 6;
} else if (类型值.toString() == (牌数-1)+",3") {
//3带1
最终类型 = 3;
} else if (类型值.toString() == (牌数-1)+",2") {
//双对
最终类型 = 2;
} else if (类型值.toString() == 牌数+",2") {
//单对
最终类型 = 1;
}
//判断同色
if (牌数 == 4) {
if (最终类型 != 8) {
var 对比值 = 牌组[0][0];
for (var i = 1; i<5; i++) {
if (对比值 != 牌组[i][0]) {
i = 10;
}
}
//trace(i);
if (i == 5) {
最终类型 = 5;
}
}
}
//trace("追加值="+追加值);
//trace(最终类型);
trace("牌类型及大小: "+[最终类型, 追加值[0], 追加值[1]]);
trace("");
return [最终类型, 追加值[0], 追加值[1]];
};
//比较牌大小
比较牌 = function () {
//显示各玩家牌级
比牌级 = new Array();
for (var i = 1; i<=5; i++) {
返回值 = 判断牌类型(this["牌组"+i], 0);
返回值.push("牌组"+i);
比牌级.push(返回值);
this["状态"+i].text = 类型数组[返回值[0]];
}
比牌级.sortOn([0, 1, 2], 2 | 16);
//trace(比牌级);
//trace(比牌级[0][3]);
//显示
for (var i = 0; i<5; i++) {
_root["大小"+比牌级[i][3].charAt(2)].text = "第"+(i+1);
}
};
比较牌();
//按钮重刷
button1.onRelease = function() {
trace("---------------------");
洗牌();
比较牌();
};