当前位置:首页 » 编程软件 » 编程火柴

编程火柴

发布时间: 2022-10-15 05:30:50

⑴ 怎么用编程做出火柴人战争遗产

1、首先打开编程软件并规制好模板。
2、其次将火柴人战争遗产游戏的源代码进行解析为具体的数据信息。
3、最后按照解析好的数据信息进行编程即可。

⑵ 如何用Flash CS4制作简单的火柴人!!!

你好,你所说的火柴人,在十年前,相当火的。有高手做出来了一系列的火柴人动画的。最早开始做火柴人的,应该是闪客帝国的小东瓜,他当时做的一个火柴武侠,横版式地单人闯关,相当出色。他出过一本学习flash4的书,我就是买了他的书开始学flash的。
后来的人,都是模仿他做的,但也有各种创新。
这种火柴人,看似简单,实则不然。
首先,做出火柴人。
这个火柴人,实际上头、躯干、两臂、两腿,都是独立的,一个火柴人,实际是这些元件的组合。每个部件画起来并不复杂。
然后每个动作都是由这些元件进行动作动画,甚至是逐帧动画。仔细地调动画的时间,各部位的方位,才能做得出来,很费时间的。有时还要加上复杂的编程的。

⑶ 我打算努力学习编程然后制作一个愤怒的火柴人小游戏上传到4399然后以此为生你们觉得我靠谱吗

真的很不靠谱。因为现在火柴人小游戏多的要死,你根本站不了一席之地。就算是什么愤怒的火柴人,有什么装备的,你觉得会有人来玩吗?或者说,你觉得你已经能把游戏做到令人爱不释手,整天都想来玩了吗?所以说,如果你想做一个游戏,主要就是要先练习,先做一个基础的火柴人小游戏,再在这个基础上逐渐增添一些装备什么的,然后发现问题并改正,才能造出一款好的小游戏。至于靠不靠谱嘛,我是觉得成功的概率是非常非常小的——很显然,不靠谱。但这都是我个人的意见。但是一切皆有可能,不试试怎么知道呢?或许,你就是那些成功者之中的一位呢?希望几个月以后,我能在4399小游戏上看到你的游戏!

PS:4399上有好多叫愤怒的火柴人的游戏,所以,我个人还是建议你起一个与众不同的名字。

⑷ 谁拿最后一根火柴 程序设计 大家帮帮忙!

这个道理和编程无关,每人最多取4根,
1+4=5
21=5*4+1
也就是说,只要保证每轮两方之和是5,那么4轮后取走20根,最后先取的人必定取最后一根。

第二题:需要用递推的方式,计算所有必胜必输的状态,然后保证每次取火柴都让对方到达必输状态。
所谓必输就是只剩最后一根,或者无论怎么取后的结果都是必胜。
所谓必胜,就是可以对方到达必输状态的情况。

程序如下:
import java.io.*;

public class Picker {
// 火柴堆的输赢状况
private final static int EMPTY=0; // 这种排列不可能出现,如108
private final static int UNKNOWN=1; // 尚未计算出
private final static int WIN=2; //必胜
private final static int LOSE=3; //必输(如果对方够聪明)

// 用数组,保存每种火柴堆排列的输赢状态,下标为排列,如357, 111, 001, 100等等
private int[] status;

public Picker() {
// 初始化状态数组,排除所有不可能出现的情况
status = new int[358]; // 0 - 357
int i,j,k;
for (i=0; i<=3; i++) {
for (j=0; j<=5; j++) {
for (k=0; k<=7; k++) {
status[i*100+j*10+k] = UNKNOWN;
}
}
}

// 已知 100, 010, 001必输
status[1]=LOSE;
status[10]=LOSE;
status[100]=LOSE;

// 所有能使对方到达上述三个状态的排列都是必赢的
markWin(1);
markWin(10);
markWin(100);

// 递推计算,直至357的情况被计算出来
while (status[357] == UNKNOWN) {
//找到第一个没有计算的
int node=2;
for (node = 2; node<357; node++) {
if (status[node] == UNKNOWN) break;
}
// 它的所有下个状态肯定都是必赢,不然以前就能算出。
status[node] = LOSE;
// 所有能使对方到达这个状态的排列都是必赢的
markWin(node);
}
}

// 所有能使下个状态变必输的排列都是必赢的
private void markWin(int node) {
// 假设node为必输
// 每堆的数量分别为i,j,k
int i = node / 100;
int j = node / 10 % 10;
int k = node % 10;
// 先是第一堆,可能为i+1, i+2, ..., 3
for (int i1 = i+1; i1 <= 3; i1++) {
status[i1*100+j*10+k] = WIN;
}
// 第二堆
for (int j1 = j+1; j1 <= 5; j1++) {
status[i*100+j1*10+k] = WIN;
}
// 第三堆
for (int k1 = k+1; k1 <= 7; k1++) {
status[i*100+j*10+k1] = WIN;
}

}

// 查找所有可能的一次取火柴后的排列,找出其中必输的状态,把这个作为自己的走法
public int getWinPick(int node) {
//每堆的数量分别为i,j,k
int i = node / 100;
int j = node / 10 % 10;
int k = node % 10;
// 先是第一堆,可能留下0, 1, ..., i-1
for (int i1 = 0; i1 < i; i1++) {
if (status[i1*100+j*10+k]==LOSE) return i1*100+j*10+k;
}
// 第二堆
for (int j1 = 0; j1 < j; j1++) {
if (status[i*100+j1*10+k]==LOSE) return i*100+j1*10+k;
}
// 第三堆
for (int k1 = 0; k1 < k; k1++) {
if (status[i*100+j*10+k1]==LOSE) return i*100+j*10+k1;
}
// 没有找到,那么先顽强抵抗一下,只取一根
if (i>0) return (i-1)*100+j*10+k;
else if (j>0) return (j-1)*10+k;
else return k-1;
}

public static void main(String[] args) throws Exception {
Picker picker = new Picker();
// 一开始的排列是357
int node = 357;

BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));

while (node > 0) {
// 计算机先
System.out.print("Now is "+node);
node = picker.getWinPick(node);
System.out.println(", I pick to "+node);
if (node == 0) {
System.out.println("I lose");
return;
}
// 对方再取
System.out.println("Now is your turn: ");
String input = stdin.readLine();
int node1 = 0;
try {
node1 = Integer.parseInt(input);
} catch (Exception e) {
System.out.println("Invalid input, you lose");
break;
}
// 这里没有判断取的是否合法,即node和node1之间是否仅差一位数字
if ( node1==0 ) {
System.out.println("You lose");
}
node = node1;
}
}

}
这个程序只是例子,是说明算法,没有判断输入的合法性,所以不能一直输入2的,人嘛,自己也遵循一下游戏规则吧。
另外,稍做改动,如果不利,计算机不会马上认输了。

⑸ 设计C语言程序,游戏规则:21根火柴,一次只能拿走1或2或3或4根,不能不拿不能弃权,人与电脑比赛。

#include<stdio.h>
int f(int n){
switch(n){
case 0:return 4;
case 4:return 3;
case 3:return 2;
case 2:return 1;
}
return 0;
}
void main(){
int m=21,n;
do{
scanf("%d",&n);
m-=n;
n=f(m%5);
printf ("%d\n",n);
m-=n;
}while(m>1);
}

其实有更简单的,如下:
#include<stdio.h>
void main(){
int n;
do{
scanf("%d",&n);
printf ("%d\n",5-n);
}while(1);
}

⑹ java 四人玩火柴棍游戏

/**
* 四人玩火柴棍游戏,每一次都是三个人赢,一个人输。输的人要按赢者手中的火柴 数进行赔偿,即赢者手中有多少根火柴棍,输者就赔偿多少根。现知道玩过四次后,
* 每人恰好输过一次, 而且每人手中都正好有16根火柴。问此四人做游戏前手中各有 多少根火柴? 编程解决此问题
* 我的理解
* 1.4个人最后的火柴数都为16 则4个人其实并没有太多主体的概念。4个人可以是任何人 要辨别4个人可以假设。
* A 是第四轮输的人 B是第三轮输的人 C是第二轮输的人 D是第一轮输的人
* 2.依据以上判断我们可以反过来理解为 4个的初始状态分别为16 16 16 16 每一次都是三个人输,一个人赢,输的人把自己的一半给赢的一方
*
*/
public class Game {
public static void main(String[] a) {
int n1 = 16, n2 = 16, n3 = 16, n4 = 16;
// 第4轮
n1 += (n2 + n3 + n4) / 2;
n2 /= 2;
n3 /= 2;
n4 /= 2;
// 第3轮
n2 += (n1 + n3 + n4) / 2;
n1 /= 2;
n3 /= 2;
n4 /= 2;
// 第2轮
n3 += (n1 + n2 + n4) / 2;
n1 /= 2;
n2 /= 2;
n4 /= 2;
// 第1轮
n4 += (n1 + n2 + n3) / 2;
n1 /= 2;
n2 /= 2;
n3 /= 2;

System.out.println("四人做游戏前手中各有 a:" + n1 + " b:" + n2 + " c:" + n3 + " d:" + n4);
}
}

⑺ C语言编程问题常胜将军就是取火柴的问题求代码 本人C初学者。大神请用最简单的编程回答 谢谢 在

大致说一下思路:
如果 想拿到最后一根火柴,最后 需要保证电脑拿的时候 至少 有5根
这样不管电脑 拿几根(只能1-4) 剩下的 人都可以一次拿完。
同理,要保证最后两次 有 5 根 , 则 需要保证电脑 倒数第2次 拿的时候 至少10根
以此类推 15 根 20根
所以 人第一次拿 1 根 第二次 保证 余 15根 第三次 余 10根 第四次 余 5
第五次 拿完 也就是拿到最后一根了。
程序 还是你自己 来写吧 不然 学不到什么东西了
望采纳~

⑻ vb编程语言编写一个抽火柴程序

Option Explicit
Dim a%, he%
Private Sub Command1_Click()
a = Val(Text1.Text)
If a = 1 Then
MsgBox "电脑选数为:4 和为5" & "请继续填写", 0, "电脑提示"ElseIf a = 2 Then
MsgBox "电脑选数为:3 和为5" & "请继续填写", 0, "电脑提示"

ElseIf a = 3 Then
MsgBox "电脑选数为:2 和为5" & "请继续填写", 0, "电脑提示"ElseIf a = 4 Then
MsgBox "电脑选数为:1 和为5" & "请继续填写", 0, "电脑提示"
End If
If Text1.Text = "" Then
MsgBox " 请输入1-4的整数", 0, "电脑提示"
End If
End SubPrivate Sub Command2_Click()
If a = 1 Then
MsgBox "电脑选数为:4 和为10" & "请继续填写", 0, "电脑提示"ElseIf a = 2 Then
MsgBox "电脑选数为:3 和为10" & "请继续填写", 0, "电脑提示"

ElseIf a = 3 Then
MsgBox "电脑选数为:2 和为10" & "请继续填写", 0, "电脑提示"ElseIf a = 4 Then
MsgBox "电脑选数为:1 和为10" & "请继续填写", 0, "电脑提示"
End If
If Text1.Text = "" Then
MsgBox " 请输入1-4的整数", 0, "电脑提示"
End If
End SubPrivate Sub Command3_Click()
If a = 1 Then
MsgBox "电脑选数为:4 和为15" & "请继续填写", 0, "电脑提示"ElseIf a = 2 Then
MsgBox "电脑选数为:3 和为15" & "请继续填写", 0, "电脑提示"

ElseIf a = 3 Then
MsgBox "电脑选数为:2 和为15" & "请继续填写", 0, "电脑提示"ElseIf a = 4 Then
MsgBox "电脑选数为:1和为15" & "请继续填写", 0, "电脑提示"
End If
If Text1.Text = "" Then
MsgBox " 请输入1-4的整数", 0, "电脑提示"
End If
End SubPrivate Sub Command4_Click()
If a = 1 Then
MsgBox "电脑选数为:4 和为20" & "你输了哦", 0, "电脑提示"ElseIf a = 2 Then
MsgBox "电脑选数为:3 和为20" & "你输了哦", 0, "电脑提示"

ElseIf a = 3 Then
MsgBox "电脑选数为:2 和为20" & "你输了哦", 0, "电脑提示"ElseIf a = 4 Then
MsgBox "电脑选数为:1 和为20" & "你输了哦", 0, "电脑提示"
End If
If Text1.Text = "" Then
MsgBox " 请输入1-4的整数", 0, "电脑提示"
End If
End SubPrivate Sub Form_Load()
Command1.Caption = "第1轮"
Command2.Caption = "第2轮"
Command3.Caption = "第3轮"
Command4.Caption = "第4轮"
Label1.Caption = "请填入1-4的整数:"
Text1.Text = ""
End Sub

⑼ 7+4=17移动一根火柴,使等号两边相等。

1+7=74 把74中7的最上边一横改到1的上边,编程7+7=14
7-4=17 变成7+4=11

热点内容
如何评价一个服务器的性能 发布:2025-05-17 23:40:53 浏览:270
淘宝客适合什么服务器 发布:2025-05-17 23:39:26 浏览:612
python循环文件 发布:2025-05-17 23:39:22 浏览:828
androidstudio更新 发布:2025-05-17 23:38:22 浏览:643
java项目面试 发布:2025-05-17 23:30:53 浏览:780
若主存储器按字节编址 发布:2025-05-17 23:30:46 浏览:24
kotlinandroid 发布:2025-05-17 23:19:09 浏览:974
云编程英语 发布:2025-05-17 23:18:34 浏览:623
androidstudio导入类 发布:2025-05-17 23:15:36 浏览:237
私人电脑服务器如何设置 发布:2025-05-17 23:14:48 浏览:366